![]() |
Lightbox-Effekt für Form
Ich möchte gerne in einem kleinen Dateimanager für Bilder ein Vorschau anbieten, wie man sie von Webseiten kennt. Dabei soll der Hauptbereich des Formulars (ohne Menüleiste) abgedunkelt werden und zentral das Bild angezeigt werden. Bei Webseiten läuft das afaik unter dem Namen "Lightbox". Wie würdet ihr einen solchen Effekt in Delphi umsetzen?
Meine Versuche bisher: :arrow: Ein halbtransparentes PNG in einem TImage: Klappt nicht, weil TImage kein echtes Fenster und hinter anderen Komponenten verschwindet :arrow: Das ganze mit TImage32 von Graphics32: Klappt nicht. TImage32 bleibt zwar im Vordergrund, ist aber selbst nicht durchsichtig. |
Re: Lightbox-Effekt für Form
Hi,
wie wäre es mit Alpha Blend? - Auf eine Form und die andere Form dann im Vordergrund anzeigen. Viele Grüße ... // Edit - kann man in einer Schleife auch sehr schön stufenweise machen |
Re: Lightbox-Effekt für Form
Liste der Anhänge anzeigen (Anzahl: 2)
Hi,
ich hab das mal für modale Fenster gemacht, d.h. wenn ein modales Fenster geöffnet wird, legt sich ein halbtransparentes graues Formular zwischen Hauptfenster und modales Fenster. Den Quellcode (Demoexe) hab ich mal in den Anhang gepackt, vielleicht hilft dir das weiter. Gruß, Matthias |
Re: Lightbox-Effekt für Form
Ich habe dafür mal folgende Funktion geschrieben:
Delphi-Quellcode:
function ShowModalDimmed(Form: TForm; Centered: Boolean = true): TModalResult;
var Back: TForm; begin Back := TForm.Create(nil); try Back.Position := poDesigned; Back.BorderStyle := bsNone; Back.AlphaBlend := true; Back.AlphaBlendValue := 192; Back.Color := clBlack; Back.SetBounds(0, 0, Screen.Width, Screen.Height); Back.Show; if Centered then begin Form.Left := (Back.ClientWidth - Form.Width) div 2; Form.Top := (Back.ClientHeight - Form.Height) div 2; end; result := Form.ShowModal; finally Back.Free; end; end; |
Re: Lightbox-Effekt für Form
Huhu,
genau sowas brauchte ich mal für die aufrufende Form, nicht den ganzen Desktop. Vielleicht kann es jemand gebrauchen:
Delphi-Quellcode:
function ShowModalDimmed(Form, ParentForm: TForm): TModalResult;
var Back: TForm; i: Byte; begin Back := TForm.Create(nil); try Back.Position := ParentForm.Position; Back.BorderStyle := ParentForm.BorderStyle; Back.BorderIcons := []; Back.AlphaBlend := true; Back.AlphaBlendValue := 0; Back.Color := clBlack; with ParentForm do Back.SetBounds(Left, Top, Width, Height); Back.Show; for i := 1 to 185 do begin Back.AlphaBlendValue := i; Sleep(2) end; Form.Left := ParentForm.left + ((ParentForm.Width - Form.Width) div 2); Form.Top := ParentForm.Top + ((ParentForm.Height - Form.height) div 2); Result := Form.ShowModal finally Back.Free; ParentForm.BringToFront end end; |
AW: Lightbox-Effekt für Form
Hallo
Ich möchte dieses veraltete Thema noch mal eben aufgreifen, da ich das hier beschriebene gerade benötige. Kann mir evt jemand sagen wie und mit welchen Argumenten die Funktion aufgerufen werden muß? Ich will die "LightBox" Effect als Loading Anzeige nutzen. Wenn also geladen wird, soll sich der "Fenster-Bereich" dimmen und zentral ein Loading-Image angezeigt werden. Vielen Dank |
AW: Lightbox-Effekt für Form
Welche Version denn? Bei der von Uwe gibst Du lediglich das Formular an, das Du anzeigen möchtest, bei der von cris zusätzlich noch das abzudunkelnde dahinterliegende Formular.
|
AW: Lightbox-Effekt für Form
Hallo
Was meinst du mit Version? Das heisst also wenn ich im aktuellen Fenster einen Loading-Bereich simulieren will geb ich einfach als Übergabe Form1 (z.B.) ? lg |
AW: Lightbox-Effekt für Form
Ich meinte, welche Funktion Du denn verwendest, es wurden ja verschiedene gepostet.
|
AW: Lightbox-Effekt für Form
ah ok. Ich bin an der von Chris da ich den Dimmbereich nur im aktuellen Fenster haben will und nicht über den ganzen Desktop.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:10 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 by Thomas Breitkreuz