Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi handle in TComponent (https://www.delphipraxis.net/105558-handle-tcomponent.html)

Andreas L. 24. Dez 2007 12:18


handle in TComponent
 
Hi,
um Dateioperationen mit den Code von Sakura (http://www.delphipraxis.net/internal...ect.php?t=1451) vorzunehmen, muss ein Handle übergeben werden. Ich möchte die Funktion aber in einer Komponente abgeleitet von TComponent aufrufen. TComponent hat kein Handle, was muss ich also übergeben?

jbg 24. Dez 2007 12:28

Re: handle in TComponent
 
Du könntest Application.MainFormHandle oder Application.Handle übergeben.

Andreas L. 24. Dez 2007 12:34

Re: handle in TComponent
 
Zitat:

Zitat von jbg
Du könntest Application.MainFormHandle oder Application.Handle übergeben.

Dann muss ich der Komponente aber eine Eigenschaft geben, der ein Handle übergeben werden muss. Finde ich irgendwie blöd. Kann ich nicht über den Owner auf Application zugreifen? Und was ist, wenn die Komponente in einer DLL verwendet wird?

Bernhard Geyer 24. Dez 2007 13:32

Re: handle in TComponent
 
Zitat:

Zitat von Andreas L.
Zitat:

Zitat von jbg
Du könntest Application.MainFormHandle oder Application.Handle übergeben.

Dann muss ich der Komponente aber eine Eigenschaft geben, der ein Handle übergeben werden muss. Finde ich irgendwie blöd. Kann ich nicht über den Owner auf Application zugreifen?

Application ist ein globale Variable vom Typ TApplication (bei "normalen" Exen).

Zitat:

Zitat von Andreas L.
Und was ist, wenn die Komponente in einer DLL verwendet wird?

Die DLL hat ihre eigene TApplication-Instanz. Ist also kein Problem.

sirius 25. Dez 2007 09:40

Re: handle in TComponent
 
Wozu brauchst du denn das Handle? Das hat doch sicher einen Grund.
Wenn du den Zugriff auf gobale Variablen vermeiden willst (und das Konzept es erlaubt) dann nutze doch ein TWinControl anstatt TComponent. oder erstelle die ein Handle mit AllocateHWND und DeAllocateHWND.


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