Funktions- und Methodenzeiger OBJECT PASCAL IM DETAIL
4.9. Funktions- und Methodenzeiger
Funktionen und Prozeduren können selbst in Variablen gespeichert werden bzw. ein Verweis auf sie. Somit ist es möglich, einer Funktion eine andere Funktion als Parameter zu übergeben. type TMeineFunktion = function: Integer; In diesem Fall haben die Funktionen oder Prozeduren keinen Namen, sondern bestehen aus dem Schlüsselwort function oder procedure, bei Bedarf gefolgt von Parametern in runden Klammern und einem Rückgabewert. Ha delt es si h u Methode , folgt o h „of o je t : TMeineMethode = procedure of object; Praktischer Nutzen der Sache: Man kann somit eine Ereignisbehandlungsroutine erstellen und erst zur Laufzeit einem Objekt einer Komponente zuordnen. Beispiel: Object Pascal im Detail - Funktions- und Methodenzeiger www.delphi-treff.de 108 type TMyOnClick = procedureSender: TObject of object; TMyForm = classTForm procedure MyButtonClickEventSender: TObject; end; var MyOnClick: TMyOnClick; MyForm: TMyForm; ... MyOnClick := MyForm.MyButtonClickEvent; Die OnClick-Events der Komponenten haben ebenfalls einen Methodenzeiger als Typ, den gleichen wie TMyOnClick im Beispiel. Deshalb ist es möglich, z.B. einem Button zur Laufzeit eine Methode mit dem gleichen Parameter zuzuweisen. Variablen vom Typ einer FunktionProzedur beinhalten die Speicheradresse, also einen Zeiger auf die Routine. Bei Methoden werden zwei Zeiger gespeichert: die Adresse der Methode und eine Referenz auf die Instanz. Object Pascal im Detail - Exceptions www.delphi-treff.deParts
» E-book – Endang Cahya Permana
» Was ist Delphi überhaupt? Wo bekomme ich Delphi her?
» Installation Der erste Start
» „Hallo Welt“ für Ko sole „Hallo Welt“ it GUI VCL
» „Hallo Welt“ it GUI FireMo key
» Projektdatei .dpr Quellcode .pas
» Fensterdefinition .dfm Eine ausführbare Datei EXE erzeugen Delphi-Programme weitergeben
» Was sind Variablen? Variablen deklarieren Werte zuweisen
» Variablen umwandeln Mit Variablen rechnen
» Logische Ausdrücke Bedingungen
» Parameter Prozeduren Funktionen Unterprogramme: Prozeduren und Funktionen
» Delphis Entwicklungsumgebung IDE Eingaben in VCL-Anwendungen
» Fenster gestalten Eingaben in VCL-Anwendungen
» TMemo TListBox Wichtige Komponenten
» Hilfe Delphi-Komponentenbibliotheken SCHNELLSTART – DAS WICHTIGSTE
» Was sind Variablen? Datentypen
» Deklaration Globale Variablen Lokale Variablen
» Zuweisungen Initialisierung Beispiel Variablen und Konstanten
» Typumwandlung Konstanten Variablen und Konstanten
» Unterschiedliche String-Typen String ShortString AnsiString
» UnicodeString UTF8String Strings
» Boolean-Variablen Funktionsrückgabewert Properties Boolean-Ausdrücke Kurzschluss?
» für was denn not? Gehts nicht komplizierter? Klammern und warum man sie nicht vergessen sollte
» Was sind Schleifen? for-Schleife while-Schleife
» Typdefinition Teilbereichstypen Aufzählungstypen „Enumeration Types“
» Dynamische Arrays Mehrdimensionale Arrays
» zur Zeigertypdefinition zur Ermittlung einer Speicheradresse zur Dereferenzierung
» Was sind Prozeduren und Funktionen? Aufbau einer Prozedur Aufbau einer Funktion
» Wert- und Variablenparameter Parameter
» Konstantenparameter Ausgabeparameter Array-Parameter Default-Parameter
» forward- und interface-Deklarationen Prozeduren und Funktionen überladen
» Prozeduren und Funktionen abbrechen
» Units verwenden Positionen der uses-Klausel
» Klassen, Objekte und Instanzen Schach
» Methoden Attribute oder Felder
» Eigenschaften oder Properties Elemente einer Klasse
» Objekte erzeugen: Der Konstruktor Eigener Konstruktor
» Vererbung - Alles erbt von TObject Abstrakte Methoden
» Typbestimmung und -umwandlung mit is und as
» Funktions- und Methodenzeiger OBJECT PASCAL IM DETAIL
» Exceptions werfen Eigene Exception Exceptions fangen
» Exceptions fangen und weiterwerfen Ressourcenschutzblöcke: try
» Binär- und Textdateien Dateiname und -pfad Relative und absolute Pfade
» Öffnen und Schließen der Datei
» Schreiben und Lesen Die Dateitypen
» Der Dateizeiger Fehlerquellen Die Dateitypen
» Orientierung im FileStream Schreiben und Lesen
» Die Handhabung Die Klasse TStringList
» Arbeiten mit Dateien Dateien
» Heute und jetzt Datum und Zeit umwandeln
» Listen mit TList Besondere Datentypen
» Dictionaries mit TDictionary Besondere Datentypen
» Stacks und Queues Besondere Datentypen
» Ge erische Date type „Ge erics“
» Haltepunkte „Break points“ Die Elemente des Debuggers
» Durchschreiten des Quelltextes Überwachte Ausdrücke
» Hinweise und Warnungen Verhalten bei Fehlern
» Fehler zum Zeitpunkt der Kompilierung
» Interpretieren von Laufzeitfehlern Verhalten bei Fehlern
» Lesbarkeit des Quelltextes Vermeiden von Fehlern
» Speicherlecks Vermeiden von Fehlern
» VCL-Stile FireMonkey-Stile Oberflächen-Stile
» VCL-Anwendung für Metropolis-UI FireMonkey-Anwendung für Metropolis-UI
» Server Client Datenübertragung mit Indy-Komponenten
» Was ist eine Datenbank? Was ist SQL?
» Was ist SQLite? Relationale Datenbanksysteme
» Datenbankverbindung herstellen und trennen Datensatz abfragen Abfragen mehrerer Datensätze
Show more