AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Class Initialisieren und Terminieren
Thema durchsuchen
Ansicht
Themen-Optionen

Class Initialisieren und Terminieren

Ein Thema von EWeiss · begonnen am 9. Okt 2006 · letzter Beitrag vom 9. Okt 2006
Antwort Antwort
Muetze1
(Gast)

n/a Beiträge
 
#1

Re: Class Initialisieren und Terminieren

  Alt 9. Okt 2006, 14:04
Zitat von r2c2:
Nach dem beginn im contructor gehört noch n inherited Create... In dem Fall isses zwar nicht so wichtig, man sollte es sich trotzdem angewöhnen...
Wieso denn dies? Wir haben schliesslich keinen Constructor überschrieben - schon allein, da keiner virtuell ist...

@EWeiss:
Delphi-Quellcode:
implementation

var
   Magnetic : TMagnetic;
begin
   Magnetic := TMagnetic.create; // <- TMagnetic - hier beim Constructor immer die Klasse angeben - die Variable mit der Instanz (Magnetic) ist ja noch nicht gefüllt!
   try
      Magnetic.Class_Initialize; // klar, kein Problem so - also Class_Initialize als Methode. Du könntest die Initialisierung aber auch im Constructor erledigen
   finally
      Magnetic.Free; // du willst hier doch die Klasse freigeben. Dies geschieht durch den Destructor und der wird im Normalfall über Free aufgerufen.
   end;
end;

  // Das sind so normale Proceduren gewesen, du willst aber Methoden machen. Daher: TMagnetic. davor. Sprich: Schreibe den Klassennamen mit einem Punkt davor und du erhälst eine Methode.
  // Ansonsten: Diese Anweisungen kannst du auch in den Constructor übertragen
procedure TMagnetic.Class_Initialize;
begin
    // Default snap width
    m_lSnapWidth := 10;

    // Initialize array (handled windows info)
    ReDim m_uWndInfo(0): WND_INFO;
    m_lWndCount := 0;
End;

  // wie oben beschrieben mal als Destructor ausgelegt und nicht mehr als eigene Methode (Class_Terminate)
Destructor TMagnetic.Destroy;
begin
    // Stop subclassing
    If (m_lWndCount) Then
        Subclass_StopAll;

  Inherited;
End;
Nochwas als Tipp: Du hast doch die Architect Version von delphi, daher nutze doch die Code-Vervollständigung. Sprich: Schreibe oben doch einfach mal das Klassen Grundgerüst im Interface Abschnitt:

Delphi-Quellcode:
Type
  TMagnetic = Class
  Private
    m_lSnapWidth: Integer;
    m_uWndInfo: Array Of WND_Info;
    m_lWndCount: Integer; // wirklich nötig? Die Länge des dynamisches Arrays kann man in Delphi jederzeit abfragen...
  Public
    Constructor Create;
    Destructor Destroy; Override;

  End;
So, wenn du nun dich mit dem Cursor in die Zeile des Constructor's oder Destructor's stellst und dann STRG-SHIFT-C drückst, dann sollte Delphi dir die ganzen Methoden vervollständigen und im Implementation Teil ordentlich einfügen (mit dem TMagnetic vor dem Methodennamen).
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz