Methodenaufruf vor Initialisierung

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Chris86
Beiträge: 7
Registriert: Di 25. Jan 2011, 21:29

Methodenaufruf vor Initialisierung

Beitrag von Chris86 »

Hallo zusammen,
ich habe eine Frage zu FPC/ Lazarus allgemein.
Eine eigene Klasse von mir hat einen Konstruktor und Methoden.
Der Konstruktor wird aufgerufen und ein paar Zeilen danach auch schon Methoden auf dem Objekt.

Kann es sein, dass der Konstruktor bzw. die Initialisierung noch nicht abgeschlossen ist und trotzdem Methoden angewendet werden?
Zumindest komme ich zu dieser Erkenntnis, wenn ich entsprechende showmessage Meldungen ausgebe.

Falls die Realisierung von Objekten bzw. Methoden in FPC so implementiert ist, wie kann man die ABlaufsteuerung erzwingen, dass Methoden erst nach dem Konstruktor ausgeführt werden?

Schöne Grüße,
Chris

Benutzeravatar
theo
Beiträge: 10865
Registriert: Mo 11. Sep 2006, 19:01

Re: Methodenaufruf vor Initialisierung

Beitrag von theo »

Mach mal ein Beispiel.
Allgemein würde ich sagen, dass das kein Problem ist, und alles normalerweise streng sequenziell abläuft.
Aber ein paar Zeilen Code würden klarer machen, was du meinst.

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Methodenaufruf vor Initialisierung

Beitrag von mschnell »

Chris86 hat geschrieben: Der Konstruktor wird aufgerufen und ein paar Zeilen danach auch schon Methoden auf dem Objekt.
Kann es sein, dass der Konstruktor bzw. die Initialisierung noch nicht abgeschlossen ist und trotzdem Methoden angewendet werden?
Wenn das Objekt und das Hauptprogramm keine Threads kreieren läuft in Lazarus alles brav hintereinander, es sei denn du ruftst "Application.ProcessMessages" auf. In diesem Call können andere Events bearbeitet werden. Sonst nicht.

-Michael

Chris86
Beiträge: 7
Registriert: Di 25. Jan 2011, 21:29

Re: Methodenaufruf vor Initialisierung

Beitrag von Chris86 »

danke für Eure Antworten.
Ich arbeite an meinem ersten Projekt und bin gestern nach 10h am Rechner etwas durcheinander gekommen. Der Fehler lag bei mir in der Erzeugung vom Objekt, naja was soll ich sagen...sehr dummer Fehler. Aber trotzdem danke für eure schnellen Antworten und Hilfsbereitschaft!

Antworten