Delphi Can

Orjinalini görmek için tıklayınız: TTabSheet Create Constructor hk
Şu anda (Arşiv) modunu görüntülemektesiniz. Orjinal Sürümü Görüntüle internal link
Merhabalar,

TTabSheet 'in Crate olayını sahiplenmem lazım create ve destroy olaylarında yapmam gereken işlem var, ama bir şeyi atlıyorum sanırım.

Atladığım detay nedir ?


  TTabSheet = class(TWinControl)
  public
   constructor Create(AOwner: TComponent);
   destructor Destroy; override;
 end;

{ TTabSheet }

constructor TTabSheet.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  ShowMessage('Create');
end;

destructor TTabSheet.Destroy;
begin
  ShowMessage('Destroy');
  inherited;
end;
inherited Destroy; yapmanız gerekmiyormu?
Tam olarak ne yapmaya çalıştığınızı bilmiyorum ama bu yaptığınız bağımsız bir sınıftır, Delphi kütüphanesinde bulunan (her ne kadar aynı ismi verseniz de) TTabSheet sınıfıyla alakası yoktur. Şurada anlatılan konu sanırım VCL içinde tanımlı TTabSheet sınıfında değişiklik yapmanızı sağlayacaktır

(07-09-2018, Saat: 11:55)esistem Adlı Kullanıcıdan Alıntı: [ -> ]inherited Destroy; yapmanız gerekmiyormu?
Override edilen virtual (ya da dynamic) metot içinde sadece inherited; yazmak, ata sınıftaki aynı metotu aynı parametrelerle çağrılmasını sağlayacaktır.
Hallettim Teşekkürler,

  MyTabSheet = class(TTabSheet)
 public
   constructor Create(AOwner: TComponent); override;
   destructor Destroy; override;
 end;

constructor MyTabSheet.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  ShowMessage('Create');
end;

destructor MyTabSheet.Destroy;
begin
  ShowMessage('Destroy');
  inherited;
end;
(07-09-2018, Saat: 11:55)esistem Adlı Kullanıcıdan Alıntı: [ -> ]inherited Destroy; yapmanız gerekmiyormu?

Gerekiyor mu ?
memoryleakreport açık bir uyarı vermedi veya gözümden kaçtı.
(09-09-2018, Saat: 18:56)yhackup Adlı Kullanıcıdan Alıntı: [ -> ]
(07-09-2018, Saat: 11:55)esistem Adlı Kullanıcıdan Alıntı: [ -> ]inherited Destroy; yapmanız gerekmiyormu?

Gerekiyor mu ?
memoryleakreport açık bir uyarı vermedi veya gözümden kaçtı.

bende @sabanakman hocamdan öğrendim gerekmediğini, bu konularda derinlemesine bilgim yok maalesef geri kalmışız bu tip temel konularda.
Merhaba,
Sınıfın Interface bölümünü oluşturduktan sonra, Ctrl + Shift + C tuşlarına bastığınızda, Implementation bölümündeki kod yapısı IDE Insight tarafından otomatik tamamlanır.  
Sınıfın, Ide Insight tarafından oluşturulan kod kısmı aşağıdaki gibi olacaktır.
constructor MyTabSheet.Create(AOwner: TComponent);
begin
 inherited;

end;

destructor MyTabSheet.Destroy;
begin

 inherited;
end;
Sadece Destroy değil constructor'ı da yazılmadı. 
Bunun sebebi, metoda override direktifinin verilmesi ve Inherited edilmesidir.