![]() |
Procedure soll Procedure aufrufen als Pointer ?
Hi,
ich habe ein kleines Problemchen, meine Procedure A soll die Procedure B ausführen dieals Parameter übergeben wird:
Delphi-Quellcode:
Wie macht man das ?
var B: procedure(); stdcall;
procedure A(Proc: Pointer); begin // und nu starte "B" end; |
Re: Procedure soll Procedure aufrufen als Pointer ?
Probier mal TProcedure(proc);
|
Re: Procedure soll Procedure aufrufen als Pointer ?
Du musst einen Typen für den Funktionszeiger deklarieren. Du kannst nun entweder den Parameter als von diesem Typ (statt als Pointer) deklarieren oder du castest in der Routine.
|
Re: Procedure soll Procedure aufrufen als Pointer ?
Sorry, ich habe das obere Beispiel "verhauen". Liegt bestimmt am Wetter. ;)
Richtiger wird es so:
Delphi-Quellcode:
Geht das nur über den Typecast ? Irgend wie schauts komisch aus. :mrgreen:
uses
Windows; type TProcedure = procedure; // no SysUtils procedure MyProcNow; stdcall; begin MessageBox(0, 'Hallöhle !', '*', MB_OK); end; procedure CallMyProc(MyProc: Pointer); begin TProcedure(MyProc); end; BEGIN CallMyProc(@MyProcNow); END. |
Re: Procedure soll Procedure aufrufen als Pointer ?
alternativ:
Delphi-Quellcode:
procedure CallMyProc(MyProc: TProcedure);
begin MyProc; end; |
Re: Procedure soll Procedure aufrufen als Pointer ?
Danke. Aber ich wollte das TProcedure los werden.
Ist jetzt aber nicht weiter schlim. |
Re: Procedure soll Procedure aufrufen als Pointer ?
Folgendes dürfte auch noch hin hauen, ist aber kaum hübsch, und sobald Parameter ins Spiel kommen wirds etwas komplizierter:
Delphi-Quellcode:
;)
procedure CallMyProc(MyProc: Pointer);
asm CALL EAX end; |
Re: Procedure soll Procedure aufrufen als Pointer ?
Ja, genau dass ist das warum ich nicht CALL nutze.
Die Procedure und oder Funktion kann ggf. Parameter enthalten. |
Re: Procedure soll Procedure aufrufen als Pointer ?
Was spricht denn gegen 'TProcedure' in dem Prozedurkopf?
[edit] achso, wegen der Parameter... [/edit] [x] Was Du machst, ist schon pervers, das weisst du, oder? :zwinker: |
Re: Procedure soll Procedure aufrufen als Pointer ?
Nein, ich weis von nichts. :gruebel:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:39 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