![]() |
Ü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:
ExitProc ist eine Übergebene Function die eben ausgeführt wird, wenn das Formular geschlossen wurde.
procedure FormClose(Sender: TObject; var Action: TCloseAction; ExitProc:TExitProcedure);
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:
Wie kann ich prüfen, ob die Adresse, bzw. Procedure existiert???
inherited FormClose(Sender, Action, nil);
Delphi-Quellcode:
funktionnukkelt nicht.
if ExitProc <> nil then ExitProc;
Ich hoffe das einer helfen kann. Gruss Samson |
Re: Überprüfen ob eine Funktion existiert also nicht nil ist
Genau dafür gibt es Assigned
Delphi-Quellcode:
...:cat:...
if Assigned(ExitProc) then ExitProc;
|
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:
Ein Casten auf TPersistent funktioniert auch nicht.
Inkompatible Typen: 'TPersistent' und 'procedure, untyped pointer or untyped parameter'
Was kann ich tuen??? Gruss Samson |
Re: Überprüfen ob eine Funktion existiert also nicht nil ist
Wie hast Du denn TExitProcedure definiert?
...:cat:... |
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 |
Re: Überprüfen ob eine Funktion existiert also nicht nil ist
Moin Samson,
statt:
Delphi-Quellcode:
schreib' mal:
if ExitProc <> nil then ExitProc;
Code:
Das sollte auch gehen.
if [color=red]@[/color]ExitProc <> nil then ExitProc;
|
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