Fórum Como acessar um componente que esta presente em um form criado no JvPageList? #429380

22/11/2012

0

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;
Sidney Abreu

Sidney Abreu

Responder

Posts

22/11/2012

Bruno Leandro

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
Responder

Gostei + 0

22/11/2012

Sidney Abreu

Valeu amigo, vou testar.
Responder

Gostei + 0

22/11/2012

Sidney Abreu

Não consegui, infelizmente
Responder

Gostei + 0

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

Aceitar