Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Si el registro no se encuentra, inhabilitar el botón actualizar (https://www.clubdelphi.com/foros/showthread.php?t=91660)

yuyidt 28-03-2017 14:37:50

Si el registro no se encuentra, inhabilitar el botón actualizar
 
Buen día. tengo un botón en el form que esta desactivado, lo activo de la siguiente manera:
en el evento onchange de un edit, cuando busco un registro lo habilito(es decir cuando escribo en el edit),
cuando borro lo que esta en el edit se inhabilita el botón nuevamente, el problema esta en que el botón se vuelve a habilitar
cuando agrego un nuevo registro(ya que el edit ya no esta vacío).
Como puedo hacer para que me habilite el botón solo si el edit esta lleno con algún registro que existe en la tabla?
si existe el registro que escribo, que me lo muestre y me habilite el botón(actualizar),
si no existe, que quede inhabilitado el botón

este es el código que tengo en el onchange del edit:
Cita:

procedure TForm5.Edit3Change(Sender: TObject);
begin
with datamodule2.FDQuery3 do
begin
close;
sql.Text:='SELECT * FROM eva_maestro where id_exa=:idex';
parambyname('idex').AsString:=edit3.Text;
open;
edit1.Text:=datamodule2.FDQuery3.FieldByName('nombre_examen').AsString;
end;
with datamodule2.FDQuery7 do
begin
Close;
SQL.Clear;
SQL.Add('SELECT eva_maestro.id_exa, eva_detalle.tipo_pregunta, eva_detalle.pregunta,eva_detalle.opcion1,eva_detalle.opcion2,eva_detalle.opcion3,eva_detalle.opcion4 ,eva_detalle.respuesta');
SQL.Add('FROM eva_maestro, eva_detalle');
SQL.Add('WHERE eva_maestro.id_exa = eva_detalle.id_exama');
SQL.Add('AND eva_detalle.id_exama = :idexa');
ParamByName('idexa').AsString:= edit3.Text;
Open;
end;
Bitbtn3.Enabled:= (Edit3.Text <> ''); //Aquí es donde inhabilito el botón si el edit esta vació.
end;
Qué mas debería colocar? ayuda por favor

TOPX 28-03-2017 14:46:24

Buen día.

Si entiendo bien, sería con algo así:
Código Delphi [-]
Bitbtn3.Enabled:= (Length(Trim(Edit3.Text)) > 0) and (not datamodule2.FDQuery7.IsEmpty);
-

yuyidt 28-03-2017 15:06:31

Resuelto.
 
Gracias TOPX, es justo lo que necesitaba

Neftali [Germán.Estévez] 28-03-2017 16:41:39

Sólo como sugerencia, para estas cosas funciona muy bien el evento OnUpdate de la TAction, que funcionan muy bien cuando se las asigna a un botón.


La franja horaria es GMT +2. Ahora son las 16:46:11.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi