Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#4

AW: Zeilenumbruch einer Listbox beim Speichern erhalten

  Alt 3. Mai 2012, 22:29
Eine Listbox unterstützt keine Zeilenumbrüche für einzelne Items.
Diese werden wie "normale" Zeichen behandelt und in einer Zeile eingezeigt.
Wenn man aber die Items als StringList abspeichert (Items.Text, Items.SaveToFile, Items.SaveToStream), dann werden alle Einzelstrings zu einem großen String verwurschtelt.

Das ist genauso wie innerhalb der TStringList.
Wenn man einer Item Line einen Text mit Zeilenumbruch zuweist, dann bleibt der innerhalb dieser Zeile, solange man nicht alle Zeilen als einen Text behandelt.
Denn wie soll nach dem Speichern noch irgendwer rausbekommen welcher Zeilenumbruch wozu gehört?
Beim Einlesen werden also alle Zeilenumbruche als Item-Separatoren behandelt.

Delphi-Quellcode:
ListBox1.Items.Add('123 456');
ListBox1.Items.Add('123'#10'456');
ListBox1.Items.Add('123'#13'456');
ListBox1.Items.Add('123'#13#10'456');
Memo1.Lines.Text := ListBox1.Items.Text;
Und daran kannst du rein garnichts ändern, es sei denn du merkst/markierst dir die "ungewollten" Zeilenumbrüche/Steuerzeichen oder du sorgst dafür, das sowas erst garnicht in die ListBox reinkommt.

Ich empfehle die fette Variante, drum werd' ich heute nicht mehr auf eine mögliche Speichervariante eingehn. :hattenwirnichtmaleingähnsmilie:


Zitat:
Wenn ich alle Items jedoch Speichere (entweder über ".Savetofile" oder via for-Schleife in FileStream)
Wenn niemand sagt wie was versucht wurde, dann wird da auch keiner sagen können, was dabei falsch gemacht wurde.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 4. Mai 2012 um 09:10 Uhr)
  Mit Zitat antworten Zitat