agradecdo por tu aporte en este caso imagino que pueden entrar combobox, listbox y buttons verdad
Código Delphi
[-]
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
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
public
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);
except
limite:=0;
end;
rondin:=0;
result:=false;
while rondin < limite do
begin
if (trim(valores[rondin]) = EmptyStr) then
begin
result:=false; 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
Contenedor.Controls[i].Enabled :=Enabled;
end;
procedure TForm1.SeleccionBase(Valor : integer);
begin
Case Valor of
1 : begin form1.Bloquear(Panel1,true) ;
form1.Bloquear(Panel2,False) ;
form1.Button3.Enabled:=False; form1.Button4.Enabled:=True ; form1.Button5.Enabled:=false; form1.Button3.Caption:='Guardar...';
end;
2 : begin
form1.Bloquear(Panel1,true) ;
form1.Bloquear(Panel2,true) ;
form1.Button3.Enabled:=False; form1.Button4.Enabled:=True ; form1.Button5.Enabled:=True; form1.Button3.Caption:='Guardar...';
end;
3 : begin
form1.Bloquear(Panel1,True) ;
form1.Bloquear(Panel2,False) ;
form1.Button3.Enabled:=False; form1.Button4.Enabled:=True; form1.Button5.Enabled:=False; form1.Button3.Caption:='Modificar Registro';
ShowMessage('Faltan algunos datos');
beep;
MessageBeep(MB_ICONERROR);
end;
4 : begin
form1.Bloquear(Panel1,true) ;
form1.Bloquear(Panel2,True) ;
form1.Button3.Enabled:=False; form1.Button4.Enabled:=True; form1.Button5.Enabled:=True; form1.Button3.Caption:='Guardar...';
ShowMessage('Faltan algunos datos');
beep;
MessageBeep(MB_ICONERROR);
end;
5 : begin
form1.Bloquear(Panel1,False) ;
form1.Bloquear(Panel2,False) ;
form1.Button3.Enabled:=True; form1.Button4.Enabled:=False; form1.Button5.Enabled:=False; form1.Button3.Caption:='Modificar Registro';
end;
6 : begin
form1.Bloquear(Panel1,False) ;
form1.Bloquear(Panel2,False) ;
form1.Button3.Enabled:=True; form1.Button4.Enabled:=False; form1.Button5.Enabled:=False; 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
button3.Caption:='Guardar...';
SeleccionBase(1); end
else begin
button3.caption:='Modificar Registro';
end; end;
procedure TForm1.Button4Click(Sender: TObject);
begin if not campoCompleto([Edit1.text,Edit2.text,Edit3.text]) then
begin SeleccionBase(3);
end
else
begin
SeleccionBase(2);
end; end;
procedure TForm1.Button5Click(Sender: TObject);
begin if not campoCompleto([Edit4.text,Edit5.text,Edit6.text]) then
begin SeleccionBase(4);
end
else
begin
SeleccionBase(6);
end; end;
procedure TForm1.Button6Click(Sender: TObject);
beginSeleccionBase(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