Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Validar edits (https://www.clubdelphi.com/foros/showthread.php?t=76814)

lucas05 29-11-2011 04:05:03

Validar edits
 
Hola, como puedo validar letras y números en los edits. En los ejemplos que encontré ponen el código de validación en el evento OnKeyPress del edit, lo que quiero hacer es poner el código de validación en un button.
Les explico mi idea, tengo un form con edit1, edit2, edit3, edit4 los dos primeros se llenan con letras y los otros dos con números, quiero que el usuario llene los cuatro edits y luego cuando termine de llenarlos a todos presione el button Guardar y recién entonces se ejecute el código de validación. Y si se equivoco en el llenado de algún edit aparezca un mensaje de error, por ejemplo "En el edit1 debe ir solo letras".

Espero haber sido claro. Muchas Gracias.

ecfisa 29-11-2011 04:49:34

Cita:

Les explico mi idea, tengo un form con edit1, edit2, edit3, edit4 los dos primeros se llenan con letras y los otros dos con números, quiero que el usuario llene los cuatro edits y luego cuando termine de llenarlos a todos presione el button Guardar y recién entonces se ejecute el código de validación. Y si se equivoco en el llenado de algún edit aparezca un mensaje de error, por ejemplo "En el edit1 debe ir solo letras".
Hola Lucas.

Aunque no me parece la mejor opción, podés hacerlo de este modo:
Código Delphi [-]
...
implementation

type
  TValidChar = set of Char;

function ValidarEdit(AEdit: TEdit; ValidChar: TValidChar): Boolean;
var
  i: Integer;
begin
  Result:= True;
  for i:= 1 to Length(AEdit.Text) do
    if not(UpCase(AEdit.Text[i]) in ValidChar) then Result:= False;
end;

procedure TForm1.btnGuardarClick(Sender: TObject);
begin
  if not ValidarEdit(Edit1, ['A'..'Z', 'Ñ']) then
  begin
    ShowMessage('En Edit1 deben ir solo letras');
    Edit1.SetFocus;
    Exit;
  end;
  if not ValidarEdit(Edit2, ['A'..'Z', 'Ñ']) then
  begin
    ShowMessage('En Edit2 deben ir solo letras');
    Edit2.SetFocus;
    Exit;
  end;
  if not ValidarEdit(Edit3, ['0'..'9']) then
  begin
    ShowMessage('En Edit3 deben ir solo números');
    Edit3.SetFocus;
    Exit;
  end;
  if not ValidarEdit(Edit4, ['0'..'9']) then
  begin
    ShowMessage('En Edit4 deben ir solo números');
    Edit4.SetFocus;
  end;
  ...
end;

Saludos.

newtron 29-11-2011 10:04:20

Hola.

A mi modo de ver para un caso puntual puedes hacer lo que te comenta nuestro amigo ecfisa pero este es un caso bastante habitual para cualquier programa que desarrolles por lo cual yo te recomendaría en vez de usar edits usar algún componente que te controle el tipo de campo que vas a introducir. Creo que en el ftp del club hay algún control que puedes usar.

Saludos

lucas05 29-11-2011 15:40:54

Hola, gracias por la solución. Tendré en cuenta sus recomendaciones.

Saludos.


La franja horaria es GMT +2. Ahora son las 09:33:52.

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