Fórum Como poder acessar tabsheet/Form criado dinamicamente ? #296113

19/09/2005

0

olá pessoal

estou criando forms dentro de pagecontrol/tabsheets da seguinte forma:

  
procedure TFrm550F.Button1Click(Sender: TObject);
begin
  if Tab = nil then
  begin
    Tab := TTabSheet.Create(PgCtrlCliente);
    Tab.Caption := NmCliente;
    Tab.PageControl := PgCtrlCliente;

    with TFrm550aF.Create(Tab) do
    begin
      borderstyle := bsnone;
      align := alclient;
      parent := Tab;
      show;
    end;
  end;

  PgCtrlCliente.ActivePage := Tab;
  Tab := nil;
end;


no OnShow do form Frm550aF eu crio um outro form (Frm550bF) dinamicamente dentro de um panel nele contido :

procedure TFrm550aF.FormShow(Sender: TObject);
begin
   with TFrm550bF.Create(PnlPrincipal) do
  begin
    borderstyle := bsnone;
    align := alclient;
    parent := PnlPrincipal;
    show;
  end;
end;


Preciso saber como acessar tabelas e controles que estão nesses forms dentro dos tabsheets do pagecontrol, sabendo que: terei vários tabsheets, e dentro de cada um eu terei um form 550F e dentro deste o form 550aF.

eu tentei por exemplo fazer :

Frm550aF.TblCliente.Findkey([StrToInt(EdtCdCliente.Text)]);

mas não funcionou.

a estrutura de forms é a seguitne :
-Frm550F
---Frm550aF
------Frm550bF

obrigado

Diogo


Diogoalles

Diogoalles

Responder

Posts

19/09/2005

Ipc$

Utilize a propriedade Components das TabSheets e dos Panels.


Responder

Gostei + 0

19/09/2005

Diogoalles

Já tentei, mas não consegui.
Cada um dos Tabsheets será um cliente, então após criar o tabsheet com seus respectivos forms preciso acessar tabelas e componentes, sem afestar o outro tabsheet, aí não estou conseguindo distinguir qual estou acessando.

Eu gostaria que o tabsheet que está sendo criado tivesse uma identificação única, como por exemplo Cd_cliente. Só que aí mesmo assim precisarei saber como acessar os dados dos 2 forms embutidos nesse tabsheet.

Se tiver um exemplo ficaria grato.

obrigado

Diogo


Responder

Gostei + 0

21/09/2005

Diogoalles

Bom dia pessoal,

Consegui acessar os forms eu dei um Nome para cada um na sua criação, acho q é a maneira correta ou não ?

Agora estou com outro probleminha:

Eu crio um tabsheet para cada cliente. Nesse tabsheet vai ter um form(frm550a). Nesse form eu tenho um outro tabsheet que já está no pageindex = 0, só que no Onchange do pagecontrol deste frm550a eu gostaria de criar outros forms conforme o pageindex com o seguinte código:

procedure TFrm550aF.PgCtrlProgsChange(Sender: TObject);
begin
  if PgCtrlProgs.ActivePageIndex = 1 then
  begin
    if not assigned(frm554) then
    begin
      frm554 := TFrm554F.Create(frm550a);
      frm554.Parent  := TsPacAlergias;
      frm554.show;
    end
  end;
end;


o problema é q se eu tiver no pagecontrolprincipal em outro cliente ao ir no onchange do seu form interno nesse evento onchange não será criado o frm554 para o cliente, pq ele já foi criado em outro form para outro cliente.

como faço então para poder criar o frm554 para cada cliente ?


obrigado

Diogo


Responder

Gostei + 0

22/09/2005

Bmetric

Sugiro que vc saia do computador e desenhe um mapa desse labirinto.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar