Ver Mensaje Individual
  #7  
Antiguo 11-10-2021
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Reputación: 21
mRoman Va por buen camino
Resuelto

Cita:
Empezado por ecfisa Ver Mensaje
Hola.

Podrías hacer:
Código Delphi [-]
...
var
  bt: TBitBtn;
begin
  OtroForm := TOtroForm.Create(Self);
  OtroForm.Show;

  // NombreDelBoton(TBitBtn) fue creado dinámicamente en OtroForm en este punto

  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
    // **** Con el siguiente codigo eliminamos los botones que puedan estar dentro del SCROLLBOX1 *****
    
    ScrollBox1.Visible:=True;
    while ScrollBox1.ControlCount > 0 do
        ScrollBox1.Controls[0].Free;

//************* CREA LOS BOTONES POR CADA MESA *****************
     PosY:=8;
     nLeft:=8;
     n:=1;
     qryMesas.Close;
     qryMesas.ParamByName('EMP_ID').AsString:=vNumEmpl;
     qryMesas.Open;
     qryMesas.First;
{     if not(qryMesas.IsEmpty) then
     begin}
         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;
{    end Else Begin
        ShowMessage('No tienes aún MESAS ABIERTAS!');
    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);
{var
  nRegID2 : Integer;}
begin
     nRegID:=(Sender as TBitBtn).Tag;
     NombreBoton:=(SEnder as tBitBtn).Name; //Aqui le asigno el nombre del boton al dar click sobre el mismo a la variable "NombreBoton"
     IniciaTRS();
     if FindComponent('frmRegComanda') = nil then
           frmRegComanda:=TfrmRegComanda.Create(self);
     frmRegComanda.ShowModal;
end;

Muchas gracias. Saludos.
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!

Última edición por mRoman fecha: 11-10-2021 a las 16:38:11.
Responder Con Cita