Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   FMX: TMemo-Undo Bug (https://www.delphipraxis.net/192416-fmx-tmemo-undo-bug.html)

Harry Stahl 16. Apr 2017 23:01

FMX: TMemo-Undo Bug
 
Liste der Anhänge anzeigen (Anzahl: 3)
Leider scheint das FMX- TMemo (Delphi 10.2) immer noch Probleme zu haben, insbesondere mit der Undo-Funktion.

Habe festgestellt, dass nach vorherigem Löschen einiger Zeilen und nachfolgendem Undo die mit Memo.lines.count zurückgelieferte Anzahl nicht mehr stimmt und auch einzelne Zeilenabfragen (Memo.caretposition.line).

Da das kaum textlich vernünftig zu erklären ist, habe ich ein kleines, sehr kurzes Video (MP4, ca. 1,8 MB) beigefügt und einen Screenshot vom Demo-Programm, das Ihr bitte selbst testen könnt.

Es wäre nett, wenn mir den Fehler jemand bestätigen würde, ich würde den dann bei EMBA melden.

jaenicke 17. Apr 2017 07:21

AW: FMX: TMemo-Undo Bug
 
Das ist hier auch so, ja.

Und es geht noch weiter:
Das Resize scheint das Problem auch nicht komplett zu beheben. Wenn du Ausschneiden, Undo, Resize machst und dann wieder die 4 Zeilen ausschneidest, wird auch nicht aktualisiert und die Zeilen bleiben schlicht leer.

// EDIT:
Hinter UnDo wird ja FMX.Memo.Style.TEditActionStack.RollBackAction ausgeführt. Dort sieht noch alles richtig aus und es wird FOwner.Model.InsertAfter aufgerufen, wobei der einzufügende String aus mehreren Zeilen besteht, nämlich die ausgeschnittenen Zeilen. Dort wird dann einfach der Zeileninhalt neu gesetzt. Auf den String mit Zeilenumbrüchen drin. Dabei muss dann etwas schief gehen.

Ich habe daraufhin einfach nur eine Zeile mit Zeilenumbrüchen gesetzt. Auch dabei wird die Zeilenanzahl nicht aktualisiert. Es gibt aber keine Grafikfehler.
Delphi-Quellcode:
  Memo1.Lines[4] := 'aaa'#13#10'bbb'#13#10'ccc'#13#10'ddd';
//.
Interessant dabei:
Der Zeileninhalt ist auch wirklich nur in dieser einen Zeile. Mehrfaches Ausführen dieses Codes ändert am Inhalt nichts mehr.

Harry Stahl 17. Apr 2017 07:59

AW: FMX: TMemo-Undo Bug
 
OK, danke für das Testen. Werde dann eine Bugreport machen.

Edit: Hier zu finden: https://quality.embarcadero.com/browse/RSP-17870

(hab das Video nochmal kurz in englisch aufgenommen).


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