Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Wieso werden Labels nicht angezeigt wenn Panel im Frame ist? (https://www.delphipraxis.net/121528-wieso-werden-labels-nicht-angezeigt-wenn-panel-im-frame-ist.html)

Popov 29. Sep 2008 20:54


Wieso werden Labels nicht angezeigt wenn Panel im Frame ist?
 
Wenn ich Labels im Framefenster habe und ein Panel dazulege, werden im Framefenster die Labels nicht angezeigt.

Aufgefallen ist mir das in D7. Ist das Problem bekannt? Kann man da was machen?

mkinzler 29. Sep 2008 20:57

Re: Wieso werden Labels nicht angezeigt wenn Panel im Frame
 
Ist der Panel Parent der Labels?

alzaimar 29. Sep 2008 21:13

Re: Wieso werden Labels nicht angezeigt wenn Panel im Frame
 
Vielleicht kannst Du eine kleine Demo hier einstellen?

jbg 29. Sep 2008 21:38

Re: Wieso werden Labels nicht angezeigt wenn Panel im Frame
 
Zitat:

Zitat von Popov
Aufgefallen ist mir das in D7. Ist das Problem bekannt? Kann man da was machen?

Lass mich raten: Du hast Windows Vista.
Die VCL umgeht das Problem ab Delphi 2006.

Popov 29. Sep 2008 21:54

Re: Wieso werden Labels nicht angezeigt wenn Panel im Frame
 
Liste der Anhänge anzeigen (Anzahl: 1)
Nein, hab XP, aber bei der Erstellung der Demo ist mir etwas aufgefallen. Das Problem tritt nur auf wenn man die XPManifest Komponente einfügt.

Anbei eine kleine Demo. Wenn man sie startet, sollten keine Labels sichtbar sein. Nachdem man das Formular vergrößert oder verkleinert, werden sie wieder sichtbar.

squetk 30. Sep 2008 05:01

Re: Wieso werden Labels nicht angezeigt wenn Panel im Frame
 
Es müsste helfen, statt TLabel TStaticText zu verwenden.

Relicted 30. Sep 2008 06:58

Re: Wieso werden Labels nicht angezeigt wenn Panel im Frame
 
Das Problem kenne ich. Bei mir hat der Trick mit TStaticText nur teilweise geholfen. Ich hatte auch noch weiterhin diese Probleme.
Die Lösung für mich war: Frame raus, Form rein! Ich habe seitdem einen Hass gegen Frames und verwende sie daher gar nicht mehr. Ich nehme lieber ein Formular setze den Boarderstyle auf none und gebe als Parent ein Panel an. Damit waren alle Probleme gelöst :-)

Gruß
Reli

jbg 30. Sep 2008 08:53

Re: Wieso werden Labels nicht angezeigt wenn Panel im Frame
 
Das hier sollte abhelfen. Einfach alle Frames von TFrameBase ableiten und fertig
Delphi-Quellcode:
type
  TFrameBase = class(TFrame)
  protected
    procedure PaintWindow(DC: HDC); override;
  end;

procedure TFrameBase.PaintWindow(DC: HDC);
begin
  // nichts machen
end;
Ab Delphi 2006 ist das nicht mehr notwendig.

squetk 30. Sep 2008 21:44

Re: Wieso werden Labels nicht angezeigt wenn Panel im Frame
 
Jetzt wäre aber noch sehr interessant, warum dieser Kniff hilft?


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