Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Stringlist oder str in Stringgrid packen! [gelöst]
Anonymous - Do 30.10.03 23:36
Titel: Stringlist oder str in Stringgrid packen! [gelöst]
Hallo,
ich habe einen String, oder auch eine Stringlist (wie es besser geht) in der folgendes so steht:
Wie schaffe ich es jetzt den Inhalt so in ein Stringgrid zu packen das genau wie oben jede Zeile auch im Stringgrid ne neue Zeile bekommt...
Gruß
Alex
ErnestoChe - Do 30.10.03 23:52
Hi,
folgend bekommst du deine Liste in die 2. Spalte:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| procedure TForm1.Button1Click(Sender: TObject); var sList: TStringList; begin sList := TStringList.Create; try sList.Add('1A'); sList.Add('2B'); sList.Add('3C'); sList.Add('4D');
StringGrid1.Cols[1].AddStrings(sList); finally sList.Free; end; end; |
Kleiner Tipp: die Eigenschaften Rows[] und Cols[] des StringGrids sind TStrings. D.h. du kannst sie genauso handhaben wie eine StringList.
MFG
- Ernesto -
Anonymous - Fr 31.10.03 11:06
ja aber im normalfall weiß ich ja nicht was im string steht...da kann ich es ja dann nicht von hand eintragen...
ich brauche ne mthode um einen string zeile für zeile in ein stringgrid zu laden!
ErnestoChe - Fr 31.10.03 11:20
Hi,
ich bin mir nicht sicher aber ich glaube wir reden aneinander vorbei. Rows[] und Cols[] sind TStrings. Diese hat die Methode Add() mit der du eine neue Zeile ertellst. Genauso wie du mit einer StringListe umgehst kannst du auch mit Rows und Cols umgehen.
MFG
- Ernesto -
Anonymous - Fr 31.10.03 11:45
Ja das weiß ich :-) !!!!!
Ich habe aber folgendes Problem....Ich habe einen String indem folgendes stehen kann:
hallo //erste Zeile
hallo1 //zweite Zeile
hallo2 //dritte Zeile
hallo3 /vierte Zeile
Jetzt möchte ich diesen String, genau wie hier erklärt, Zeile für Zeile in ein Stringgrid einfügen. also auch so...
Zeile1 im Stringgrid = hallo
Zeile2 im Stringgrid = hallo1 u.s.w.
Gruß
Alex
ErnestoChe - Fr 31.10.03 13:16
Hi,
ich nehme mal an, dass in deinem String Zeilenumbrüche (#13) sind. Eine Möglichkeit wäre dann:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| procedure TForm1.Button1Click(Sender: TObject); var str, strTmp: String; i: Integer; begin str := 'hallo' + #13 + 'hallo1' + #13 + 'hallo2' + #13 + 'hallo3';
for i := 1 to Length(str) do begin strTmp := strTmp + str[i]; if (str[i] = #13) or (i = Length(str)) then begin if not (i = Length(str)) then Delete(strTmp, Length(strTmp), 1); StringGrid1.Cols[1].Add(strTmp); strTmp := ''; end; end; end; |
Es gibt vielleicht noch andere Möglichkeiten, aber auf die Schnelle ist mir diese eingefallen. Sie funktionert.
MFG
- Ernesto -
Anonymous - Fr 31.10.03 14:32
Danke!
barfuesser - Mo 03.11.03 16:26
Delphi-Quelltext
1: 2: 3: 4: 5:
| AString := 'Zeile1'#13#10'Zeile2'#13#10'Zeile3'; StringList := TStringList.Create; StringList.Text := AString; StringGrid1.Cols[1].AddStrings(StringList); StringList.Free; |
barfuesser
ErnestoChe - Mo 03.11.03 22:51
Hi,
lässt sich sogar auf einen Einzeiler reduzieren:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| procedure TForm1.Button1Click(Sender: TObject); begin StringGrid1.Cols[1].Text := 'hallo' + #13#10 + 'hallo1' + #13#10 + 'hallo2' + #13#10 + 'hallo3'; end; |
MFG
- Ernesto -
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!