AGB  ·  Datenschutz  ·  Impressum  







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

asynchrone Dialoge

Ein Thema von tbathelt · begonnen am 29. Dez 2021 · letzter Beitrag vom 30. Dez 2021
 
tbathelt

Registriert seit: 16. Feb 2008
Ort: Oelde
15 Beiträge
 
Delphi 10 Seattle Professional
 
#1

asynchrone Dialoge

  Alt 29. Dez 2021, 10:56
Hallo zusammen, ich möchte mit diesem Post nochmal das Thema asynchrone Dialoge aufgreifen, da ich dazu bislang keine wirklich hilfreichen Infos finden konnte.
Wenn man Code programmiert, der auf verschiedenen Platformen laufen soll (z.B. Android), kommt man um die Verwendung asynchroner Dialoge nicht herum. Manchmal braucht man aber eine Eingabe, bevor es Sinn macht, mit dem Programmablauf weiterzumachen. In den durchsuchten Beiträgen habe ich bislang für solche Situationen nur etwas unspezifische Hinweise auf die Callback-Funktion der Dialoge gefunden. Ich habe mir daher einen "work-around" zurechtgebastelt, wie er im nachfolgenden Code-Beispie zu sehen ist.

Delphi-Quellcode:
type
  Tproc = procedure of object;

var
  JmpIdx: Integer;
  res: String;

procedure xInput(xTitle, xPrompt, xDefault: String; xProc: Tproc);
begin
  TDialogServiceAsync.InputQuery(xTitle, xPrompt, xDefault,
  procedure(const ARes: TModalResult; const AVal: array of String)
  begin
    if ARes=mrOk then
      res := AVal[0]
    else
      res := '';
    xProc;
  end);
end;

procedure TForm1.xyz;
var
  s: String;
Label
  lbl01;
begin
  case JmpIdx of
    1: Goto lbl01;
  end;
  JmpIdx := 1;
  xInput('Titel', 'Prompt', 'Default', xyz);
  exit;
lbl01:
  Label1.Text := res;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  JmpIdx := 0;
  xyz;
end;
Das ganze funktioniert zwar wie gewünscht, ist aber fürchterlicher Programmierstil - nur ist mir halt eben bislang dazu nix Besseres eingefallen.
Daher meine Frage: Wie handhabt ihr den Umgang mit asynchronen Dialogen?
Ich bin für alle Anregungen dankbar

Viele Grüße
Thomas
  Mit Zitat antworten Zitat
 


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 21:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz