Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Wie weist man einer Object Procedure eine Variable zu (https://www.delphipraxis.net/183046-wie-weist-man-einer-object-procedure-eine-variable-zu.html)

arnof 7. Dez 2014 20:03

Delphi-Version: XE7

Wie weist man einer Object Procedure eine Variable zu
 
Delphi-Quellcode:
type

 TUIPrintInteractionControllerCompletionHandler = procedure(printInteractionController: Pointer;
    completed: Pointer; error: Pointer) of object;

var
 print:TUIPrintInteractionControllerCompletionHandler;


...
wie füllt man nun die Variable print mit leben ?

Dejan Vu 7. Dez 2014 20:07

AW: Wie weist man einer Object Procedure eine Variable zu
 
Hast Du es mal mit 'myProcvar := @MyProc' Versucht?

himitsu 7. Dez 2014 22:23

AW: Wie weist man einer Object Procedure eine Variable zu
 
In Delphi ist das
Delphi-Quellcode:
@
bei Prozedur./Methodenzuweisungen optional.

Drum kann man auch
Delphi-Quellcode:
Edit1.OnChange := MyProc;
schreiben und muß nicht
Delphi-Quellcode:
Edit1.OnChange := @MyProc;
.
Bzw. es ist eigentlich andersrum, denn bei Mehthodenzeigern wird immer automatisch dereferenziert und man kann optional auch das @ benutzen.

Es gibt nur bestimmte Sonderfälle, wo man unbedingt das @ hinschreiben muß.

Sir Rufo 7. Dez 2014 22:28

AW: Wie weist man einer Object Procedure eine Variable zu
 
Delphi-Quellcode:
TFoo = class
  procedure Bar(printInteractionController: Pointer; completed: Pointer; error: Pointer);
end;

procedure FooBar;
var
  LFoo : TFoo;
  print : TUIPrintInteractionControllerCompletionHandler;
begin
  LFoo := TFoo.Create;
  print := LFoo.Bar;
end;

arnof 8. Dez 2014 07:06

AW: Wie weist man einer Object Procedure eine Variable zu
 
Vielen Dank, wieder was gelernt.

In meiner Not hatte ich dann eine Komponente erzeugt und ein property mit der Variable.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:56 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