Entwickler-Ecke

Windows API - Label in anderes Programm erstellen ;)


Savage - Mi 01.01.03 18:43
Titel: Label in anderes Programm erstellen ;)
Hi,

folgendes Problem: Ich will versuchen ein Label in ein anderes Programm (dessen Handle ich kenne) zu erstellen.

Mit Editfeldern funktioniert es relativ einfach, aber ich bekomme es einfach bei Labels nicht hin:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
var tl : Tedit;
begin
 tl := Tedit.Create(self);

 tl.Width := 700;
 tl.text := 'Dies ist ein Test';
 tl.Font.Size := 76;

 tl.ParentWindow := fensterhandle;   //Fensterhandle vom fremden Progi
 tl.name := 'newedit';
 tl.Top := 20;
 tl.Left := 20;
end;


Das Problem ist, dass es beim Label kein Parentwindow gibt, sondern nur Parent. Hat jemand eine Idee, wie ich das Label mit dem Handle ins Fremde Fenster bekomme?

MfG
Savage


Anonymous - Mi 01.01.03 18:52

Ist zwar keine Antwort, aber eine Idee. Du könntest wie gehabt Edit übergeben und diesem die passenden Werte für ParentColor, Ctl3D, BorderStyle und ReadOnly geben. Sieht dann fast wie Label aus.


Savage - Mi 01.01.03 19:17

Ist eine Idee, Problem ist bloß, dass ich nicht nur Labels erstellen will, sondern auch später ein par Images mit einbringen will.

Die Lösung muss bei Parent liegen.
Will man ein Label in der eingenen Form erstellen, nimmt man ja: label.parent := self; wobei self für z.B.: Form1 steht.

Bin weiter offen für Vorschläge :)

Savage


Delete - Mi 01.01.03 20:59

Versuch es mal mit einem TStaticText.


Savage - Mi 01.01.03 21:26

mir ist aufgefallen, dass ich Komponenten, die die Eigenschaft Transparent beinhalten bis jetzt nicht in anderen Fenster einfügen kann, weil es da kein ParentWindow gibt :(

Also z.B.: bei TLabel, TImage, TSpeedButton,...

Hat jemand noch ne Idee, wie ich diese Komponeten in andere Fenster, von denen ich das Handel hab, einfügen kann?

Savage


Delete - Mi 01.01.03 21:40

Die sind alle von TGraphicControl abgeleitet und haben, im Gegensatz zu den Komponenten, die von TWinControl abgeleitet sind, kein Handle.


Murmel - Mo 27.01.03 15:05
Titel: lustig, aber das handle ändert sich doch nach neustart...
also das ist schon lustig, doch das handle ändert sich doch nach nem neustart oder nach einer neuen anmeldung, also wie soll man das am besten anstellen?


Delete - Mo 27.01.03 15:23

Du mußt dir halt bene jedesmal das Handle suchen Stcihworte wären: FindWindow, FindWindowEx, EnumWindows, EnumChildWindows.


Murmel - Mo 27.01.03 15:35
Titel: hab ich mir gedacht, doch...
ich möchte einen text in das startmenü, z.B. direkt neben dem Usernamen (WinXP) anzeigen lassen, nun heißt das ding "Startmenu", so denke ich findwindow "Startmenu" zeige handle von dem Ding, oder?

Gruß Murmel aus murmelhausen...


Murmel - Mo 27.01.03 15:41
Titel: und noch was...
das ganze funktionuckelt net mit nem label, wäre allerdings schon schöner, gelle, wenn man so mitten in einem prog einen text erscheinen lassen könnte, muß doch irgendwie humpeln oder?

Nochmals Gruß Murmel