| Autor |
Beitrag |
mimi
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: Sa 25.09.04 18:10
Hallo,
ich habe folgende daten:
| Zitat: |
---------------------------
czp
---------------------------
D:\Daten\eigene\delphi\clz\system\czp.exe(clRed),19.09.2004 15:59:53(clBlue),25.09.2004(clYellow),25.09.2004 19:08:30(clLime),Anwendung
D:\Daten\eigene\delphi\clz\system\dir.txt(clRed),19.09.2004 16:20:35(clBlue),20.09.2004(clYellow),19.09.2004 16:08:54(clLime),Textdokument
---------------------------
OK
---------------------------
|
nun möchte ich das der dateinamen in rot das erste datum in blau das zweite datum auch in blau und der typ soll in grüne angezeigt werdn angezeit wird
ich habe mir deshalb folden code ausgedacht, der leider nicht fuktioniert !
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: 24: 25: 26: 27: 28: 29:
| procedure TForm1.AddCZ(Add:TStringList); var i,t,m:Integer; Str,str1:String; begin m:=0; for i:=0 to Add.Count-1 do begin m:=NumToken(Add.Strings[i],','); RichEdit1.Lines.Add('T'); SHowMessage(Add.Text); for t:=1 to m do begin if t +1 <= m then Str:=GetToken(GetToken(Add.Strings[i],'(',t+1),')',1);
Str1:=GetToken(GetToken(Add.Strings[i],',',t),'(',1);
RichEdit1.SelStart:=Pos(Str1,Add.Text)-1; RichEdit1.SelLength:=RichEdit1.SelStart+Length(str1);
RichEdit1.SelAttributes.Color:=StringToColor(Str);
RichEdit1.Lines[i]:=RichEdit1.Lines[i]+str1; RichEdit1.SelStart:=0;RichEdit1.SelLength:=0;
end; end; end; |
dieser code sucht zuerst mit hilfe von GetToken alle farben rauß und anschließend die wörter vor den farben und nachdem er das den RichEdit hinzugefügt hat, werden die farbinfos gesetzt... doch leider ist die erste zeile rot und die zweite zeile grün, warum ? was habe ich falsch gemacht ?
_________________ MFG
Michael Springwald, "kann kein englisch...."
|
|
mimi 
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: Sa 25.09.04 21:13
mit diesem code jetzt geht alles bis auf eine sache: die farbe wird nicht geändert:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| var i,t,m:Integer; Str,str1:String; begin m:=0; for i:=0 to Add.Count-1 do begin m:=NumToken(Add.Strings[i],','); RichEdit1.Lines.Add('T');
for t:=1 to m do begin Str:=GetToken(GetToken(Add.Strings[i],'(',t+1),')',1); Str1:=GetToken(GetToken(Add.Strings[i],',',t),'(',1);
RichEdit1.Lines[i]:=RichEdit1.Lines[i]+str1; RichEdit1.SelStart:=Pos(Str1,RichEdit1.Lines.Text)-1; RichEdit1.SelLength:=Length(str1); RichEdit1.SelAttributes.Color:=StringToColor(Str); end; end; |
warum ???
_________________ MFG
Michael Springwald, "kann kein englisch...."
|
|
ernstl
Hält's aus hier
Beiträge: 11
Win 98
D5 Prof
|
Verfasst: Do 30.09.04 13:32
Hallo!
Bin mir nicht sicher, aber da du die einzelnen Strings nacheinander einfügst schreib doch in Zeile 13
L := Length(RichEdit.Lines.Text);und in Zeile 15RichEdit1.SelStart:= L + 1;oder nur in Zeile 15RichEdit1.SelStart:= Length(RichEdit.Lines.Text)-Length(str1); vielleicht hilfts ja
Gruß ernstl
|
|
mimi 
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: Sa 02.10.04 18:41
geht leider nicht....
_________________ MFG
Michael Springwald, "kann kein englisch...."
|
|
|