Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   ComboBox IOS und Android mit Rückgabewert (https://www.delphipraxis.net/185274-combobox-ios-und-android-mit-rueckgabewert.html)

Rollo62 27. Mai 2015 12:36

ComboBox IOS und Android mit Rückgabewert
 
Hallo zusammen,

die Combobox bei Mobile funktioniert ja etwas anders, ist eigentlich schon ein Dialog.
http://docwiki.embarcadero.com/RADSt....27s_Selection

Ich möchte eigentlich nur im OnClosePopup abfragen was der Nutzer gedrückt hatte,
denn allein am selektierten Wert kann ich das nicht erkennen (wenn der ItemIndex z.B. gleich bleibt),
aber doch nochmal selektiert werden soll um damit eine Aktion auszulösen.

Also ich möchte z.B. so etwas in der Art erreichen:

Code:
procedure TForm1.ComboBoxElement1ClosePopup(Sender: TObject);
begin
  //
  if ComboBoxElement1.ModalResult = mrOK then
  begin
    // Egal ob der ItemIndex gerade geändert wurde, oder nicht
    DoElemAdd(ComboBoxElement1.ItemIndex); // Clicked like OK also on same entry, ADD action is desired
  end
  else
  begin
    DoElemAddCancel;                      // Clicked like Cancel, no further action
  end;

end;
Leider scheint es aber keinen "ModalResult" zu geben, so dass man abfragen kann on "Done" oder "Cancel" gedrückt wurde.

Gibt es eine einfache Möglichkeit so etwas hineinzubauen, ohne jetzt gleich eine neue Komponente zu schreiben ?

Rollo

himitsu 27. Mai 2015 12:44

AW: ComboBox IOS und Android mit Rückgabewert
 
Den Index merken, mit dem du zuletzt deine Aktion ausgelöst hast und das Ding zu geht, dann den Index vergleichen ... fertig.

Rollo62 27. Mai 2015 12:53

AW: ComboBox IOS und Android mit Rückgabewert
 
Hallo himitzu,

dankesehr für den Vorschlag.
Zitat:

Den Index merken, mit dem du zuletzt deine Aktion ausgelöst hast und das Ding zu geht, dann den Index vergleichen ... fertig.
Bei ItemIndex Änderung funktioniert das wie gewollt, nur eben nicht wenn sich nichts in der Selektion ändert.

Aber genau das möchte ich:

.. denn der Nutzer soll auch mit "Done" eine Aktion auslösen können OHNE etwas verändert zu haben ...

Und dann käme beim ItemIndex Vergleich auf gleichem Wert immer heraus das KEINE Änderung vorlieght,
also damit kommt auch keine Aktion.

Wie gesagt: Eigentlich möchte ich die ComboBox als Dialog nutzen, um mir spätere, weitere OK/Cancel zu ersparen,
wenn ich das doch schon in der ComboPopup selber machen kann.

Rollo


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:52 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