Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Komponente bei einem Handle erzeugen (https://www.delphipraxis.net/55779-komponente-bei-einem-handle-erzeugen.html)

Helmi 26. Okt 2005 21:17


Komponente bei einem Handle erzeugen
 
Hallo,

weiss jemand ob man an einem Handle eine Komponente erzeugen kann?

also ich meinte so:

Delphi-Quellcode:
var
  test_Compo: TLabel;

begin
  test_Compo := TLabel.Create(<<handle>>);

{ ... }

marabu 26. Okt 2005 21:38

Re: Komponente bei einem Handle erzeugen
 
Nee Helmi, so nicht. Der Owner, den du bei TLabel.Create() angibst, ist ein VCL-Konstrukt, welches sich in einer Liste seine Verantwortlichkeiten merkt. Das Handle gehört mehr in die Non-VCL-Welt - auch wenn die VCL dir den Zugriff darauf gewährt.

Grüße vom marabu

Helmi 26. Okt 2005 21:42

Re: Komponente bei einem Handle erzeugen
 
aber gibt es ne Möglichkeit über Umwege?

Eigentlich sollte es ja eine TForm sein, das TLabel war nur ein Beispiel
(was ja eigentlich bei der Frage egal ist)

Der_Unwissende 26. Okt 2005 21:43

Re: Komponente bei einem Handle erzeugen
 
Hi,
ich denke Marabu hat da mal total recht, du wirst wohl non-VCL programmieren müssen. Und da müsste dann die Funktion CreateWindow das sein was du suchst. Die ist eigentlich im Windows SDK ganz gut erklärt. Ansonsten findest du hier sicherlich noch dass ein oder andere Tut. (z.B. von Luckie denke ich) zu non-VCL und wie man da eigene Controlls erstellt.

Gruß Der Unwissende

SirThornberry 26. Okt 2005 22:04

Re: Komponente bei einem Handle erzeugen
 
@Helmi: Wenn du das ganze eigentlich für ein TForm machen willst seh ich den Sinn nicht denn ein TForm hat ein Handle. Der Vergleich mit einem TLabel ist da auch etwas daneben weil ein TLabel nie ein Handel hat da es sich auf die Canvas des Parents zeichnet (man kann dem TLabel zwar auch ein Handle verpassen aber die messages beziehen sich dann nicht auf die darstellung des Labels sondern eines unsichtbaren Fensters)

Helmi 26. Okt 2005 22:11

Re: Komponente bei einem Handle erzeugen
 
dann muss ich mal auspacken:

ich möchte eine TForm an einem SysTray anzeigen lassen.
Ich weiss den Handle des Icons da unten.

Deshalb würd ic hgerne das TForm an den handle anhängen

SirThornberry 26. Okt 2005 22:13

Re: Komponente bei einem Handle erzeugen
 
wie jetzt? Kannst du mal versuchen das etwas genauer zu erklären? Im Moment klingt es so als ob du dein Form im Systray plazieren willst

Helmi 26. Okt 2005 22:20

Re: Komponente bei einem Handle erzeugen
 
ALSO: (*tief Luft hol*)

ich hab ein SysTray mit einem Icon

Ich weiss von dem diesem SysTray das Icon

ich will an dem Icon ein TForm anhängen, sozusagen als InfoBox

Luckie 26. Okt 2005 22:27

Re: Komponente bei einem Handle erzeugen
 
Hir geht es ziemlich gehörig durcheinander. Ein Handle ist nichts weiter als eine eindeutige Kennnummer damit Windows Objekte (hier nicht im OOP Sinne), wie Fenster, Dateien usw. referenzieren kann. Ein Handle ist also ein abstraktes Gebilde an das man nichts dranhängen kann.

xaromz 27. Okt 2005 09:02

Re: Komponente bei einem Handle erzeugen
 
Hallo,

die ganze Idee hört sich zwar etwas komisch an, aber die grundsätzliche Vorgehensweise, um ein WinControl einem anderen Control hinzuzufügen, von dem man nur das Handle kennt, lautet:
Delphi-Quellcode:
Image := TImage.CreateParented(Form1.Handle);
Gruß
xaromz


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