AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Procedure soll Procedure aufrufen als Pointer ?
Thema durchsuchen
Ansicht
Themen-Optionen

Procedure soll Procedure aufrufen als Pointer ?

Ein Thema von turboPASCAL · begonnen am 6. Okt 2008 · letzter Beitrag vom 6. Okt 2008
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#1

Procedure soll Procedure aufrufen als Pointer ?

  Alt 6. Okt 2008, 14:26
Hi,

ich habe ein kleines Problemchen, meine Procedure A soll die Procedure B ausführen
dieals Parameter übergeben wird:


Delphi-Quellcode:
var B: procedure(); stdcall;

procedure A(Proc: Pointer);
begin
 // und nu starte "B"
end;
Wie macht man das ?
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Procedure soll Procedure aufrufen als Pointer ?

  Alt 6. Okt 2008, 14:28
Probier mal TProcedure(proc);
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Procedure soll Procedure aufrufen als Pointer ?

  Alt 6. Okt 2008, 14:29
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.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#4

Re: Procedure soll Procedure aufrufen als Pointer ?

  Alt 6. Okt 2008, 14:55
Sorry, ich habe das obere Beispiel "verhauen". Liegt bestimmt am Wetter.

Richtiger wird es so:

Delphi-Quellcode:
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.
Geht das nur über den Typecast ? Irgend wie schauts komisch aus.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von SubData
SubData

Registriert seit: 14. Sep 2004
Ort: Stuhr
1.078 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Procedure soll Procedure aufrufen als Pointer ?

  Alt 6. Okt 2008, 15:02
alternativ:

Delphi-Quellcode:
procedure CallMyProc(MyProc: TProcedure);
begin
  MyProc;
end;
Ronny
/(bb|[^b]{2})/
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#6

Re: Procedure soll Procedure aufrufen als Pointer ?

  Alt 6. Okt 2008, 15:15
Danke. Aber ich wollte das TProcedure los werden.

Ist jetzt aber nicht weiter schlim.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#7

Re: Procedure soll Procedure aufrufen als Pointer ?

  Alt 6. Okt 2008, 15:18
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;
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#8

Re: Procedure soll Procedure aufrufen als Pointer ?

  Alt 6. Okt 2008, 15:48
Ja, genau dass ist das warum ich nicht CALL nutze.
Die Procedure und oder Funktion kann ggf. Parameter enthalten.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#9

Re: Procedure soll Procedure aufrufen als Pointer ?

  Alt 6. Okt 2008, 15:50
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?
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#10

Re: Procedure soll Procedure aufrufen als Pointer ?

  Alt 6. Okt 2008, 16:00
Nein, ich weis von nichts.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:06 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz