![]() |
PageControl durchsichtig?
Hallo zusammen, :hi:
ich habe auf einer Form eine Hintergrundgrafik, ähnlich des grauen Backgrounds hier auf Delphi-Praxis. Um nun mehrere Controls thematisch trennen zu können, setze ich ein PageControl mit 5 TabSheets auf die Form. Die einzelnen Tabs der TabSheets sind ausgeblendet (TabVisible=False). Gibt es eine Möglichkeit die TabSheets für die Hintergrundgrafik durchsichtig zu machen? :gruebel: Eine ähnliche Frage gab es hier schon öfters, es ging nur immer um den Bereich neben den Tabs. Mir geht es um den Bereich im TabSheet selber. Falls es nicht so leicht machbar ist, könnte man es irgendwie mit Panels lösen? Gruss Microschlumpf :coder2: |
Re: PageControl durchsichtig?
Vielleicht die Transparenz etwas hoch setzen?!
|
Re: PageControl durchsichtig?
dann wird ja die ganze form transparent.
am einfachsten wäre es, du würdest auf jedem tab ein image erstellen, das den selben hintergrund wie das formular hat (du kannst es ja dann auch entsprechend verkleinern (schneiden) um nicht unnötig ressourcen zu verbraten). |
Re: PageControl durchsichtig?
Hallo,
Zitat:
Microschlumpf |
Re: PageControl durchsichtig?
Ja, mach einfach ein Image auf die PageControl und setze Align := alClient; Dann kopierts du einfach aus dem Canvas des Hintergrund-Images den Teil raus. Wie es mit der Geschwindigkeit aussieht kann ich dir nicht sagen!
|
Re: PageControl durchsichtig?
Also ich bin gerade mal am Probieren. Es funktioniert echt gut, nur habe ich noch Probleme mit dem Rand vom PageControl, den sieht man leider und ich bekomme den irgendwie nicht weg. :gruebel:
Das ist der Code, den ich verwendet habe...
Delphi-Quellcode:
Image1 ist alClient auf dem Formular, Image2 alClient auf dem entsprechenden TabSheet. Die Position vom TabSheet wird berücksichtigt (Rand muss noch einberechnet werden, wenn man den nicht wegbekommt).
procedure TForm1.Button1Click(Sender: TObject);
var SrcRect, DestRect: TRect; begin Image2.Picture := nil; SrcRect.Left := PageControl1.Left; SrcRect.Top := PageControl1.Top; SrcRect.Right := PageControl1.Left+PageControl1.Width; SrcRect.Bottom := PageControl1.Top+PageControl1.Height; DestRect := Rect(0, 0, PageControl1.Width, PageControl1.Height); Image2.Canvas.CopyRect(DestRect, Image1.Canvas, SrcRect); PageControl1.ActivePage := TabSheet1; TabSheet1.Refresh; end; Ich habe tsFlatButtons gewählt. Gruss Microschlumpf |
Re: PageControl durchsichtig?
Setzt den Border des Controls mal auf bsNone!
|
Re: PageControl durchsichtig?
@ Sebastian
Gibt es denn da eine Bordereigenschaft, die ich auf bsNone setzen kann. Ich habe da nichts gefunden, weder beim PageControl, noch bei den zugehörigen TabSheets. Bei den TabSheets habe ich BorderWidth := 0 gesetzt. :? Gruss Microschlumpf |
Re: PageControl durchsichtig?
Zitat:
|
Re: PageControl durchsichtig?
Zitat:
Style auf tsFlatButtons |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20: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