Forum: Object-Pascal / Delphi-Language
Delphi
by Uwe Raabe,
11. Dez 2018
Und da steht es ja auch schon genauso drin, daß es in dieser Situation crasht:
Forum: Object-Pascal / Delphi-Language
Delphi
by Uwe Raabe,
8. Dez 2018
Das sieht man ja auch ganz deutlich an diesem Thread...
Forum: Object-Pascal / Delphi-Language
Delphi
by Uwe Raabe,
8. Dez 2018
Von dieser Forderung wirst du dich verabschieden müssen. Es gibt keinen praktikablen Weg, wie du über ein Callback an eine lokale Variable einer Methode kommen kannst.
Was aber geht wäre sowas:
type
TBldListeWrapper = class
private
FBldListe: TBldListe;
public
Forum: Object-Pascal / Delphi-Language
Delphi
by Uwe Raabe,
8. Dez 2018
Die Deklaration von TFindeDateiRM brauchst du schon um den Parameter zu deklarieren. Allerdings sind hier für die Übergabe keine lokalen Unterroutinen erlaubt, sondern nur globale Prozeduren oder statische Klassenmethoden. Meiner Meinung nach fehlt bei dieser Deklaration noch ein Kontext.
Wenn du die Deklaration von TFindeDateiRM nach deinen Bedürfnissen anpassen kannst, dann bietet sich...
Forum: Object-Pascal / Delphi-Language
Delphi
by Uwe Raabe,
8. Dez 2018
Dann gibt es also noch eine weitere FindeDateiRM neben der lokalen Unterroutine?
Was ein untrügliches Zeichen ist, daß die Lokale Prozedur ein anderer Typ ist als die Prozedurenvariable. Deswegen kann man die auch nicht übergeben.
Das ist nicht ganz richtig: Man übergibt eine Prozedurenvariable, nicht deren Adresse. Eine Prozedurenvariable ist zwar intern auch im Wesentlichen die...
Forum: Object-Pascal / Delphi-Language
Delphi
by Uwe Raabe,
8. Dez 2018
Es gibt tatsächlich einen technischen Hintergrund. Die Variablen innerhalb einer Methode werden auf dem Stack angelegt. Der Zugriff erfolgt über einen Offset zum Stackregister. Wird nun innerhalb dieser Methode eine lokale Unterroutine aufgerufen ändert sich aber dieses Stackregister. Wenn nun diese Unterroutine auf Variablen der übergeordneten Methode zugreift, muss der Compiler erstmal den...
Forum: Object-Pascal / Delphi-Language
Delphi
by Uwe Raabe,
8. Dez 2018
Das macht es auch wesentlich einfacher diese Unterroutinen in eigene Methoden zu extrahieren.