![]() |
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>>); { ... } |
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 |
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) |
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 |
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)
|
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 |
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
|
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 |
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.
|
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:
Gruß
Image := TImage.CreateParented(Form1.Handle);
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