Für einen besonderen Druck wird die Zeilenlänge auf konstant 80 Zeichen formatiert. Die Texte werden in verschiedenen Forms erstellt und dann via einer Stringlist an eine Art Druckvorschau übergeben.
Dies funktioniert prima, solange keine Umlaute in den Texten enthalten sind.
Der Aufbau erfolgt beispielsweise nach folgendem Schema:
Code: Alles auswählen
AusData := TStringList.Create;
AusData.Add(StringOfChar(cStrich,80));
AusData.Add(FS('Eintrag normal',40,0)+FS('XXXXX',40,1));
AusData.Add(FS('Ähnlicher Eintrag',40,0)+FS('XXXXX',40,1));
AusData.Add(FS('Ähnlicher Eintrög',40,0)+FS('XXXXX',40,1));
AusData.Add(FS('Eintrag normal',40,0)+FS('XXXXX',40,1));
memo1.Clear;
memo1.Text := AusData.Text;
AusData.Free;
Code: Alles auswählen
--------------------------------------------------------------------------------
Eintrag normal XXXXX
Ähnlicher Eintrag XXXXX
Ähnlicher Eintrög XXXXX
Eintrag normal XXXXX
Vor dem .ADD haben die Teilstrings eine korrekte Länge von 40 Zeichen.
Hab jetzt bereits viel Zeit damit verbracht, gefundene Lösungsansätze (UTF8-Kodierung) zu testen. Diese führen aber zu keinem Ergebnis. Bestenfalls erreichte ich folgendes Ergebnis mit korrekter Länge aber falscher Darstellung
Code: Alles auswählen
--------------------------------------------------------------------------------
Ähnlicher Eintrag XXXXX
Ähnlicher Eintrög XXXXX