AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung XE6 ModalesFenster mrResult bringt Fehler.
Thema durchsuchen
Ansicht
Themen-Optionen

XE6 ModalesFenster mrResult bringt Fehler.

Ein Thema von GS1200 · begonnen am 7. Jun 2014 · letzter Beitrag vom 7. Jun 2014
Antwort Antwort
GS1200

Registriert seit: 16. Jul 2006
26 Beiträge
 
#1

XE6 ModalesFenster mrResult bringt Fehler.

  Alt 7. Jun 2014, 12:17
Hallo zusammen,

bei meinem Projekt bekomme ich bei der Verwendung eines Modalen Fensters einen Fehler, wenn ich ein mrResult zurück geben. Ein kleines Testprojekt anbei, kann jemand den Fehler auch nachstellen? Ist es ein Bug in XE6?

Gruß

Axel

TestprojektModal.zip
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

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

AW: XE6 ModalesFenster mrResult bringt Fehler.

  Alt 7. Jun 2014, 12:21
Für welche Plattform?
Auf den mobilen Plattformen ist es mit modalen Fenstern etwas schwierig. Unter iOS wird "ShowModal()" mit Hängen und Würgen unterstützt, unter Android gibt es einen Fehler. Windows und MacOS hingegen sollten funktionieren.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
GS1200

Registriert seit: 16. Jul 2006
26 Beiträge
 
#3

AW: XE6 ModalesFenster mrResult bringt Fehler.

  Alt 7. Jun 2014, 12:25
Sorry, hatte ich nicht erwähnt.. für Android.

Ich habe mich am Beispiel von emarcadero gehalten:

Delphi-Quellcode:
 procedure THeaderFooterForm.btnPickClick(Sender: TObject); var
  dlg: TForm1;
begin
  dlg := TForm1.Create(nil);
  // select current value, if available in the list
  dlg.ListBox1.ItemIndex := dlg.ListBox1.Items.IndexOf(edit1.Text);
 
  dlg.ShowModal(procedure(ModalResult: TModalResult)
    begin
      if ModalResult = mrOK then
      // if OK was pressed and an item is selected, pick it
        if dlg.ListBox1.ItemIndex >= 0 then
          edit1.Text := dlg.ListBox1.Items [dlg.ListBox1.ItemIndex];
      dlg.DisposeOf;
    end);
 
end;
Hier der Artikel LINK

Gruß

Axel
  Mit Zitat antworten Zitat
GS1200

Registriert seit: 16. Jul 2006
26 Beiträge
 
#4

AW: XE6 ModalesFenster mrResult bringt Fehler.

  Alt 7. Jun 2014, 15:09
Ich habe es gefunden...

Im Beispiel steht es so:
Delphi-Quellcode:
 procedure THeaderFooterForm.btnPickClick(Sender: TObject); var
  dlg: TForm1;
begin
  dlg := TForm1.Create(nil);
  // select current value, if available in the list
  dlg.ListBox1.ItemIndex := dlg.ListBox1.Items.IndexOf(edit1.Text);
 
  dlg.ShowModal(procedure(ModalResult: TModalResult)
    begin
      if ModalResult = mrOK then
      // if OK was pressed and an item is selected, pick it
        if dlg.ListBox1.ItemIndex >= 0 then
          edit1.Text := dlg.ListBox1.Items [dlg.ListBox1.ItemIndex];
      dlg.DisposeOf;
    end);
 
end;
die Zeile dlg.DisposeOf habe ich durch freeandnil(dlg) ersetzt und dann geht es.

Gruß

Axel
  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: XE6 ModalesFenster mrResult bringt Fehler.

  Alt 7. Jun 2014, 15:31
Und da du für Android programmierst sollte auch dlg := nil; ausreichen.
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 08:32 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