![]() |
PaintBox über Komponenten legen
Hallo,
ich erzeuge zur Laufzeit eine PaintBox, die über allen Komponenten, sprich im Vordergrund, auf der Form liegen soll. Zur Laufzeit ist diese noch nicht sichbar. (Visible = false) Wenn sie angezeigt wird, dann liegt sie über allen Komponenten, ausser über "bedienbare" Komponenten, wie Button und CheckBox. Wie bekomm ich die PaintBox auch über den Button und CheckBox angezeigt? Anbei mal etwas Code... erzeugen:
Delphi-Quellcode:
Die Paint-Procedure:
procedure TMainForm.FormCreate(Sender: TObject);
begin //DoubleBuffered setzen MainForm.DoubleBuffered := true; //PaintBox erzeugen PaintBox := TPaintBox.Create(self); with PaintBox do begin //Parent setzen Parent := self; //Position und Größe definieren Left := 0; Top := 0; Height := MainForm.ClientHeight; Width := MainForm.ClientWidth; //nicht anzeigen Visible := false; // OnPaint := OnPaintPaintBox; end;
Delphi-Quellcode:
procedure TMainForm.OnPaintPaintBox(Sender: TObject);
var LogFont : TLogFont; Font_Winkel : TFont; begin with PaintBox.Canvas do begin //Hintergrundfarbe setzen Brush.Color := clGray; //Hintergrund setzen FillRect(ClientRect); //Font definieren Font.Name := 'Arial'; Font.Size := 100; Font.Color := clRed; //Extra-Font erzeugen Font_Winkel := TFont.Create; try //Font an Extra-Font übergeben Font_Winkel.Assign(Font); GetObject(Font_Winkel.Handle, SizeOf(LogFont), @LogFont); LogFont.lfEscapement := 320; LogFont.lfOrientation := 320; SetBkMode(Handle, TRANSPARENT); //Extra-Font an Font übergeben Font_Winkel.Handle := CreateFontIndirect(LogFont); Font.Assign(Font_Winkel); finally //Font löschen und freigeben FreeAndNil(Font_Winkel); end; //Textausgabe TextOut(50, 210, 'Text'); end; end; |
Re: PaintBox über Komponenten legen
Das geht, wenn TPaintBox direkt con TGraphicControl ableitet (was ich vermute), nicht - die Paintbox ist einfach nur eine umrissene Region auf der Form. Wenn du die Box allerdings auf ein Panel packst, sollte es funktionieren.
|
Re: PaintBox über Komponenten legen
Danke!
hab das ganze jetzt auf ein Panel gelegt |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:55 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