![]() |
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 |
Re: Mainform verschleiern
du sagst einfach vor show modal color = clgrey
|
Re: Mainform verschleiern
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
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 |
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.
|
Re: Mainform verschleiern
Zitat:
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 |
Re: Mainform verschleiern
Zitat:
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. |
Re: Mainform verschleiern
Zitat:
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 |
Re: Mainform verschleiern
|
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 ![]() 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:
Dadurch erreiche ich den Grauschleier. Will ich diesen entfernen, rufe ich nun nur folgendes auf:
Panel1.Align:=alclient;
Image2.Picture.Bitmap:=self.GetFormImage; AlphaBlendRect(Image2.Canvas,panel1.ClientRect,clblack,70); Panel1.Show;
Delphi-Quellcode:
Gruß
Panel1.Hide;
Alfonso |
Re: Mainform verschleiern
Zitat:
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. |
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