Delphi-PRAXiS

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 Ein schwebender (Eingabe)Dialog. Womit? (https://www.delphipraxis.net/175698-ein-schwebender-eingabe-dialog-womit.html)

Der schöne Günther 10. Jul 2013 17:29

Ein schwebender (Eingabe)Dialog. Womit?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Die gute VCL. Der Benutzer soll Dinge über seinen normalen Hauptbildschirm drüber eingeblendet bekommen. Beispielsweise ein Dialog zur Manipulation von Werten oder eine Art Benachrichtigungscenter über vorgefallene Störungen. Er hat als Eingabemöglichkeit nur den Touchscreen.

Das angehängte Bild trifft es eigentlich sehr gut.

Wie setze ich so etwas auf der VCL am besten um? Eine neue Form? Ein Panel? Etwas ganz anderes?

Das verdunkeln des Hauptbildschirms wäre optional, aber auch eine tolle Sache. Spontan hätte ich irgendeine transparente Komponente drübergelegt und gehofft, dass es funktioniert. :stupid:

Ich bin mir noch nicht einmal sicher, wie man so etwas nennt. Ich hätte "Popup" gesagt aber unter dem Begriff finde ich hier natürlich andere Dinge.


Ich freue mich auf Meinungen :)

Helmi 10. Jul 2013 17:44

AW: Ein schwebender (Eingabe)Dialog. Womit?
 
Hallo,

wie wärs mit einem grafischen Hint?

Uwe Raabe 10. Jul 2013 18:09

AW: Ein schwebender (Eingabe)Dialog. Womit?
 
Ich würde ein Form nehmen. Wenn der "Pfeil" am unteren Rand relevant ist, kann man das über SetWindowRgn realisieren.

Vielleicht hilft dir dieser Code bei dem abgedunkelten Hintergrund:

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;

Union 10. Jul 2013 18:12

AW: Ein schwebender (Eingabe)Dialog. Womit?
 
Genau, einfach ein nicht-modales Form mit den Erweiterungen wie Uwe schrieb. Wenn Du allerdings die Controls genauso aussehen lassen willst wie bei OyStar, dann wäre dies mal ein sinnvoller Einsatz für fmx und Styles.

Der schöne Günther 10. Jul 2013 18:20

AW: Ein schwebender (Eingabe)Dialog. Womit?
 
Danke bislang :thumb:

Forms wären spontan nicht meine erste Wahl gewesen da die Anwendung gleichzeitig noch im Kiosk-Modus laufen soll, das macht die Sache sicherlich nicht einfacher.

Der Pfeil/Sprechblase wäre wirklich das i-Tüpfelchen, das schaue ich mir mal genauer an. Das Popup vor abgedunkelten Hintergrund funktioniert ja schon super, so einfach kann das sein :-). Danke nochmal.

FireMonkey werde ich mir (obwohl ich es wirklich gerne wollte) vorerst nicht genauer ansehen, dafür fehlt momentan schlichtweg die Zeit :-(


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:53 Uhr.

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