AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi MultiView als NavigationPane während Dialoganzeige in Hintergrund halten
Thema durchsuchen
Ansicht
Themen-Optionen

MultiView als NavigationPane während Dialoganzeige in Hintergrund halten

Offene Frage von "Rollo62"
Ein Thema von Guido R. · begonnen am 20. Feb 2018 · letzter Beitrag vom 21. Feb 2018
Antwort Antwort
Benutzerbild von Guido R.
Guido R.
Online

Registriert seit: 5. Jul 2007
137 Beiträge
 
Delphi 11 Alexandria
 
#1

MultiView als NavigationPane während Dialoganzeige in Hintergrund halten

  Alt 20. Feb 2018, 16:23
Hallo !

In einer Android-App setze ich die MultiView im Modus NavigationPane ein.
Bei einer Nachfrage innerhalb des Programms zeige ich einen "Dialog" an, indem ich ein Layout (mit halbtransparenten Hintergrund-Rectangle, Buttons etc.) auf die Form lege, Align auf Client setze und mit BringToFront die eigentlichen Programmcontrols überlagern lasse.
Dies klappt wunderbar beim ersten Aufruf. Wenn ich dann aber, z.B. durch drehen des Geräts ein Resize auslöse, setzt sich die MultiView vor das Dialog-Layout. BringToFront (auf das Layout) bzw. SendToBack (auf MultiView) reagieren da nicht.
Die Größe des Layouts wird offenbar korrekt gesetzt, da Teile davon unter der MultiView verschwinden. Blöd an der Situation ist insbes. dass dadurch die Schaltflächen der MultiView anklickbar sind.

Hat jmd. eine Idee, wie man die MV im Hintergrund halten kann ?

LLAP
Guido R.

Geändert von Guido R. (20. Feb 2018 um 16:43 Uhr)
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
3.908 Beiträge
 
Delphi 12 Athens
 
#2

AW: MultiView als NavigationPane während Dialoganzeige in Hintergrund halten

  Alt 20. Feb 2018, 17:54
Nimm Content statt Client, der legt sich über Alles.
Lege dir statt BringToFront lieber ein geschachteltes Layout an so das dein CoverLayout immer über dem MultiView und dem Rest des Views liegt.

Dann sollte das Visible := True; für das Layout reichen.

BringToFront, etc. bringt bei FMX nicht so viel, besser die Z-Order direkt in der Layout-Struktur richtig anlegen.

Edit:
Wenn du native Controls benutzt funktioniert das mit der Z-Order aber nicht immer.
Das geht nur wenn FMX alle Controls selber zeichen kann, also bei Styled Controls.

Rollo

Geändert von Rollo62 (20. Feb 2018 um 17:57 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Guido R.
Guido R.
Online

Registriert seit: 5. Jul 2007
137 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: MultiView als NavigationPane während Dialoganzeige in Hintergrund halten

  Alt 20. Feb 2018, 19:23
Content statt Client hat hier nichts gebracht...

...allerdings habe ich in einem kleinen Testprogramm mal die MultiView und das Panel (TargetControl der MV) in ein eigenes Layout gepackt.
Damit funktioniert's dann (zumindest im Testprogramm). Ich probiere es morgen mal an der eigentlichen App...

Danke für die Idee !
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
3.908 Beiträge
 
Delphi 12 Athens
 
#4

AW: MultiView als NavigationPane während Dialoganzeige in Hintergrund halten

  Alt 21. Feb 2018, 06:12
So meinte ich das.
Man kann Alle Komponenten schön verschachteln, und damit die Z-Order festlegen.

Content bringt was wenn mehrere Komponenten nebeneinanderliegen, dann legt sich Content über Alles, selbst wenn andere Komponenten mit Client+Top+Bottom würde sich entsprechend den Platz aufteilen.
Das funktioniert aber nicht immer bei nativen Komponenten, WebBrowser, etc.

Rollo
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:22 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