Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Überprüfen ob eine Funktion existiert also nicht nil ist. (https://www.delphipraxis.net/10672-ueberpruefen-ob-eine-funktion-existiert-also-nicht-nil-ist.html)

samson 23. Okt 2003 10:21


Überprüfen ob eine Funktion existiert also nicht nil ist.
 
Hallo,

ich habe folgendes Problem.

Also. Ich habe ein Basisformular erstellt: TBasicForm welches von TForm abgeleitet ist. Wenn ich jetzt MDIChilds erstelle, werden diese von TBasicForm abgeleitet.

Die Formular-Procedure FormClose habe ich überschrieben, damit Sie so aussieht:
Delphi-Quellcode:
procedure FormClose(Sender: TObject; var Action: TCloseAction; ExitProc:TExitProcedure);
ExitProc ist eine Übergebene Function die eben ausgeführt wird, wenn das Formular geschlossen wurde.

Ich habe jetzt ein MDIChild erstellt, welches keine Procedure übergeben bekommt. Wenn nun versucht wird die ExitProc-Function auszuführen gibt es eine Exception.

Aufruf:
Delphi-Quellcode:
inherited FormClose(Sender, Action, nil);
Wie kann ich prüfen, ob die Adresse, bzw. Procedure existiert???

Delphi-Quellcode:
if ExitProc <> nil then ExitProc;
funktionnukkelt nicht.

Ich hoffe das einer helfen kann.

Gruss

Samson

sakura 23. Okt 2003 10:31

Re: Überprüfen ob eine Funktion existiert also nicht nil ist
 
Genau dafür gibt es Assigned

Delphi-Quellcode:
if Assigned(ExitProc) then ExitProc;
...:cat:...

samson 23. Okt 2003 10:57

Re: Überprüfen ob eine Funktion existiert also nicht nil ist
 
Hallo Sakura.

Ich habs ausprobiert. Leider lässt sich der Quelltext dann nicht kompilieren:

Delphi-Quellcode:
Inkompatible Typen: 'TPersistent' und 'procedure, untyped pointer or untyped parameter'
Ein Casten auf TPersistent funktioniert auch nicht.

Was kann ich tuen???


Gruss


Samson

sakura 23. Okt 2003 11:02

Re: Überprüfen ob eine Funktion existiert also nicht nil ist
 
Wie hast Du denn TExitProcedure definiert?

...:cat:...

samson 23. Okt 2003 11:26

Re: Überprüfen ob eine Funktion existiert also nicht nil ist
 
Hat sich erledigt. Funktioniert gut.

Ich habe beim Ausprobieren statt: Assigned -> Assign verwendet.

Mit Assigned gehts besser. :nerd:

Danke.

Gruss

Samson

Christian Seehase 23. Okt 2003 13:15

Re: Überprüfen ob eine Funktion existiert also nicht nil ist
 
Moin Samson,

statt:

Delphi-Quellcode:
if ExitProc <> nil then ExitProc;
schreib' mal:

Code:
if [color=red]@[/color]ExitProc <> nil then ExitProc;
Das sollte auch gehen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:17 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