Cita:
Empezado por ecfisa
Hola.
Podrías hacer:
Código Delphi [-]
...
var
bt: TBitBtn;
begin
OtroForm := TOtroForm.Create(Self);
OtroForm.Show;
bt := TBitBtn(OtroForm.FindComponent('NombreDelBoton'));
if Assigned(bt) then
bt.Caption := 'New Caption';
...
end;
Saludos
|
Hola Daniel.
Comentarte a ti y a todos los del foro como quedó solucionado, aqui el código:
Código Delphi
[-]procedure TfrmCambiarMesa.BitBtn1Click(Sender: TObject);
var
bt: tBitBtn;
begin
if Application.MessageBox('Es correcto el CAMBIO DE MESA','Pregunta',mb_OkCancel+mb_IconQuestion)=idOk then
begin
frmRegComanda.nFlagCerrarCambioMesa:=1;
qryEjecuta.Prepare;
qryEjecuta.ParamByName('NUM_MESA').AsString:=Label2.Caption;
qryEjecuta.ParamByName('LETRA').AsString:='';
qryEjecuta.ParamByName('COMANDA_ID').AsString:=frmRegComanda.Edit4.Text;
qryEjecuta.ParamByName('EMP_ID').AsInteger:=qryEmpleado.fieldByName('EMPLEADO_ID').AsInteger;
qryejecuta.ExecSQL;
DM.trsComanda.Commit;
bt:= tBitBtn(frmMeseroMain.FindComponent(frmMeseroMain.NombreBoton) );
if Assigned(bt) then
bt.Caption:=Label2.Caption;
Application.MessageBox('Cambio realizado exitosamente','Aviso',mb_Ok+mb_IconInformation);
Close;
end;
end;
Aqui parte del codigo del formulario "frmMeseroMain" en donde se crean dinámicamente los botones:
Código Delphi
[-]procedure TfrmMeseroMain.MostrarMesas;
var
PosY: Integer;
nLeft:Integer;
begin
ScrollBox1.Visible:=True;
while ScrollBox1.ControlCount > 0 do
ScrollBox1.Controls[0].Free;
PosY:=8;
nLeft:=8;
n:=1;
qryMesas.Close;
qryMesas.ParamByName('EMP_ID').AsString:=vNumEmpl;
qryMesas.Open;
qryMesas.First;
While not qryMesas.Eof do
begin
Botones[n]:=TBitBtn.Create(Self);
with Botones[n] do
begin
Caption:=qryMesas.fieldbyname('MESA').AsString;
Parent:=ScrollBox1;
Height:=75;
Top:=PosY;
Left:=nLeft;
if nLeft=708 then begin
nLeft:=8;
PosY:=PosY+Height+5
end Else Begin
nLeft:=nLeft+100;
end;
Width:=85;
OnClick:=OnButtonClick1;
Name:='btn'+IntToStr(n);
Font.Size:=13;
Font.Style:=[fsBold];
Layout:=blGlyphTop;
ShowHint:=True;
Hint:='No. Comanda: '+qryMesas.FieldByName('COMANDA_ID').AsString+' Nombre:'+Name;
if qryMesas.FieldByName('COMANDA_ESTATUS').AsString='A' then
Glyph:=Image1.Picture.Bitmap;
if qryMesas.FieldByName('COMANDA_ESTATUS').AsString='C' then
Glyph:=Image2.Picture.Bitmap;
Tag:=qryMesas.fieldByName('COMANDA_ID').AsInteger;
end;
qryMesas.Next;
inc(n);
end;
btnAbrirMesa.Enabled:=True;
end;
Y lo que sucede al dar click sobre algunos de los botones creados:
Código Delphi
[-]procedure TfrmMeseroMain.OnButtonClick1(Sender:TObject);
begin
nRegID:=(Sender as TBitBtn).Tag;
NombreBoton:=(SEnder as tBitBtn).Name; IniciaTRS();
if FindComponent('frmRegComanda') = nil then
frmRegComanda:=TfrmRegComanda.Create(self);
frmRegComanda.ShowModal;
end;
Muchas gracias. Saludos.