AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Android: MessageDlg Logik

Offene Frage von "Daniel"
Ein Thema von amigage · begonnen am 25. Jan 2015 · letzter Beitrag vom 14. Feb 2015
Antwort Antwort
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

AW: Android: MessageDlg Logik

  Alt 13. Feb 2015, 09:45
@Daniel

Den Begriff falsch habe ich (hoffentlich) in diesem Zusammenhang auch bewusst vermieden, denn es hat ja funktioniert. Und es war den Entwicklern von diesem ShowModal ja auch bewusst, denn dort wurde ja ganz bewusst mit Application.ProcessMessages gearbeitet und das wo jeder weiß, dass das Vorkommen von Application.ProcessMessages ein Design-Fehler ist.

Es wird funktionieren aber eben nicht richtig sein, aber eben auch nicht falsch.

Es ist nicht tragisch Application.ProcessMessages zu verwenden, wenn man sich des Workaround-Charakters dieses Ansatzes bewusst ist, der dann aus Zeitgründen oder aus (noch) fehlendem Know-How (wie denn sonst) bewusst gewählt wird. Wichtig ist die Erkenntnis, man ist dort eben noch nicht fertig und es auf die ToDo-Liste schreibt.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
greenmile

Registriert seit: 17. Apr 2003
1.107 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Android: MessageDlg Logik

  Alt 13. Feb 2015, 11:44
Also sorry, modale Messageboxen machen in meinen Augen fast immer Sinn, weil man zu 99% auf etwas wartet, was im Anschluss gemacht wird, ansonsten habe ich ja wieder eine weitere Prozedure, die ich ohne diesen Quatsch nicht hätte. In XE6 (oder XE5?) ging es doch auch. Es jetzt aber so kompliziert zu machen finde ich ekelig. Und fast jeder wird sich eine Funktion wie diese zusammenpfuschen, was ja eigentlich nicht im Sinne des Erfinders ist.

@Sir: Nichts für ungut, aber man kann sich alles neue auch einfach schön reden. Ist ja wie beim Mac/iPhone: Das macht Sinn, der Hersteller hat sich schon was dabei gedacht, worauf Du halt nicht kommst. Das hat nichts mit "War immer so" zu tun, sondern "Ich möchte eine Aufgabe möglichst schnell, einfach und effektiv erledigen."

Code:

var MsgDlgResult: Integer;

function MessageDlg(const Msg: string; DlgType: TMsgDlgType;
  Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer;
begin
  MsgDlgResult := -1;
  FMX.Dialogs.MessageDlg(Msg, DlgType, Buttons, HelpCtx,
            procedure(const AResult: TModalResult)
            begin
              MsgDlgResult:= AResult;
            end
          );
  while MsgDlgResult<0 do Delay(10);
  Result := MsgDlgResult;
end;

Geändert von greenmile (13. Feb 2015 um 11:47 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
669 Beiträge
 
#3

AW: Android: MessageDlg Logik

  Alt 13. Feb 2015, 13:27
In XE6 (oder XE5?) ging es doch auch.
Ja, aber:

Wenn du während des Anzeigens eines solchen Dialoges in eine andere App und zurück gewechselt bist, dann war Schluss mit Lustig...
  Mit Zitat antworten Zitat
greenmile

Registriert seit: 17. Apr 2003
1.107 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Android: MessageDlg Logik

  Alt 13. Feb 2015, 13:32
Da hatten die auch noch ganz andere Probleme. Naja, sei es wie es ist: MessageDlg's sind nicht mehr Modal, damit müssen wir leben. Hoffentlich bleibt diese Eigenschaft nur in FMX und kommt nicht in die Windows oder Mac Welt.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Android: MessageDlg Logik

  Alt 13. Feb 2015, 13:46
Die Dialoge sind immer noch modal aber nicht mehr blockierend!
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#6

AW: Android: MessageDlg Logik

  Alt 13. Feb 2015, 13:58
Die Dialoge sind immer noch modal aber nicht mehr blockierend!
Aber was ist denn da der Unterschied? Ich dachte das blockieren wäre das modale?

Code:
Modale Dialoge sperren den Rest der Anwendung, solange der Dialog angezeigt wird.
Nichtmodale Dialoge erlauben auch Eingaben außerhalb des Dialogs.
aus Wikipedia
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: Android: MessageDlg Logik

  Alt 13. Feb 2015, 14:04
Die Dialoge sind immer noch modal aber nicht mehr blockierend!
Aber was ist denn da der Unterschied? Ich dachte das blockieren wäre das modale?

Code:
Modale Dialoge sperren den Rest der Anwendung, solange der Dialog angezeigt wird.
Nichtmodale Dialoge erlauben auch Eingaben außerhalb des Dialogs.
aus Wikipedia
Na dann versuche doch mal mit dem neuen nicht blockierendem Dialog in der Anwendung weiter zu arbeiten. Muss ja nach deinem Verständnis gehen.

Geht aber nicht, denn der Dialog ist modal und sperrt den Rest, aber er blockiert die Codeausführung nicht.

Vorher war der Dialog modal und blockierend, jetzt nur noch modal.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  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 22:01 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