Zitat von
eragon123:
Mein Ansatz
Delphi-Quellcode:
beschriftung := lblout.Caption; // In 5er Gruppen annordnen
beschriftung2 := lblin.Caption;
for i := 0 to Length(lblin.Caption) div 5 do
begin
Insert(' ',beschriftung,i*5);
Insert(' ',beschriftung2,i*5);
end;
lblout.Caption := beschriftung;
lblin.Caption := beschriftung2;
Erstens ein String hat einen 1-basierenden Index.
for i := 0 to und
i*5 ergeben aber als ersten Wert eine 0, also müßte überall +1 hinzu.
Außerdem willst du doch
nur gruppieren/unterteilen und dann benötigst du keine Leerzeichen an erster Stelle und unter Umständen auch nicht an letzter Stelle.
Wenn du von Vorne bis Hinten durchgehst und enfügst, dann wird der String um die eingefügten Zeichen Länger (also vor den Einfügestellen) und demnach müßte für jede Einfügung 1 (
i*Length(' ') ) hinzugerechnet werden.
Lösung: von hinten beginnen
Delphi-Quellcode:
for i := 1 do (Length(lblin.Caption) - 1) div 5 do
//Insert(' ', beschriftung, i * (5 + Length(' ')) + 1);
Insert(' ', beschriftung, i * 6 + 1);
oder
Delphi-Quellcode:
for i := (Length(lblin.Caption) - 1) div 5 downto 1 do
Insert(' ', beschriftung, i * 5 + 1);
Zitat von
eragon123:
Beschriftung 1 und 2 sind strings.
Sind diese auch gleich lang?
Wenn nicht, dann benötogst du 2 Schleifen.