![]() |
Funktion mit variabler Übergabe
Hi,
Gibt es irgend eine Möglichkeit bei Aufruf einer Funktion die Parameter variabel zu machen? z.B. ich möchte mir eine Funktion schreiben die alle Fenster/Memos/buttons etc freigeben kann. Doch leider müsste ich ja dann für jedes gadget(buttons/Forms/Memos etc.) eine Funktion schreiben obwohl ja alle mit handel.free freigegeben werden können. Ich hoffe ich habe mich verständlich ausgedrückt. :) Mfg |
Re: Funktion mit variabler Übergabe
Du kannst alles auf TObject casten, welches der gemeinsame Vorfahre aller Klassen in Delphi ist, und bereits die MEthode Free implementiert.
Delphi-Quellcode:
Der Cast im Aufruf kann imho auch weg bleiben - habs grad nicht getestet, aber eigentlich sollte es auch gehen.
procedure FreeThis(obj: TObject);
begin obj.Free; end; // Aufruf: var btn: TButton; begin btn := TButton.Create(nil); FreeThis(TObjcet(btn)); end; Gruss, Fabian |
Re: Funktion mit variabler Übergabe
Hi,
hmm. Klappen tuts irgendwie nicht. Das Problem ist, dass ich die procedure aus einer DLL hole und ich es dann nicht so übergeben kann wie Sie es in dem Beispiel gezeigt haben. :? Hat vielleicht jemand noch ne andere Idee? Mfg |
Re: Funktion mit variabler Übergabe
Zitat:
Denn ein TForm ist auch ein TWinControl, genau wie ein TButton oder ein TEdit oder ein TMemo. Alle Formularkomponenten, die die Eigenschaft "Handle" haben, stammen davon ab. Du musst deine Routine also nur für den "kleinsten gemeinsamen Vorfahren" all dieser Komponenten schreiben, in diesem Fall für "TWinControl". |
Re: Funktion mit variabler Übergabe
Hi,
hmm. Wenn du meinst TWinControl als übergabe Parameter zu nehme, dass geht nicht. Wenn du aber meinst das ich einfach nur das Fenster freigeben muss, das geht leider auch nicht weil ich manchmal nur ein Memo oder nur Button freigeben möchte und nicht alles aufeinmal.
Delphi-Quellcode:
So gehts auf jeden fall nicht. Ist genau das gleiche wie TObject.
procedure FreeThis(obj: TWinControl); stdcall;
begin obj.Free; end; Mfg |
Re: Funktion mit variabler Übergabe
Zitat:
|
Re: Funktion mit variabler Übergabe
Hi,
"blitzcc.exe hat ein Problem blabla...Programm musss beendet werden..." Was soll man dazu groß sagen? :roll: Mfg |
Re: Funktion mit variabler Übergabe
Hi,
Okay. Sorry. Es lag nicht an der Funktion sondern an etwas anderem. Danke. Mfg |
Re: Funktion mit variabler Übergabe
Zitat:
und wie gesagt sollte ein TObject als Parameter reichen; wenn ein objekt mit einem anderen typ als TObject übergeben wird, wird ja eh dessen Free; aufgerufen und nicht das von TObject. |
Re: Funktion mit variabler Übergabe
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:26 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-2025 by Thomas Breitkreuz