Fórum ActionList para cada Formulário #349025
14/11/2007
0
Sendo que ao abrir um formulário filho o actionlist do mesmo ative os controles do menu e da toollbar com as suas respectivas ações.
Tem como, algum exemplo, abraço a todos.
Onhide86
Curtir tópico
+ 0Posts
15/11/2007
Pestana_
se não for isso poste aqui novamente,
Pestana.
Gostei + 0
15/11/2007
Onhide86
Gostei + 0
16/11/2007
Fabiano Góes
bom, a idéia que tenho é a seguinte:
criar uma classe em uma unit assim:
unit UActions; interface uses Classes; type TMyActions = class public procedure New; virtual; abstract; procedure Edit; virtual; abstract; procedure Cancel; virtual; abstract; procedure Delete; virtual; abstract; procedure Save; virtual; abstract; procedure Search; virtual; abstract; end; implementation end.
no form principal crio uma variavel publica:
public Actions: TMyActions; end;
nas actions do form principal seto os eventos da classe:
procedure TfrmMain.actEditExecute(Sender: TObject); begin Actions.Edit; end; procedure TfrmMain.actCancelExecute(Sender: TObject); begin Actions.Cancel; end; procedure TfrmMain.actDeleteExecute(Sender: TObject); begin Actions.Delete; end; procedure TfrmMain.actSaveExecute(Sender: TObject); begin Actions.Save; end; procedure TfrmMain.actSearchExecute(Sender: TObject); begin Actions.Search; end;
lembrando que os eventos não foram implementados ainda porque são Virtual; abstract; serão implementados conforme ações dos forms filhos.
Nos forms filhos crio outra classe descendente da TMyActions:
TActionsCustomer = class(TMyActions) public procedure New; override; procedure Edit; override; procedure Cancel; override; procedure Delete; override; procedure Save; override; procedure Search; override; end;
ai no form filho implemento os metodos: New, Edit ...
crio uma variavel do tipo da nova classe: Actions: TActionsCustomer;
no evento OnCreate do form filho crio a instancia do Objeto:
procedure TfrmCustomer.FormCreate(Sender: TObject); begin Actions := TActionsCustomer.Create; end;
no evento OnActive do form filho passo uma referencia do Objeto para o form Pai:
procedure TfrmCustomer.FormActivate(Sender: TObject); begin frmMain.Actions := Actions; end;
bom não sei dizer se essa seria a melhor maneira de fazer isso, quem quizer dar outras idéias fica a vontade.
acho que é meio confuso mais funciona !!!!
abraço !!!
Gostei + 0
16/11/2007
Onhide86
Se tiver mande para este e-mail: edinho_faccin@hotmail.com
Gostei + 0
16/11/2007
Fabiano Góes
eu criei um sisteminha de exemplo pra postar, assim que chegar em casa te mando, ai vc teste e posta se resolve ou não pra que o post não fique em aberto ok ?
abraço !!!
Gostei + 0
16/11/2007
Onhide86
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)