AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung iOS IOS: Optische Änderungen außerhalb des Mainthreads lösen keine Aktualisierung aus
Thema durchsuchen
Ansicht
Themen-Optionen

IOS: Optische Änderungen außerhalb des Mainthreads lösen keine Aktualisierung aus

Ein Thema von AuronTLG · begonnen am 28. Nov 2022 · letzter Beitrag vom 19. Jan 2023
Antwort Antwort
Rollo62

Registriert seit: 15. Mär 2007
4.240 Beiträge
 
Delphi 12 Athens
 
#1

AW: IOS: Optische Änderungen außerhalb des Mainthreads lösen keine Aktualisierung aus

  Alt 29. Nov 2022, 15:15
Ich weiss nicht genau ob Du das meinst, ich entkoppele das meistens so:

Delphi-Quellcode:
procedure TMyForm.OnNfcResult( AText : String );
var
    LText : String;
begin
    LText := AText; // Zusätzliche Sicherheit zum Entkoppeln des Strings, sollte nicht unbedingt nötig sein
    TThread.ForceQueue( nil,
        procedure
        begin
            Label1.Text := LText;
            Label1.Repaint; // Wenn die Zuweisung nicht reicht.
        end );
end;
Mit dem ForceQueue versichere ich dass das Label egal aus welchem Kontext korrekt im MainUI angesprochen wird.
Ich habe verschiedene externe Events wo man nicht immer 100% sicher sagen kann ob es im MainUI ankommt.
Vielleicht löst das Deinen Fall, wenn ich den richtig verstanden habe ?
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
2.058 Beiträge
 
Delphi 12 Athens
 
#2

AW: IOS: Optische Änderungen außerhalb des Mainthreads lösen keine Aktualisierung aus

  Alt 29. Nov 2022, 15:29
Ich mache das auch mit TThread.ForceQueue es sei denn es handelt sich um eine Fortschrittsanzeige, dann mit TThread.Queue (ohne force) .
Andreas
Nobody goes there anymore. It's too crowded!

Geändert von QuickAndDirty (29. Nov 2022 um 15:34 Uhr)
  Mit Zitat antworten Zitat
AuronTLG

Registriert seit: 2. Mai 2018
Ort: Marburg
341 Beiträge
 
Delphi 12 Athens
 
#3

AW: IOS: Optische Änderungen außerhalb des Mainthreads lösen keine Aktualisierung aus

  Alt 29. Nov 2022, 15:43
Ich habe es gerade nochmal mit ForceQueue probiert, aber das tut bei mir rein gar nichts.
Funktioniert das so bei euch wirklich auf IOS?
Auf Android habe ich keine Probleme, aber bei IOS ist der oben beschriebene Workaround momentan das einzige, womit ich das Problem umgehen kann.
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.240 Beiträge
 
Delphi 12 Athens
 
#4

AW: IOS: Optische Änderungen außerhalb des Mainthreads lösen keine Aktualisierung aus

  Alt 29. Nov 2022, 16:46
Du könntest versuchen nicht das Label sondern den Parent ( die Form ? ) zu repainten.
Manchmal reagieren die Repaints nicht, das habe ich auch schon gesehen, warum auch immer.

Delphi-Quellcode:
    Label1.Text := LText;
****//Label1.Repaint; // Wenn die Zuweisung nicht reicht.
    Self.Repaint;
In FMX wird sowieso der ganze Form/Frame neu gerendert, deshalb macht das nichts.
  Mit Zitat antworten Zitat
angos

Registriert seit: 26. Mai 2004
Ort: Rheine
553 Beiträge
 
Delphi 12 Athens
 
#5

AW: IOS: Optische Änderungen außerhalb des Mainthreads lösen keine Aktualisierung aus

  Alt 19. Jan 2023, 14:27
Hey,

wir haben bei uns das gleiche Problem gehabt. Wir haben das folgendermaßen lösen können
Delphi-Quellcode:
procedure TNFCReader.OnHide;
begin
  [...]
  WindowHandleToPlatform(Application.MainForm.Handle).View.setNeedsDisplay;
end;
Ansgar
  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 15:59 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