![]() |
Name einer Prozedur an Prozedur übergeben
Hallo,
Kann man den Namen einer Prozedur A einer bestimmten Prozedur B übergeben? Also z.B. so:
Delphi-Quellcode:
Der Aufruf dann:
procedure ProzedurB;
begin {...} end; procedure ProzedurA(prozB: ???); { <- ich suche das, was bei '???' stehen muss } var Shape: TShape; begin Shape := TShape.create; Shape.onMouseDown := prozB; end;
Delphi-Quellcode:
Es soll also die Prozedur, die in der Variablen prozB gespeichert ist, bei onMouseDown aufgerufen werden...
ProzedurA(ProzedurB);
Danke schonmal... |
Re: Name einer Prozedur an Prozedur übergeben
Delphi-Quellcode:
mfg
type
TProzedurB = procedure(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); // Shape onMouseDown sieht so aus! procedure ProzedurB(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin // mach was end; procedure ProzedurA(ProzB: TProzedurB); begin // mach was // Shape erstellen... Shape.OnMouseDown := ProzB; end; // aufruf: ProzedurA(ProzedurB); mirage228 |
Re: Name einer Prozedur an Prozedur übergeben
Vielen Dank :)
|
Re: Name einer Prozedur an Prozedur übergeben
Ich habs endlich ausprobieren können, aber da kommt folgender Fehler:
[Fehler] USCtrl.pas(57): Inkompatible Typen: 'Methodenzeiger und reguläre Prozedur' Und zwar in der Zeile, in der onMouseDown := ProzB steht... Hilfe bitte! ;) |
Re: Name einer Prozedur an Prozedur übergeben
Moin Char,
guckst Du hier: ![]() Da hatten wir das Thema gerade recht ausführlich. |
Re: Name einer Prozedur an Prozedur übergeben
Hi,
siehe OH Prozedurale Typen Um eine Methode eines Instanzobjekts zur referenzieren, muß dem Namen des prozeduralen Typs die Klausel of object hinzugefügt werden:
Delphi-Quellcode:
Diese Typen stellen Methodenzeiger dar. Ein Methodenzeiger wird in Form zweier Zeiger codiert, von denen der erste die Adresse der Methode speichert. Der zweite enthält eine Referenz auf das Objekt, zu dem die Methode gehört. Ein Beispiel:
type
TMethod = procedure of object; TNotifyEvent = procedure(Sender: TObject) of object; Grüsse Woki [edit=Daniel B]Delphi-Tags eingefügt. Mfg, Daniel B[/edit] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:25 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz