Einzelnen Beitrag anzeigen

mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#6

Re: Interface Referenzzählung

  Alt 4. Jun 2009, 13:51
Zitat von QuickAndDirty:
Zitat von jbg:
Ach ja: Du hast gerade herausgefunden, warum man Interfaces mit Objektreferenzen nicht mischen soll: Die Referenzzählung spielt verrückt und die Objektreferenz oder das Interface zeigen auf ein nicht mehr vorhandenes Objekt.
Das ist nicht gerade ein motivierender Lernerfolg!
Gibt es ein Class2Interface Tool, damit ich den public Teil wenigstens nicht ständig doppelt deklarieren muss?
Ja: das Extract Interface Refactoring in der IDE. Einfach rechte Maustaste auf der Klassendeklaration und dann aus dem Kontextmenü wählen. Man kann die zu extrahierenden Methoden dann auch einzeln deaktivieren. Die Klasse erhält dann auch in der Deklaration das Interface.

Das sieht dann bei einem Formular so aus:

Delphi-Quellcode:
type
  IMainFrm = interface
  procedure Button1Click(Sender: TObject);
  procedure Button2Click(Sender: TObject);
  procedure Button3Click(Sender: TObject);
  procedure FormCreate(Sender: TObject);
  end;

  TMainForm = class(TForm, IMainFrm)
  ...
Refactorings sind für manche der einzige Grund, auf eine neuere Version zu wechseln - was man da bei grossen Projekten an Zeit spart, gleicht die längere Startzeit der IDE locker aus
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat