Rotina para Limpar Formulário estilo fsMDIChild

Delphi

18/10/2004

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

Curtidas 0

Respostas

Ipc$

Ipc$

18/10/2004

Tente assim:
LimparForm(Application.MainForm);


GOSTEI 0
Mazeu

Mazeu

18/10/2004

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.


GOSTEI 0
Ipc$

Ipc$

18/10/2004

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


GOSTEI 0
POSTAR