Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Form de registro (rellenar todos los edit) (https://www.clubdelphi.com/foros/showthread.php?t=21917)

gontxalo 01-06-2005 10:22:14

Form de registro (rellenar todos los edit)
 
Hola.
Tengo un Form, (vcl) el cual es de registro de usuarios. Tengo varias cajas de Edit (nombre, apellidos, e-mail ........).
Como puedo hacer para que si el usuario que se registra no rellena alguno de las cajas edit, que al dar al botón de registrar, salte otro form que diga por ejemplo: rellene todos los campos.

Gracias

Lepe 01-06-2005 10:48:11

Para aquellos cajas que sean obligatorias ponle en la propiedad tag un 1 (por ejemplo). Despues realiza un bucle con Form1.Components[i] y si el tag es 1, y la caja está vacia (edit1.text='') añades el Hint a un String que se mostrará despues en el ShowMessage.

El mensaje final, mostrará "Por favor, rellene los siguientes campos: Nombre direccion"

Un saludo

jachguate 01-06-2005 18:06:41

Algo menos elaborado, pero mas sencillo si sos novato es:

Código Delphi [-]
Function TForm1.ValidarDatos : Boolean;
Var
  s : Mensaje;

Begin
  s := '';
  if Trim(EditNombre.Text) = '' Then
    s := s + '[Nombre] ';
  if Trim(EditApellido.Text) = '' Then
    s := s + '[Apellido] ';
  ....
  if s <> '' Then
    ShowMessage('Error: Debe rellenar los siguientes campos: ' + s);
  result := s = '';
end;

//luego simplemente llamas a la función ValidarDatos

Procedure TForm1.BtnGrabarClick(Sender : TObject);

Begin
  if ValidarDatos Then
    Graba;
end;

Hasta luego.

;)

fidel 02-06-2005 14:43:32

Hola:

Puedes poner en el evento OnExit del primer edit que quieres que no quede vacío una información general que diga algo así como:

If edit1.text := '' then ShowMessage('No se puede dejar vacio, ponga algún dato');

y conectar este procedimiento en el evento OnExit de todos los demás edits que no quieres que queden vacíos.

Un saludo.

vtdeleon 02-06-2005 15:39:08

saludos
Código Delphi [-]
procedure cualquiera;
var
  n:integer;
begin
  for n:= 0 to componentcount-1 do
    if components[n] is tedit then
      if tedit(components[n]).Text = '' then 
         ShowMessage('No se puede dejar vacio, ponga algún dato');
end;

gontxalo 02-06-2005 20:44:41

Me he adelantado creo.
 
Hola
Gracias.
Lo dejo para más adelante.
Creo que me he adelantado.
No tengo las bases de datos...... hechas ni nada y creo que tiene que estar primero funcionando el botón con la orden grabar a datos antes de ponerle lo de las cajas vacías.

Estoy estudiando las bases de datos así que guardo estos mensajes para cuando este en funcionamiento poder ponerlo.

jachguate 02-06-2005 22:11:40

Si es una aplicación de bases de datos, basta poner la propiedad Required de los TField a true.

hasta luego.

;)

gontxalo 03-06-2005 02:49:08

Funciona
 
Gracias.
Lo he probado de todas las maneras en form nuevo para probar y me funciona bien.
Gracias a todos.


La franja horaria es GMT +2. Ahora son las 16:51:14.

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