Fórum Rotina para Limpar Formulário estilo fsMDIChild #254922

18/10/2004

0

Estou desenvolvendo uma aplicação MDI e estou com um problema.
Tenho uma rotina para limpar componentes de um determinado formulário. Ela funciona normalmente com aplicações SDI.
No sistema que estou desenvolvendo eu carrego meu formulário MDIChild em tempo de execução através do menu de um formulário principal. No formulário MDI eu chamo a seguinte rotina:

procedure LimparForm(frm: Tform);
var
x: integer;
begin
with frm do
begin
for x:=0 to (ControlCount-1) do
begin
{ TEdit, TDBLookupControl, TCustomCheckBox, ... [Colocar a classe ancestral]}

//TEdit
if (Controls[x] is TCustomEdit) then
(Controls[x] as TCustomEdit).Clear;

//TDBLookupControl
if (Controls[x] is TDBLookupComboBox) then
(Controls[x] as TDBLookupComboBox).ListField := ´´;

{ TListBox , TDBListBox}
if (Controls[x] is TCheckBox) then
(Controls[x] as TCheckBox).Checked := false;

end;
end;
end;

No entando quando chamo a rotina ....

LimparForm(frmFormularioPrincipal);

o parâmetro ´frmFormularioPrincipal ´é igual a nil, e então dá o seguinte erro ´EAccessViolation´.

Até agora não consegui achar onde estou errando. Como resolver?
Onde declarar a variável?
Se alguém por gentileza puder fazer o teste e me enviar a resposta fico muito grato.

mazeu :lol:


Mazeu

Mazeu

Responder

Posts

18/10/2004

Ipc$

Tente assim:
LimparForm(Application.MainForm);


Responder

Gostei + 0

18/10/2004

Mazeu

Desta maneira eu testei e foi passado o parâmetro, porém nada aconteceu, todos os edits e outros compenentes do formulário não foram limpos.
A rotina precisa verificar o MDIChild Ativo e fazer a limpeza de seus componentes....
Essa rotina esta na mesma unit do MDIChild.


Responder

Gostei + 0

18/10/2004

Ipc$

Utilize as propriedades MDIChildCount e MDIChildren[x] do Application.MainForm


Responder

Gostei + 0

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

Aceitar