Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   ayuda con radiobutton (https://www.clubdelphi.com/foros/showthread.php?t=71302)

elsamurai 12-12-2010 13:18:28

ayuda con radiobutton
 
hola a todos,estaba poniendo una forma de buscar registro en mi aplicacion y dedici utilizar los radiobutton para que el usuario pudiera escojer por cual campo quiere realizar la busqueda,lo malo es que al correr el programa delphi no me tira ningun errror y se ejecuta bien pero en ves de localizarme el registro solo se sale del formulario actual,aqui les dejo el codigo a ver si me pueden ayudar

Código Delphi [-]
procedure TFRMCLIENTES.BitBtn1Click(Sender: TObject);
begin
  inherited;
  begin
if radiobutton1.Checked=true then
begin
DM.ADOCLIENTE.Locate('NOMBRE',Edit1.Text,[lopartialkey]);
end
else
if radiobutton2.Checked=true then
begin
 dm.ADOCLIENTE.Filter:='apellido='''+edit1.Text+'''';
 end
 else
 if radiobutton3.Checked=true then
 begin
 dm.ADOCLIENTE.Filter:='cedula='''+edit1.Text+'''';
 end
 else
 if radiobutton4.Checked=true then
 begin
 dm.ADOCLIENTE.Filter:='fecha='''+edit1.Text+'''';
 end
 else
 if radiobutton5.Checked=true then
 begin
 dm.ADOCLIENTE.Filter:='telefono1='''+edit1.Text+'''';
 end
 else
 begin
 showmessage('seleccione una opcion para realizar la busqueda');

 end
end;
  end;
end.

ecfisa 12-12-2010 22:06:31

Hola.

Probá organizando el código de este modo:
Código Delphi [-]
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  if radiobutton1.Checked then
    DM.ADOCLIENTE.Locate('NOMBRE',Edit1.Text,[lopartialkey])
  else if radiobutton2.Checked=true then
  begin
    DM.ADOCLIENTE.Filtered:= False;
    DM.ADOCLIENTE.Filter:='apellido='''+edit1.Text+'''';
    DM.ADOCLIENTE.Filtered:= True;
  end
  else
  if radiobutton3.Checked then
  begin
    DM.ADOCLIENTE.Filtered:= False;
    DM.ADOCLIENTE.Filter:='cedula='''+edit1.Text+'''';
    DM.ADOCLIENTE.Filtered:= True;
  end
  else if radiobutton4.Checked then
  begin
    DM.ADOCLIENTE.Filtered:= False;
    DM.ADOCLIENTE.Filter:='fecha='''+edit1.Text+'''';
    DM.ADOCLIENTE.Filtered:= True;
  end
  else if radiobutton5.Checked then
  begin
    DM.ADOCLIENTE.Filtered:= False;
    DM.ADOCLIENTE.Filter:='telefono1='''+edit1.Text+'''';
    DM.ADOCLIENTE.Filtered:= True;
  end
  else
    showmessage('seleccione una opcion para realizar la busqueda');
end;

Aunque el código sería más corto si unificas el método de busqueda por Locate o por Filter, como por ejemplo:
Código Delphi [-]
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
  DM.ADOCLIENTE.Filtered:= False;
  if radiobutton1.Checked then
    DM.ADOCLIENTE.Filter:='nombre='''+edit1.Text+''''
  else if radiobutton2.Checked then
    DM.ADOCLIENTE.Filter:='apellido='''+edit1.Text+''''
  else if radiobutton3.Checked then
    DM.ADOCLIENTE.Filter:='cedula='''+edit1.Text+''''
  else if radiobutton4.Checked then
    DM.ADOCLIENTE.Filter:='fecha='''+edit1.Text+''''
  else if radiobutton5.Checked then
    DM.ADOCLIENTE.Filter:='telefono1='''+edit1.Text+''''
  else
    showmessage('seleccione una opcion para realizar la busqueda');
  DM.ADOCLIENTE.Filtered:= True;
end;


Saludos.

marcoszorrilla 12-12-2010 22:12:12

Yo en estos casos utilizo un RadioGroup.

Y luego

Código Delphi [-]
  Case Radiogroup.ItemIndex of
  1:xxx
  2:xxxx
  end;


Un Saludo.

elsamurai 13-12-2010 00:02:08

muchas gracias por responder,voy a probar los codigo y les habiso como me fue:)


La franja horaria es GMT +2. Ahora son las 19:36:30.

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