Retrieve the non-transparent label with XPMan

Spread the love

Did you ever try to put the XPMan on a form which uses the color
property of a TLabel ?
Have you noticed that the background color disappear with XPMan ?

It’s because XPMan sets the Transparent properties to TRUE.
And because this is done before the OnCreate event, we cannot
retrieve which one was having the Transparent value to FALSE.

The tip I’ll describe here is that simple :
if you want to keep the background color property of some labels
(but not all) while using XPMan, put the value “1” to the TAG
property of the label which may not be transparent.

Then, put this code inside the create event of your form :

procedure TForm1.FormCreate(Sender: TObject);
var
  Cpt: Integer;
begin
  for Cpt := 0 to Self.ComponentCount - 1 do
    if (Self.Components[Cpt] is TLabel) then
      with (Self.Components[Cpt] as TLabel) do
        Transparent := not (Tag = 1);
end;