Registriert seit: 11. Aug 2003
Ort: Dresden OT Cossebaude
71 Beiträge
Delphi 2005 Personal
|
Re: Mit POS Smilys ersetzen, findet aber nur 1. Smily
27. Feb 2004, 09:00
Das sollte so ähnlich aussehen:
Delphi-Quellcode:
(pseudocode)
//erstmal alle Zeilen durchlaufen
for I := 0 to Richedit.Lines.Count - 1 do
begin
//dann jede Zeile durchlaufen
Z := Pos(':-)',Richedit.Lines[I]);
while Z>0 do begin
SelStart := pos(Copy(Richedit.Lines[I], Z - 2, 2), Richedit.Lines[I]);
SelLength := 3;
SelText := ' ';
Form1.Image1.picture.LoadFromFile(BildPath + 'S_grinsend.bmp');
InsertSmily;
Z := Pos(':-)',Richedit.Lines[I]);
end;
//und so weiter und so fort...
Z := Pos(':-(',Richedit.Lines[I]);
while Z>0 do begin
{...}
Z := Pos(':-(',Richedit.Lines[I]);
end
end;
das ganze würde ich aber noch schöner machen:
Delphi-Quellcode:
(pseudocode)
procedure TForm1.SmilyAktuallisieren(Richedit: TRxRichEdit);
procedure ReplaceSmilie(const Line,Smily,Bitmap:String);
var Z : Integer;
begin
Z := Pos(Smily,Line);
while Z>0 do begin
SelStart := pos(Copy(Line, Z - 2, 2), Line);
SelLength := 3;
SelText := ' ';
Form1.Image1.picture.LoadFromFile(BildPath + Bitmap);
InsertSmily;
Z := Pos(Smily,Line);
end;
end;
var I : Integer;
begin
for I := 0 to Richedit.Lines.Count - 1 do
begin
ReplaceSmilie(Richedit.Lines[I],':-)','S_grinsend.bmp');
ReplaceSmilie(Richedit.Lines[I],':-(','S_schmollend.bmp');
{...}
end;
sieht doch schon viel übersichtlicher und kleiner aus...
Robert Codito, ergo sum.
>>I code, therefore I am<<
|
|
Zitat
|