Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi PageControl durchsichtig? (https://www.delphipraxis.net/63139-pagecontrol-durchsichtig.html)

Microschlumpf 14. Feb 2006 13:27


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:

Sebastian R. 14. Feb 2006 13:31

Re: PageControl durchsichtig?
 
Vielleicht die Transparenz etwas hoch setzen?!

dahead 14. Feb 2006 13:44

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).

Microschlumpf 14. Feb 2006 13:51

Re: PageControl durchsichtig?
 
Hallo,

Zitat:

Zitat von dahead
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).

hmmm, könnte man dann auch irgendwie den Teil der Grafik auf dem Formular, welcher hinter dem TabSheet liegt über Canvas in das TabSheet kopieren?

Microschlumpf

Sebastian R. 14. Feb 2006 13:53

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!

Microschlumpf 14. Feb 2006 21:12

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:
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;
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).
Ich habe tsFlatButtons gewählt.

Gruss
Microschlumpf

Sebastian R. 15. Feb 2006 07:42

Re: PageControl durchsichtig?
 
Setzt den Border des Controls mal auf bsNone!

Microschlumpf 15. Feb 2006 07:59

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

Sebastian R. 15. Feb 2006 08:31

Re: PageControl durchsichtig?
 
Zitat:

Zitat von Microschlumpf
@ 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

Müsste es eigentlich geben. :gruebel:

sh17 15. Feb 2006 09:52

Re: PageControl durchsichtig?
 
Zitat:

Zitat von Sebastian R.
Setzt den Border des Controls mal auf bsNone!

Du meintest wohl

Style auf tsFlatButtons


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:34 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz