Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-12-2009
Roilo Roilo is offline
Miembro
 
Registrado: nov 2005
Ubicación: Mayarí, Cuba
Posts: 143
Poder: 19
Roilo Va por buen camino
Smile Saber si existe algún TComboBox o un TEdit sin llenar.

Saludos al foro y feliz año nuevo para todos!
Me remito a ustedes para ver si me pueden dar la letra de lo que quiero:

Resulta que en un Tform tengo como 10 TComboBox y 12 TEdit. Quisiera que cuando se presionara el boton Aceptar, el programa me avisara si hay alguno de estos componente vacío.
este código es lo más cerca que ha podido llegar:

Código Delphi [-]
for i:=FControl.ControlCount-1 downto 0 do
   if (FControl.Controls[i] is TComboBox) or  (FControl.Controls[i] is TEdit) then
        if FControl.Controls[i].text = '' then FControl.Controls[i].color := ClRed ;

por supuesto, me da error. pero creo que deje clara mi intensión.
Gracias de antemanos.
__________________
...que la libertad sólo existe cuando no es de nadie.

Última edición por Roilo fecha: 22-12-2009 a las 20:30:44.
Responder Con Cita
  #2  
Antiguo 22-12-2009
jorge82 jorge82 is offline
Baneado
 
Registrado: jun 2005
Ubicación: Mérida, Yucatán, México
Posts: 75
Poder: 19
jorge82 Va por buen camino
A ver si así te sirve:
Código Delphi [-]
for I := ControlCount-1 downto 0 do
    if Controls[i] is TComboBox then
    begin
      if TComboBox(Controls[i]).Text = '' then
        TComboBox(Controls[i]).Color := clRed;
    end
    else if Controls[i] is TEdit then
    begin
      if TEdit(Controls[i]).Text = '' then
        TEdit(Controls[i]).Color := clRed;
    end;
Saludos.
__________________
Un saludito.
Responder Con Cita
  #3  
Antiguo 22-12-2009
Roilo Roilo is offline
Miembro
 
Registrado: nov 2005
Ubicación: Mayarí, Cuba
Posts: 143
Poder: 19
Roilo Va por buen camino
casi, casi.

Hola Jorge.
tu código se acerca más, pero no me pone en rojo a ninguno de los TEdit o TCombobox que dejo sin llenar.
Gracias por la luz, seguiremos en contaco.
__________________
...que la libertad sólo existe cuando no es de nadie.
Responder Con Cita
  #4  
Antiguo 22-12-2009
Roilo Roilo is offline
Miembro
 
Registrado: nov 2005
Ubicación: Mayarí, Cuba
Posts: 143
Poder: 19
Roilo Va por buen camino
Creo que lo logramos!!!

bueno, que no me ponía en rojo los componentes vacíos porque los tenía en GroupBox diferentes (GBInf y GBDPers). Tube que especificar lo siguiente:
Código Delphi [-]
for I := GBDPers.ControlCount-1 downto 0 do
    begin

     if GBDPers.Controls[i] is TComboBox then
       if TComboBox(GBDPers.Controls[i]).Text = '' then
         TComboBox(GBDPers.Controls[i]).Color := clRed;

     if GBDPers.Controls[i] is TEdit then
       if TEdit(GBDPers.Controls[i]).Text = '' then
         TEdit(GBDPers.Controls[i]).Color := clRed;
    end ;

  for I := GBInf.ControlCount-1 downto 0 do
    begin

     if GBInf.Controls[i] is TComboBox then
       if TComboBox(GBInf.Controls[i]).Text = '' then
         TComboBox(GBInf.Controls[i]).Color := clRed;

     if GBInf.Controls[i] is TEdit then
       if TEdit(GBInf.Controls[i]).Text = '' then
         TEdit(GBInf.Controls[i]).Color := clRed;
    end ;
Gracias por la ayuda Jorge!!!
__________________
...que la libertad sólo existe cuando no es de nadie.
Responder Con Cita
  #5  
Antiguo 23-12-2009
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 910
Poder: 22
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
Otra solucion...Yo utilizo esta forma.

El unico pero, es que en la llamada tienes que incluir el vector de todos los controles que deseas evaluar (Ejemplo 2). Al final creo que es mejor te da mas control.

Código Delphi [-]
type
  TForm1 = class(TForm)
    ComboBox1: TComboBox;
    Edit1: TEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    Procedure CheckControl(Sender:TObject);overload;
    Procedure CheckControl(Sender:Array Of TObject);overload;
  end;

Procedure TForm1.CheckControl(Sender:TObject);
begin
     If (Sender Is TComboBox) Then
        If TComboBox(Sender).Text='' Then
           TComboBox(Sender).Color:=clRed;

     If (Sender Is TEdit) Then
        If TEdit(Sender).Text='' Then
           TEdit(Sender).Color:=clRed
end;

Procedure TForm1.CheckControl(Sender:Array Of TObject);
Var
     i:Integer;
Begin
     For i:=Low(Sender) To High(Sender) Do
         CheckControl(Sender[i]);
End;

procedure TForm1.Button1Click(Sender: TObject);
begin
     //Ejemplo 1: Es llamada con un objeto.
     //CheckControl(ComboBox1);

      //Ejemplo 2: Es llamada con un vector de controles.
     CheckControl([ComboBox1,Edit1]);
end;
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Cambiar el foco al llenar tedit - problemas nachito_tuc OOP 3 18-09-2006 06:17:23
Existe algún estándar para la BD chalys Conexión con bases de datos 2 18-09-2005 16:10:43
TcomboBox = tEdit maui Conexión con bases de datos 2 25-05-2004 03:37:46
Existe algun depurador? Alfredo Varios 5 27-01-2004 19:41:20


La franja horaria es GMT +2. Ahora son las 00:03:21.


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
Copyright 1996-2007 Club Delphi