Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Mainform verschleiern (https://www.delphipraxis.net/106678-mainform-verschleiern.html)

Alfonso 14. Jan 2008 23:18


Mainform verschleiern
 
Ich möchte, dass während ein modales Fenster angezeigt wird, das Mainform grau verschleiert wird.

Meine Idee bisher ist: ich speichere in ein TImage das Mainformbild mit Mainform.GetFormImage. Dieses Bild wird verschleiert und über das gesamte Mainform gelegt.

Wenn das der richtige Ansatz ist: Wie verschleiere ich nun das Bild (so ähnlich wie man das jetzt auf vielen Webseiten sieht, wenn man ein popup öffnet).

Gibt es sonst einen anderen Ansatz?

Gruß
Alfonso

Larsi 15. Jan 2008 06:09

Re: Mainform verschleiern
 
du sagst einfach vor show modal color = clgrey

Alfonso 15. Jan 2008 06:35

Re: Mainform verschleiern
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Larsi
du sagst einfach vor show modal color = clgrey

Was soll das denn auswirken? Damit setze ich doch die Farbe der Canvas des Formulars auf grau. Alle Elemente die darauf sind, inkl. andere Icons bleiben in der Originalfarbe.

Anbei ein Test, wie ich es mir vorstelle. Die linke Hälfte ist original, die zweite Hälfte ausgegraut. Ich habe es mit Photoshop gemacht, in dem ich ein graues Rechteck mit einer Deckkraft von 60% rübergelegt habe.

Gruß
Alfonso

mkinzler 15. Jan 2008 06:42

Re: Mainform verschleiern
 
Man könnte links und rechts je einen Panel nehmen, der weiss ist. den eigentlichen Hintergrund der Form dunkel. Durch Erhöhung der Transparenz des Panels würden alle Komponenten dunkler.

Alfonso 15. Jan 2008 07:48

Re: Mainform verschleiern
 
Zitat:

Zitat von mkinzler
Man könnte links und rechts je einen Panel nehmen, der weiss ist. den eigentlichen Hintergrund der Form dunkel. Durch Erhöhung der Transparenz des Panels würden alle Komponenten dunkler.

Wenn du mir jetzt noch sagst, mit welcher Eigenschaft des TPanel ich die Transparenz des Panels festlege ist dann alles klar.
Ein Formular hat die Eigenschaft Alphablend, nicht jedoch ein TPanel.

Übrigens, ich will nicht zwei Hälften machen, sondern alles Grau. Die Hälften sind nur im Beispiel, um zu verdeutlichen was ich will.

Gruß
Alfonso

RavenIV 15. Jan 2008 07:49

Re: Mainform verschleiern
 
Zitat:

Zitat von Alfonso
Ich möchte, dass während ein modales Fenster angezeigt wird, das Mainform grau verschleiert wird.

Das geht aber ganz klar am Windows-Standard vorbei.
Man erkennt ein inaktives Fenster doch daran, dass die Titelzeile eine andere Farbe hat.
Und bei einem modalen Fenster kann man im Hauptfenster dann eh nichts mehr machen.

Alfonso 15. Jan 2008 07:55

Re: Mainform verschleiern
 
Zitat:

Zitat von RavenIV
Das geht aber ganz klar am Windows-Standard vorbei.

Ja, das weis ich! Aber nenne mir ein Programm, dass sich heute am Windows-Standars hält. Nicht mal Microsoft hält sich mit dem neuen Office am Standard (keine Menüs). Viele Programme haben inzwischen Skins, die dem Programm so aussehen lassen, als wären sie nicht von dieser "Windows"-Welt.

Also, warum nicht mal was neues probieren. Im Web hat sich das etabliert, dass man bei Popups den Hintergrund ausgraut. Warum den nicht auch bei Programme?
Gruß
Alfonso

mkinzler 15. Jan 2008 08:00

Re: Mainform verschleiern
 
http://www.delphipraxis.net/internal...t.php?p=216731

Alfonso 15. Jan 2008 08:31

Re: Mainform verschleiern
 
So, jetzt bin ich selber fündig geworden und will die Antwort nicht vorenthalten, falls jemand die gleiche Lösung sucht.

Ich habe in meinem Programm die Funktion "Alphablendrect" aus DP aufgenommen.
Dann habe ich ein kleines unsichtbares Panel auf mein Mainform gesetzt, auf dem ein TImage mit align:=alclient platziert ist (damit ich eine Canvas habe).
Wenn ich den Schleier haben will, rufe ich folgendes auf:
Delphi-Quellcode:
 Panel1.Align:=alclient;
 Image2.Picture.Bitmap:=self.GetFormImage;
 AlphaBlendRect(Image2.Canvas,panel1.ClientRect,clblack,70);
 Panel1.Show;
Dadurch erreiche ich den Grauschleier. Will ich diesen entfernen, rufe ich nun nur folgendes auf:
Delphi-Quellcode:
Panel1.Hide;
Gruß
Alfonso

RavenIV 15. Jan 2008 08:38

Re: Mainform verschleiern
 
Zitat:

Zitat von Alfonso
Zitat:

Zitat von RavenIV
Das geht aber ganz klar am Windows-Standard vorbei.

Ja, das weis ich! Aber nenne mir ein Programm, dass sich heute am Windows-Standars hält. Nicht mal Microsoft hält sich mit dem neuen Office am Standard (keine Menüs). Viele Programme haben inzwischen Skins, die dem Programm so aussehen lassen, als wären sie nicht von dieser "Windows"-Welt.

Das neue Office hält sich an den Vista-Standard.
Da gibt es die sogenannten "Ribbons".

Und muss man denn alles schlechte von anderen Programmen nachmachen?

Software, die bei uns entwickelt wird, hält sich an den Windows-Standard.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:38 Uhr.
Seite 1 von 2  1 2      

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