Fórum Access violation #335679

04/01/2007

0

estou tentando executar esse metodo em uma classe e da erro de violação de acesso.
se alguem puder me ajudar eu agradeço.
procedure TMainManut.CleanControls(AForm: TForm);
var i: integer;
begin
  for i:= 0 to AForm.ComponentCount - 1 do
  begin
    if AForm.Components[i] is TCustomEdit then
      (AForm.Components[i] as TCustomEdit).Clear;

    if AForm.Components[i] is TComboBox then
      (AForm.Components[i] as TComboBox).Text := ´´;

    if AForm.Components[i] is TMemo then
      (AForm.Components[i] as TMemo).Clear;

  end;  
end;



Fabiano Góes

Fabiano Góes

Responder

Posts

04/01/2007

Massuda

Nesse seu código, uma forma de dar AV é AForm ser nil ou um form que já foi destruído.


Responder

Gostei + 0

04/01/2007

Fabiano Góes

massuda esta acontecendo o erro porque o form é criado através de um metodo que esta em uma classe:
procedure TMain.OpenForm(AFormClass: TFormClass; AForm: TForm);
begin
  AForm := AFormClass.Create(application);
  try
    AForm.ShowModal;
  finally
    AForm.Release;
    AForm.Free;
  end;
end;


se eu criar o form sem usar o metodo funciona


Responder

Gostei + 0

04/01/2007

Massuda

[quote:0d04b80463=´Fabiano Góes´]procedure TMain.OpenForm(AFormClass: TFormClass; AForm: TForm);
...[/quote:0d04b80463]Esse seu código cria, mostra e [b:0d04b80463]destrói[/b:0d04b80463] o form. Fora da procedure OpenForm, o valor de AForm é inválido.


Responder

Gostei + 0

04/01/2007

Aroldo Zanela

Colega,

Sua idéia e implementar isto que foi respondido pelo Massuda no [url=http://www.forumweb.com.br/foruns/index.php?showtopic=26341&hl=findclass]ForumWeb[/url]?


Responder

Gostei + 0

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

Aceitar