Ver Mensaje Individual
  #3  
Antiguo 21-11-2020
AlejandroCalica AlejandroCalica is offline
Miembro
 
Registrado: nov 2020
Posts: 35
Reputación: 0
AlejandroCalica Va por buen camino
agradecdo por tu aporte en este caso imagino que pueden entrar combobox, listbox y buttons verdad

Código Delphi [-]
//Modificar varios controles y/o contenedores
SetControlEnable([Edit1, Panel1, Panel2], True);

e estado realizando pruebas y esta parte creo la domine aunque me gustaria simplificarla un poco mas. te muestro
con este bloqueo todo el contenedor de controles

Código Delphi [-]
procedure TForm1.Bloquear(Contenedor: TWinControl; Enabled:Boolean);
var i: integer;
begin
 for i:= 0 to Contenedor.ControlCount - 1 do
//alguna sentencia para manejo de botones siguiente/ atras
Contenedor.Controls[i].Enabled :=Enabled;
end;

lo llamo de esta manera

Código Delphi [-]
form1.Bloquear(Panel1,true)   ;

y lo uso dentro de otra funcion con estructura case aquii todo el codigo que llevo


Código Delphi [-]
private
    { Private declarations }
  public

    { Public declarations }
  end;

var
  Form1: TForm1;
  Valor:Integer;
implementation

{$R *.dfm}
function campoCompleto(valores:array of string):boolean; overload;
var
  limite, rondin:integer;
begin
  try
    limite:=length(valores);
    //rondin:=0;
  except
    limite:=0;
    //rondin:=0;
  end;
  rondin:=0;
  result:=false;
  while rondin < limite do
  begin
    if (trim(valores[rondin]) = EmptyStr) then
    begin
      result:=false; //algun campo está incompleto
      rondin:=limite;
    end
    else
    begin
      result:=true;
      rondin:=rondin + 1;
    end;
  end;
end;

procedure TForm1.Bloquear(Contenedor: TWinControl; Enabled:Boolean);
var i: integer;
begin
 for i:= 0 to Contenedor.ControlCount - 1 do
//alguna sentencia para manejo de botones siguiente/ atras
Contenedor.Controls[i].Enabled :=Enabled;
end;


// Procedure to show the colour of a passed
procedure TForm1.SeleccionBase(Valor : integer);
begin
  Case Valor of
       1 :      //activar panel 1
       begin    //Modificar Registro
           form1.Bloquear(Panel1,true)   ;
           form1.Bloquear(Panel2,False)   ;
           form1.Button3.Enabled:=False;  //Editar y Guardar
           form1.Button4.Enabled:=True ; //siguiente del panel1
           form1.Button5.Enabled:=false; //siguiente del panel2
           form1.Button3.Caption:='Guardar...';
                                   end;
       2 :    //activar panel 2
       begin
           form1.Bloquear(Panel1,true)   ;
           form1.Bloquear(Panel2,true)   ;
           form1.Button3.Enabled:=False;  //Editar y Guardar
           form1.Button4.Enabled:=True ; //siguiente del panel1
           form1.Button5.Enabled:=True; //siguiente del panel2
           form1.Button3.Caption:='Guardar...';
                                   end;
       3 : //edits vacios en panel1
       begin
           form1.Bloquear(Panel1,True)   ;
           form1.Bloquear(Panel2,False)   ;
           form1.Button3.Enabled:=False; //Editar y Guardar
           form1.Button4.Enabled:=True;  //siguiente del panel1
           form1.Button5.Enabled:=False; //siguiente del panel2
           form1.Button3.Caption:='Modificar Registro';
           ShowMessage('Faltan algunos datos');
           beep;
           MessageBeep(MB_ICONERROR);
                                   end;
       4 : //edits vacios en panel2
       begin
           form1.Bloquear(Panel1,true)   ;
           form1.Bloquear(Panel2,True)   ;
           form1.Button3.Enabled:=False; //Editar y Guardar
           form1.Button4.Enabled:=True;  //siguiente del panel1
           form1.Button5.Enabled:=True; //siguiente del panel2
           form1.Button3.Caption:='Guardar...';
           ShowMessage('Faltan algunos datos');
           beep;
           MessageBeep(MB_ICONERROR);
                                   end;
       5 : //inicio
       begin
       form1.Bloquear(Panel1,False)   ;
       form1.Bloquear(Panel2,False)   ;
           form1.Button3.Enabled:=True;  //Editar y Guardar
           form1.Button4.Enabled:=False; //siguiente del panel1
           form1.Button5.Enabled:=False; //siguiente del panel2
           form1.Button3.Caption:='Modificar Registro';
                                   end;
       6 : //todo esta bien en panel 1 y 2
       begin
       form1.Bloquear(Panel1,False)   ;
       form1.Bloquear(Panel2,False)   ;
           form1.Button3.Enabled:=True;  //Editar y Guardar
           form1.Button4.Enabled:=False; //siguiente del panel1
           form1.Button5.Enabled:=False; //siguiente del panel2
           form1.Button3.Caption:='Guardar...';
                                   end;
  else ShowMessage('menos aqui!');
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
SeleccionBase(5);
Combobox3.ItemIndex:=2;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
if (button3.Caption='Modificar Registro') then begin
//ejecuta
button3.Caption:='Guardar...';
 SeleccionBase(1); //cuando modifica
   end
   else begin
//todo igual
button3.caption:='Modificar Registro';
end; end;


procedure TForm1.Button4Click(Sender: TObject);
begin //mascota
if not campoCompleto([Edit1.text,Edit2.text,Edit3.text]) then
  begin       //si esta alguno vacio se queda en mascotas
  SeleccionBase(3);
    end
    else
   begin
   SeleccionBase(2);
   //si no hay vacos vamos a clients
  //revisa si no estan vacios pasa al siguiente de lo contrario no sale
 end; end;


procedure TForm1.Button5Click(Sender: TObject);
begin   //cliente
if not campoCompleto([Edit4.text,Edit5.text,Edit6.text]) then
  begin       //si esta alguno vacio se queda en cliente
   SeleccionBase(4);
    end
    else
   begin
   SeleccionBase(6);
   //si no hay vacos vamos a clients
  //revisa si no estan vacios pasa al siguiente de lo contrario no sale
 end; end;


 procedure TForm1.Button6Click(Sender: TObject);
begin//cancelar y todo regresa al principio
SeleccionBase(5);
end;

donde se me esta complicando un poco es en una funcion que verifique que los edits no esten vacios, los listbox y combobox tengan un item seleccionado, osea que en su propiedad text no este vacia, y que solo verifique los controles que esten dentro del tpanel seleccionado en caso de que esten todos llenos, podre pasar al siguente panel

tengo una funcion que solo revisa Edits y no e encontrado la forma de imprementar que revise listbox y combobox, espero me puedan ayudar con eso los mas expertos.

seguire aqui al pendiente

saludos
Responder Con Cita