Uygulamamın formunu kapattığımda EAccessViolation yaşıyorum ve bununla nasıl baş edeceğimi bilmiyorum, iki birimim var, burada ana birim ilgili kod:Form 1 kapatırken EAccessViolation nasıl işlenir
Ben kapatmakunit myComponent;
type
TMyComponentEvent = procedure(sender: TObject; p: integer) of object;
type
TMyComponent = class(TComponent)
// Properties and events declaration
procedure TPThread.Execute;
begin
try
// Create and run some worker threads
// Wait for them to finish the job
// This is the last thing to do:
if Assigned(FOnMyComponentEvent) then
begin
FOnMyComponentEvent(Self, p);
end;
finally
//free ressources
end;
end;
procedure TMyComponent.DoSomeWork;
begin
TPThread.Create(p1, p2 ...);
end;
end.
:
unit MainUnit;
uses
.., myComponent1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
MyComponent1.doSomeWork(p1, p2, ..., pn);
end;
procedure TForm1.OnMyComponen1tEvent(sender: TObject; p: Integer);
begin
memo1.Lines.Add(message);
end;
end.
Bu birim bunun gibi bir şey var, başka ünite i bileşeninin olayı kullanarak elbette mesajı göstermesine Memo1 için bir sinyal göndermek olduğu bir bileşen sınıfı, bir kullanır Programın işini bitirmeden önce formu (Konular hala çalışıyor), bu excep'i alıyorum Bazen, bazen istisna yoktur. İstisna yükseltildiğinde, satırı belirtir: memo1.Lines.Add(message);
. Bunu nasıl çözeceğimi bilmiyorum, bu yüzden istisnanın gerçekleşmesini nasıl engelleyebilirim?
onlar yok edildikten sonra nesnelere erişim yapmayın. Bunu nasıl elde edeceğiniz konusunda yardım istiyorsanız, bazı kodları görmek isteriz. –