Einzelnen Beitrag anzeigen

Benutzerbild von Spezi1980
Spezi1980

Registriert seit: 11. Aug 2003
Ort: Dresden OT Cossebaude
71 Beiträge
 
Delphi 2005 Personal
 
#13

Re: Mit POS Smilys ersetzen, findet aber nur 1. Smily

  Alt 27. Feb 2004, 08: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<<
  Mit Zitat antworten Zitat