![]() |
Windows 10 1809 - Problem mit Memo.Text
Hallo Forum
Seit Windows 10 1809 (Build 17763) hängt ein Programm während mehreren Sekunden nach der Zuweisung
Delphi-Quellcode:
Umgeschrieben (Code unten) hängt das Programm bei der Zuweisung Memo1.Text := h;
Memo1.Text := Copy( Memo1.Text, 1, length( Memo1.Text )- 1 );
Delphi-Quellcode:
Dieser Code hängt nicht:
var h : TCaption;
begin h := Memo1.Text; h := Copy(h, 1, length(h) - 1); Memo1.Text := h;
Delphi-Quellcode:
Hat jemand ähnliche Erfahrungen gemacht? (Antworten wie: "Natürlich nicht, man macht das auch nicht so" sind willkommen :-D)
Memo1.Text := 'Hallo';
h := Memo1.Text; h := Copy(h, 1, length(h) - 1); Memo1.Text := h; Auf allen anderen Windows Systemen XP, 7, Vista, Server 12, Server 16 ist's OK. Gruss ins Forum Michael |
AW: Windows 10 1809 - Problem mit Memo.Text
Was hat denn
Delphi-Quellcode:
im ersten Beispiel für einen Wert? (eventuell Zeilenbrüche am Ende?)
Memo1.Text;
|
AW: Windows 10 1809 - Problem mit Memo.Text
Hallo CodeZwerg
besten Dank für deine rasche Reaktion. Antwort: Ja. Der Code läuft in einem Chatfenster (User gibt Text ein und schliesst mit Return/Enter ab). Im "Original" sieht der Code so aus und lief bis vor Windows 10 1809:
Delphi-Quellcode:
if Memo2.Text <> '' then
begin while CharInSet(Memo2.Text[length(Memo2.Text)], [#10, #13]) do begin Memo2.Text := Copy(Memo2.Text, 1, length(Memo2.Text) - 1); if Memo2.Text = '' then break; end; end; Gruss Michael |
AW: Windows 10 1809 - Problem mit Memo.Text
Hallo CodeZwerg
Danke für deinen Hinweis. Es ist wie du vermutest. Die Zuweisung
Delphi-Quellcode:
führt zum Problem.
Memo1.Text := 'Hallo' + #13;
Wenn ich #13#10 aufs Mal entferne, dann klappt's. Offenbar sind frühere Windows Versionen "toleranter". Gruss Michael |
AW: Windows 10 1809 - Problem mit Memo.Text
Delphi-Quellcode:
function NoLineFeed(const s: string): string;
var i: integer; begin result := s; for i := length(result) downto 1 do if ord(result[i])<32 then if (i>1) and (ord(result[i-1])<=32) then delete(result,i,1) else result[i] := ' '; end;
Delphi-Quellcode:
Oder so :)
var h : TCaption;
begin h := NoLineFeed(Memo1.Text); h := Copy(h, 1, length(h) - 1); Memo1.Text := h; Gern geschehen und viel Spaß, Ps diese Funktion filtert alles unterhalb Ascii 32 raus und am ende ist es nur eine Zeile. Eine Memo (Multiline-Edit) ist nicht so das wahre wenn ein Singleline das Ziel ist, vielleicht Control in ein Edit ändern? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:24 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