Results 1 to 2 of 2

Thread: Label kleur na transparent = True / False

  1. #1

    Label kleur na transparent = True / False

    Hallo allemaal,

    Ik zet op een Form een label en stel de kleur in op bv. Geel. Wordt keurig weergegeven op het Form. Nu zet ik Transparent:=True en daarna weer op False. Dan wordt de kleur niet Geel maar Zwart. Ik vermoed dat het een fout in Lazarus is maar mogelijk is er ook een andere oplossing.
    (Geld ook in Runtime).

    Met een vriendelijke groet, Frans

  2. #2
    Senior Member
    Join Date
    May 2011
    Location
    Oisterwijk
    Posts
    468
    Quote Originally Posted by Dubbeld View Post
    Ik zet op een Form een label en stel de kleur in op bv. Geel. Wordt keurig weergegeven op het Form. Nu zet ik Transparent:=True en daarna weer op False. Dan wordt de kleur niet Geel maar Zwart.
    Zoiets kan komen door ParentColor (of ParentBackground bij andere componenten) misschien.
    http://lazarus-ccr.sourceforge.net/d...ls/tlabel.html
    Als je Color set, dan wordt ParentColor False.
    Ik kan me best inbeelden dat Color ook geset wordt door Transparant.

    Laten we eens naar de implementatie van TLabel.Transparent in de LCL kijken..

    De TLabel in file stdctrls.pp derived van TCustomLabel welke wordt geinclude uit file customlabel.inc, en de property setter doet dit:
    pascal Code:
    1. procedure TCustomLabel.SetTransparent(NewTransparent: boolean);
    2. begin
    3.   if Transparent = NewTransparent then
    4.     exit;
    5.   if NewTransparent then
    6.     Color := clNone
    7.   else
    8.   if Color = clNone then
    9.     Color := clBackground;
    10. end;
    Zo te zien wordt de Color property dus altijd naar clBackground gezet. En deze staat in graphics.pp gedefineerd als:
    pascal Code:
    1. const clBackground = (SYS_COLOR_BASE or COLOR_BACKGROUND);
    En dat verschilt dus per systeem als ik die constante naam mag geloven, en blijkt dus op zwart uit te komen.

    Het is dus by design; want de Transparent property zet Color := clNone en overschrijft je geel waarde.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •