Code: Alles auswählen
procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Text := #255;
end;
Code: Alles auswählen
(project1:5352): Gtk-CRITICAL **: gtk_text_buffer_emit_insert: assertion 'g_utf8_validate (text, len, NULL)' failed
Code: Alles auswählen
procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Text := #255;
end;
Code: Alles auswählen
(project1:5352): Gtk-CRITICAL **: gtk_text_buffer_emit_insert: assertion 'g_utf8_validate (text, len, NULL)' failed
Danke, für die Erklärung.Linux verwendet UTF8-Zeichencodierung. Das Byte 255 ist >127 und daher muss das zugehörigen Zeichen (CodePoint) mindestens ein weiteres Byte enthalten. Die Meldung von gtk bedeutet daher, dass du ein ungültiges UTF8-Zeichen ins Memo geschrieben hast.
Ich denke, auf dies kann ich verzichten.Nimm stattdessen die entsprechende Konvertierungsfunktion aus lconvencoding, z.B. CP1252ToUTF8(#255) (Windows) oder CP850ToUTF8(#255) (DOS).
Code: Alles auswählen
Memo1.Text := 'Hello World';
Memo1.Text := Memo1.Text + #255;