Ben şu gibi ünitenin başlatma bu bileşeni TComponent bir değişkeni olan bir birim oluşturmak var .Create (Nil) yerine .Create (Uygulama) kullanabilir miyim:Ben
var
XComp: TComponent;
.
.
.
.
initialization
begin
XCom := TComponent.Create(Application);
end;
yükledikten sonra bana bir erişim ihlali hata iletisi (EAccessViolation)
verir ama Delphi kapattığınızda ünite ben
initialization
begin
XCom := TComponent.Create(nil);
end;
her şey iyi gitti aşağıdaki gibi olacaktır benim yaratıcısı değişti ... Ben farkı bilmek ister misiniz? ve daha iyi olan nedir?
not: hata yalnızca delphi kapatıldığında görünür (tasarım zamanında demektir).
Teşekkürler. Eğer
XCom := TComponent.Create(Application);
kullandığınızda
İşte ['takip edenlerden biri '] (http://stackoverflow.com/q/5420260/960757). – TLama
'Başlatma 'bölümünde' XCom' oluşturuyorsunuz. Onu serbest bırakan bir 'finalizasyon' bölümünüz var mı? –