Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Poniter einer procedure übergeben (https://www.delphipraxis.net/105804-poniter-einer-procedure-uebergeben.html)

Christian18 30. Dez 2007 13:52


Poniter einer procedure übergeben
 
Hallo,

wie kann ich in Delphi den Pointer einer Procedure übergeben?

MFG Christian18

Apollonius 30. Dez 2007 13:53

Re: Poniter einer procedure übergeben
 
Den Pointer einer Prozedur übergeben? Was meinst du? Als Parameter? Einen Pointer, einen Zeiger oder einen Prozedurzeiger?

Christian18 30. Dez 2007 13:55

Re: Poniter einer procedure übergeben
 
ich habe eine funktion, der ich eine procedure übergeben soll.

[Pascal Fehler] Unit1.pas(46): E2010 Inkompatible Typen: 'Pointer' und 'procedure, untyped pointer or untyped parameter'

Apollonius 30. Dez 2007 13:56

Re: Poniter einer procedure übergeben
 
Meine Glaskugel ist gerade so vernebelt.

mkinzler 30. Dez 2007 13:56

Re: Poniter einer procedure übergeben
 
Wie sieht die Signatur der Funktion aus?

DeddyH 30. Dez 2007 13:56

Re: Poniter einer procedure übergeben
 
So etwas wie Sort(@SortFunc)?

Christian18 30. Dez 2007 13:57

Re: Poniter einer procedure übergeben
 
Hallo,

ich habe eine kleine Procedure geschrieben, die ich in einem Thread ausführen möchte. Diese procedure greift aber auf Formular elemente zu. wie kann ich das realisieren?
Delphi-Quellcode:
procedure TFMain.Button1Click(Sender: TObject);
  var id : Integer;
begin
  CreateThread(nil, 0, Import, nil, 0, id)
end;

1234588 30. Dez 2007 13:58

Re: Poniter einer procedure übergeben
 
Delphi-Quellcode:
procedure miep(i: LongInt);
begin
  writeln(i);
  readln;
end;

type
  Tmiep = procedure(i: LongInt);

procedure test(m: Tmiep);
begin
  m(1);
end;

begin
  test(@miep);
end.

//edit

teste mal folgendes:

function Import(p: pointer): longint);

..

CreateThread(nil, 0, @Import, nil, 0, id)

sirius 30. Dez 2007 14:38

Re: Poniter einer procedure übergeben
 
Delphi-Quellcode:
CreateThread(nil, 0, @Import, nil, 0, id)
Aber benutze besser BeginThread. Macht fast dasselbe + den Speichermanager auf Multithreading vorzubereiten.
Und muss ID nicht cardinal sein?

Apollonius 30. Dez 2007 14:42

Re: Poniter einer procedure übergeben
 
Es kann aber mit der Aufrufkonvention haken. BeginThread erwartet Register, CreateThread stdcall.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:12 Uhr.
Seite 1 von 2  1 2      

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