![]() |
TStaticText.Transparent funktioniert nicht?
Hallo,
ich versuche ein TStaticText auf meiner Form zu platzieren, bei dem der Hintergrund transparent ist. Die Hilfe hat mir dafür die Eigenschaft Transparent angeboten: Zitat:
Woran kann das liegen? Gruß Malte |
Re: TStaticText.Transparent funktioniert nicht?
Hast du die Hintergrundfarbe mit .TransparentColor ausmaskiert?
|
Re: TStaticText.Transparent funktioniert nicht?
Zitat:
Gruß Malte |
Re: TStaticText.Transparent funktioniert nicht?
:oops: Stimmt.
|
Re: TStaticText.Transparent funktioniert nicht?
Habe mal verschiedene StaticText-Kompos aus verschiedenen Komponentensammlungen ausprobiert. Keine Einzige unterstützt Transparenz richtig.
|
Re: TStaticText.Transparent funktioniert nicht?
Hi,
Ich meine das liegt daran, dass TStaticText ja ein Handle hat (also Windows-Komponente) und Komponenten mit Handle immer über Komponenten ohne Handle gezeichnet werden (wie TLabel, TGraphicControl und Konsorten)... Das könnte damit evtl. zusammenhängen. mfG mirage228 |
Re: TStaticText.Transparent funktioniert nicht?
Zitat:
Gruß Malte PS: seh gerade: bin nicht alleine mit der Eingebung... |
Re: TStaticText.Transparent funktioniert nicht?
Nur zur Info: es hat eigentlich nichts damit zu tun, dass das Fenster ein Handle hat (also ein richtiges API-Fenster ist) - andere "richtige" Fenster können auch transparent sein.
Die Implementierung in der VCL sieht nicht sonderlich gut aus. Es funktioniert offenbar nur, wenn ein Manifest eingebunden wird, also Theming für die Anwendung aktiviert wird. |
AW: TStaticText.Transparent funktioniert nicht?
Nur für den Fall, das sich nochmal jemand hierhin verirrt, transparent funktioniert nur,
wenn man das darunterliegende Control zum Parent des TStaticText macht. PS. Funktioniert auch bei TLabel unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.StdCtrls, Vcl.ComCtrls; type TForm1 = class(TForm) Timer1: TTimer; ProgressBar1: TProgressBar; procedure Timer1Timer(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private-Deklarationen } FStaticText1: TStaticText; public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin FStaticText1 := TStaticText.Create(Self); with FStaticText1 do begin Name := 'StaticText1'; Parent := ProgressBar1; Left := ProgressBar1.Width div 2; Top := 1; Width := 59; Height := 17; ParentCustomHint := False; BiDiMode := bdLeftToRight; Caption := ''; Color := clBtnFace; ParentBiDiMode := False; ParentColor := False; TabOrder := 1; Transparent := true; end; end; procedure TForm1.Timer1Timer(Sender: TObject); begin ProgressBar1.StepIt; FStaticText1.Caption := IntToStr(ProgressBar1.Position); end; end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz