Como acessar um componente que esta presente em um form criado no JvPageList?
Estou usando o JvPageList para passar o um sistema para TDI.
Segui o exemplo que esta em
https://www.devmedia.com.br/clubedelphi/downloads/Ed_74.htm.
Já funcionou legal, mas estou precisando executar um click em um botão de form
que esta presente no JvPageList. Estou meio perdido.
NovaPagina(TfrmClientes, (Sender as TAction).ImageIndex ); // Criar a nova
pagina utilizando TfrmClientes.
frmClientes.cnrbtnFicha2LimpaAjuste.Click; // Aqui está o problema, não é
executado este comando. Parece que o form não foi criado.
procedure TfrmPrincipal.NovaPagina(ClasseForm: TFormClass; // Nova pagina
IndiceImagem: Integer);
var
Aba : TJvTabBarItem;
Pagina : TJvCustomPage;
Form : TForm;
TotalForms : Integer;
begin
TotalForms := TotalFormsAbertos(ClasseForm);
if TotalForms = 0 then
begin
if not PodeAbrirFormulario(ClasseForm, Pagina) then
begin
JvPageList.ActivePage := Pagina;
Exit;
end;
Aba := JvTabBar.AddTab('');
Pagina := TJvStandardPage.Create(Self);
Pagina.PageList := JvPageList;
Form := ClasseForm.Create(Pagina);
with Form do
begin
Align := alClient;
BorderStyle := bsNone;
Parent := Pagina;
end;
with Aba do
begin
Caption := Form.Caption;
ImageIndex := IndiceImagem;
PopupMenu := Self.PopupMenu;
end;
AjustarCaptionAbas(ClasseForm);
Form.Show;
JvPageList.ActivePage := Pagina;
end
else
begin
// UnitBiblioteca.Mensagem( 'Fom já aberto !!! ', mtWarning, [mbOk], 0 );
for TotalForms := 0 to JvPageList.PageCount - 1 do
if JvPageList.Pages[ TotalForms ].Components[ 0 ].ClassType = ClasseForm
then
JvPageList.ActivePageIndex := TotalForms;
end;
end;
Segui o exemplo que esta em
https://www.devmedia.com.br/clubedelphi/downloads/Ed_74.htm.
Já funcionou legal, mas estou precisando executar um click em um botão de form
que esta presente no JvPageList. Estou meio perdido.
NovaPagina(TfrmClientes, (Sender as TAction).ImageIndex ); // Criar a nova
pagina utilizando TfrmClientes.
frmClientes.cnrbtnFicha2LimpaAjuste.Click; // Aqui está o problema, não é
executado este comando. Parece que o form não foi criado.
procedure TfrmPrincipal.NovaPagina(ClasseForm: TFormClass; // Nova pagina
IndiceImagem: Integer);
var
Aba : TJvTabBarItem;
Pagina : TJvCustomPage;
Form : TForm;
TotalForms : Integer;
begin
TotalForms := TotalFormsAbertos(ClasseForm);
if TotalForms = 0 then
begin
if not PodeAbrirFormulario(ClasseForm, Pagina) then
begin
JvPageList.ActivePage := Pagina;
Exit;
end;
Aba := JvTabBar.AddTab('');
Pagina := TJvStandardPage.Create(Self);
Pagina.PageList := JvPageList;
Form := ClasseForm.Create(Pagina);
with Form do
begin
Align := alClient;
BorderStyle := bsNone;
Parent := Pagina;
end;
with Aba do
begin
Caption := Form.Caption;
ImageIndex := IndiceImagem;
PopupMenu := Self.PopupMenu;
end;
AjustarCaptionAbas(ClasseForm);
Form.Show;
JvPageList.ActivePage := Pagina;
end
else
begin
// UnitBiblioteca.Mensagem( 'Fom já aberto !!! ', mtWarning, [mbOk], 0 );
for TotalForms := 0 to JvPageList.PageCount - 1 do
if JvPageList.Pages[ TotalForms ].Components[ 0 ].ClassType = ClasseForm
then
JvPageList.ActivePageIndex := TotalForms;
end;
end;
Sidney Abreu
Curtidas 0
Respostas
Bruno Leandro
22/11/2012
Ola Sidney, eu nao utilizo este componente mais dando uma olhada no seu codigo o que eu entendi foi o seguinte, voce vai criar os formularios nas pages, e depois de executar a funcao NovaPagina, voce quer que o form chame o click do cnrbtnFicha2LimpaAjuste. o que deve estar acontecendo, ao executar o codigo abaixo o objeto frmClientes esta vazio ou nao eh o mesmo do que foi criado da sua funcao.
NovaPagina(TfrmClientes, (Sender as TAction).ImageIndex );
frmClientes.cnrbtnFicha2LimpaAjuste.Click;
voce pode fazer com que sua funcao retorne o TForm, e tera que executar o show depois e nao mais dentro da funcao ex
frmClientes := NovaPagina(TfrmClientes, (Sender as TAction).ImageIndex );
frmClientes.cnrbtnFicha2LimpaAjuste.Click;
frmClientes.Show;
ou tera que chamar este evento dentro da função novapagina
NovaPagina(TfrmClientes, (Sender as TAction).ImageIndex );
frmClientes.cnrbtnFicha2LimpaAjuste.Click;
voce pode fazer com que sua funcao retorne o TForm, e tera que executar o show depois e nao mais dentro da funcao ex
frmClientes := NovaPagina(TfrmClientes, (Sender as TAction).ImageIndex );
frmClientes.cnrbtnFicha2LimpaAjuste.Click;
frmClientes.Show;
ou tera que chamar este evento dentro da função novapagina
GOSTEI 0
Sidney Abreu
22/11/2012
Valeu amigo, vou testar.
GOSTEI 0
Sidney Abreu
22/11/2012
Não consegui, infelizmente
GOSTEI 0