Zitat von
Thanatos81:
So lange du keine Schriftart benutzt, bei der alle Zeichen exakt die gleich Breite haben, wirst du das auch nicht hinbekommen.
Auch wenn ein StrigGrid oder TreeView auf jeden fall besser ist.
Man kann bei einem Memo ja auch einfach die TabStops (in Pixeln) setzen:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
ndx : integer;
TabArray : Array [0..4] of integer;
begin
Memo1.WantTabs := True;
for ndx := 0 to 4 do
begin
TabArray[ndx] := 30 * ndx;
end;
SendMessage(Memo1.Handle,EM_SETTABSTOPS,5,LongInt(@TabArray));
end;
[Edit]
Hier noch ein Beispiel wie man das ganze parsen könnte:
Delphi-Quellcode:
procedure TForm1.LadenClick(Sender: TObject);
var
sl1: TStringList;
sl2: TStringList;
ndx1: integer;
ndx2: integer;
begin
sl1 := TStringList.Create;
sl2 := TStringList.Create;
try
sl2.Delimiter := ';';
sl1.LoadFromFile(Dateiname);
for ndx1 := 0 to Pred (sl1.Count) do
begin
sl2.DelimitedText := sl1.Strings[ndx1];
for ndx2 := 0 to Pred(sl2.Count) do
begin
MacheEtwasMitJederZeile (sl2.Strings[ndx2]);
end;
end;
finally
sl2.Free;
sl1.Free;
end;
end;
Es wird jede Zeile der Textdatei durchlaufen (SL1) dann wird jeder "Teil" (mit dem Trennzeichen ";") als eine Zeile in SL2 bereitgestellt.
Stephan B.
"Lasst den Gänsen ihre Füßchen"