AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Label über Panel legen...

Ein Thema von bingo72 · begonnen am 30. Okt 2007 · letzter Beitrag vom 30. Okt 2007
Antwort Antwort
bingo72

Registriert seit: 18. Aug 2006
Ort: Österreich
180 Beiträge
 
Delphi 5 Professional
 
#1

Label über Panel legen...

  Alt 30. Okt 2007, 09:08
Hallo Leute!!

Ich kann es nicht glauben, daß es wirklich keinen Weg gibt ein stinknormales Label über ein Panel zu legen.
Gleich vorweg...das Panel muß relativ klein gehalten werden, sodaß der Label absichtlich über das Panel ragt (also fällt die Option den Label ins Panel zu kopieren weg!!).

Ich habe gelesen, daß der Grund an dem Handle liegt, welches ein Label nicht hat und somit automatisch im Hintergrund gezeichnet wird, wenn es nicht auf dem Panel selbst liegt!! (Soweit ich es verstanden habe...)

Ich denke, daß mein Fall doch sicher nichts Aussergewöhnliches ist oder??

Bitte um Tipps die mich weiterbringen!!

LG
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#2

Re: Label über Panel legen...

  Alt 30. Okt 2007, 09:10
a) Wieso willst du das Label über das Panel legen? ^^
b) Nimm TStaticText
Chris
  Mit Zitat antworten Zitat
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
bingo72

Registriert seit: 18. Aug 2006
Ort: Österreich
180 Beiträge
 
Delphi 5 Professional
 
#4

Re: Label über Panel legen...

  Alt 30. Okt 2007, 09:15
Hallo!!

ad A) Hintergrund ist folgender....das Panel dient als Vorschau für den Punkt 'Seite einrichten'...je nachdem welche Breite bzw. Höhe der User eingibt, verändere ich die Maße des Panels.
Sollte der User ungültige Werte eingeben, soll ein 'transparenter Label' erscheinen, der über dem Panel liegt und ihn auf 'ungültige Eingaben' hinweisen.

ad B) StaticText hab ich auch schon probiert, nur kann man den Hintergrund des Labels nicht transparent machen. Wenn Text über das Panel hinausgeht, hat Label in diesem Fall eine Hintergrundfarbe, was nicht schön aussieht!!
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Label über Panel legen...

  Alt 30. Okt 2007, 09:18
tja, das ist eben der kompromiss. Entweder Transparenz oder ein eigenständiges Fenster im Sinne von Windows. Aber vielleicht ist auch deine Panellösung ungünstig. Warum überhaupt ein Panel? Warum zeichnest du es nicht selbst auf die Canvas statt ein panel nur zur Anzeige der Größe zu verwenden?
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
bingo72

Registriert seit: 18. Aug 2006
Ort: Österreich
180 Beiträge
 
Delphi 5 Professional
 
#6

Re: Label über Panel legen...

  Alt 30. Okt 2007, 09:20
Guter Ansatz!! Dem werd ich mal nachgehen (müssen!!), weil ich so wirklich nicht weiterkomme...ausserdem eine gute Übung im Canvas-Zeichnen!!
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#7

Re: Label über Panel legen...

  Alt 30. Okt 2007, 09:20
Zitat von bingo72:
Hallo!!

ad A) Hintergrund ist folgender....das Panel dient als Vorschau für den Punkt 'Seite einrichten'...je nachdem welche Breite bzw. Höhe der User eingibt, verändere ich die Maße des Panels.
Sollte der User ungültige Werte eingeben, soll ein 'transparenter Label' erscheinen, der über dem Panel liegt und ihn auf 'ungültige Eingaben' hinweisen.

ad B) StaticText hab ich auch schon probiert, nur kann man den Hintergrund des Labels nicht transparent machen. Wenn Text über das Panel hinausgeht, hat Label in diesem Fall eine Hintergrundfarbe, was nicht schön aussieht!!
Wäre da eine Dialogbox nicht einfacher? ...

Also wird das Panel noch groß genug, als das du den Text darauf darstellen kannst? Dann könntest du ggf. doch das Label auf das Panel setzen ...
Chris
  Mit Zitat antworten Zitat
bingo72

Registriert seit: 18. Aug 2006
Ort: Österreich
180 Beiträge
 
Delphi 5 Professional
 
#8

Re: Label über Panel legen...

  Alt 30. Okt 2007, 09:30
Löse es über normale Messageboxen!! Problem gelöst...
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#9

Re: Label über Panel legen...

  Alt 30. Okt 2007, 09:35
Zitat von bingo72:
Löse es über normale Messageboxen!! Problem gelöst...
Sag ich doch
Chris
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:11 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