Einzelnen Beitrag anzeigen

Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#3

Re: Label über Panel legen...

  Alt 30. Okt 2007, 09:15
Nein, das geht tatsächlich nicht.

Hintergrund: Alles, was von TWinControl abgeleitet ist, ist im Sinne von Windows ein eigenes Fenster. Dazu gehören insbesondere Panels, aber auch Buttons etc. TLabel ist kein TWinControl, und damit auch kein eigenes Fenster.

Ein Fenster reagiert ganz für sich allein auf Nachrichten von Windows und zeichnet sich selber. Liegt ein Fenster auf einem anderen (Button oder Panel auf einem Form), so zeichnet sich dieses darüberliegende Fenster vollkommen unabhängig von dem darunterliegenden. Ein Label zeichnet nur sich selber auf das Fenster, auf dem es liegt.

Ergo: Liegt ein Panel über einem Form mit einem Label, so wird das unten liegende Form (inkl. dem Label) zwangsläufig überzeichnet.

Alternative Lösung: Nimm anstelle des Labels ein weiteres Panel, stelle die Ränder so ein, dass man nicht sieht das es ein Panel ist, lege es nach oben und gebe dem Panel eine Caption. => Home-made Label als TWinControl. Nachteil: Dieses Panel überzeichnet dann logischerweise im überlappenden Bereich den Rahmen des darunterliegenden Panels, welches eigentlich oben sein sollte...
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat