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
Hwfa

Registriert seit: 13. Feb 2015
1 Beiträge
 
#1

AW: Android: MessageDlg Logik

  Alt 13. Feb 2015, 06:59
Dieses modal soll ja eigentlich nur weitere Eingaben in den anderen Formularen verhindern und nur in diesem einzigen zulassen. Darum wird bei den Mobil-Plattformen quasi ein Vorhang (Rectangle, Opacity 50%, HitTest True) davorgelegt und dann kommt der Dialog. Am Ende wird der wieder entfernt.
NAT
  Mit Zitat antworten Zitat
eddie11

Registriert seit: 8. Nov 2005
Ort: Zossen bei Berlin
236 Beiträge
 
Delphi XE8 Professional
 
#2

AW: Android: MessageDlg Logik

  Alt 13. Feb 2015, 07:40
Dieses modal soll ja eigentlich nur weitere Eingaben in den anderen Formularen verhindern und nur in diesem einzigen zulassen. Darum wird bei den Mobil-Plattformen quasi ein Vorhang (Rectangle, Opacity 50%, HitTest True) davorgelegt und dann kommt der Dialog. Am Ende wird der wieder entfernt.
Das stimmt, weitere Eingaben werden geblockt - aber die Programmausführung wartet nicht. Wenn nach dem Dialog noch weiterer Code folgt, dann wird dieser ausgeführt ohne auf die Antwort des Dialogs zu warten - jedenfalls ist das bei Android so.
Edgar Leifeld
Liebe Grüße aus Zossen bei Berlin

Die Kontramedüse ist verdrupelt!!!
  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
 
#3

AW: Android: MessageDlg Logik

  Alt 13. Feb 2015, 07:57
Dann programmiere deine Anwendung doch einfach besser lesbar
Delphi-Quellcode:
procedure ConfirmAction( const AText : string; const AProc : TProc );
begin
  MsgDialog(AText,TMsgDlgType.mtConfirmation,[TMsgDlgBtn.mbYes,TMsgDlgBtn.mbNo],TMsgDlgBtn.mbYes,
     procedure(const AResult: TModalResult)
     begin
       if (AResult=mrYes) then
         AProc();
     end);
end;

procedure TForm1.Button6Click( Sender : TObject );
begin
  ConfirmAction( 'Willst du Drucken?', PrintFoo );
end;

procedure TForm1.PrintFoo;
begin
  // Hier der Code zum drucken
end;
Wow, schon wird aus einem ominösen und unleserlichem Button6Click eine dokumentierte Methode. Auf einem Blick sieht man nun, dass hier nach Rückfrage ein Druck ausgelöst wird.

Ja, dass mit diesem komischen Dialog-Gedöns ist richtig ekelig: Man muss sich ja richtig Gedanken machen
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
eddie11

Registriert seit: 8. Nov 2005
Ort: Zossen bei Berlin
236 Beiträge
 
Delphi XE8 Professional
 
#4

AW: Android: MessageDlg Logik

  Alt 13. Feb 2015, 08:18
Dann programmiere deine Anwendung doch einfach besser lesbar

Wow, schon wird aus einem ominösen und unleserlichem Button6Click eine dokumentierte Methode. Auf einem Blick sieht man nun, dass hier nach Rückfrage ein Druck ausgelöst wird.
:
Wow, wer abstrahieren kann ist besser dran!

Üblichweise heißt ein Button bei mir nicht Button16 (manchmal auch Button17 oder ..18 ,), das macht die IDE halt so, wenn man mal schell was ausprobieren will....
Und "willst Du" scheint mir auch nicht unbedingt aussage(frage)kräftig, steht üblicherweise nicht in meinen Dialogboxen. Könnt es vielleicht sein, dass das mal Q&D hingeklickt ist um die Funktionalität auszuprobieren / zu zeigen......?

Aber im Ernst. Wer für Desktop programmiert, der ist gewöhnt, dass "modal" bedeutet, dass die Anwendung erst weiterläuft, wenn das modale Fenster geschlossen wurde,
Darum geht's hier. Nicht um Namenskonventionen oder Programmlesbarkeit.
Edgar Leifeld
Liebe Grüße aus Zossen bei Berlin

Die Kontramedüse ist verdrupelt!!!
  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, 08:37
Es gibt zwei Aussagen, wo ich reflexartig einen Würgereiz bekomme:
  • Das haben wir schon immer so gemacht
  • Das haben wir noch nie gemacht
Was möchte man mir damit mitteilen?

Dass man eine Lobotomie hinter sich hat und darum nicht mehr denken kann?

Und etwas an das man sich gewöhnt hat, muss nicht zwangsläufig richtig sein. Wenn man sich den Code anschaut, der dieses blockierende ShowModal verbricht (anders kann man es nicht beschreiben) und dieses mit dem Konzept einer GUI-Anwendung abgleicht, der versteht dann auch, dass dieses neue Verhalten nun endlich dem entspricht, was das GUI-Konzept vorgegeben hat.

Manchmal schmerzt die Erkenntnis, dass man sich jahrelang auf dem Holzweg befunden hat. Mir egal, ich schlage mir einmal beherzt vor die Stirn, schreie einmal laut "Mann, logisch!" und ab dann übernehme ich das.
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
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Android: MessageDlg Logik

  Alt 13. Feb 2015, 08:39
Wer für Desktop programmiert, der ist gewöhnt, dass "modal" bedeutet, dass die Anwendung erst weiterläuft, wenn das modale Fenster geschlossen wurde
Das ist richtig. Und auf den mobilen Geräten gibt es andere Spielregeln, mit denen man konfrontiert wird. Das ist am Anfang erstmal ein Kulturschock, ohne Zweifel.
Und manchmal muss man dann komplett umdenken - diese Dialoge und der komplett geänderte Ablauf sind ein schönes Beispiel dafür. Die Ausgangsfrage war, die andere diese Thematik behandeln und Ruf hat - wenn auch ein wenig ruppig - einen schönen Weg dafür aufgezeigt, der insbesondere auch ohne Exit auskommt.
Daniel R. Wolf
mit Grüßen aus Hamburg
  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, 08:45
@Daniel

Ist es nicht eher so, dass dieses Konzept schon vom ersten Tag der Programmierung an so hätte laufen müssen? Nein auch ich habe diese "blockierenden" Dialoge eingesetzt, aber war es deswegen "richtig"?
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
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Android: MessageDlg Logik

  Alt 13. Feb 2015, 08:46
Ich würde modale Dialoge nuicht per se als falsch ansehen aber für mobilen Anwendungen sind sie sicherlich weniger geeignet.
Markus Kinzler
  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 12:58 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