Thema: Delphi Smilies im Richedit

Einzelnen Beitrag anzeigen

freak1985
(Gast)

n/a Beiträge
 
#20

Re: Smilies im Richedit

  Alt 21. Jun 2005, 15:10
@ Flocke.

danke für den tipp. hab ich übersehen.

hab das nun auch so gemacht, und daraus entsteht folgender code, der auch funzt


Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
  Smilie: array[1..13] of string;

  function GetImageIndex(Image: String): Integer;
  begin
    if image = '(cool)then Result := 0 else
    if image = ':-\then Result := 1 else
    if (image = ':-(') or (image = ':(') then Result := 2 else
    if (image = ':-)') or (image = ':)') then Result := 3 else
    if (image = ';-)') or (image = ';)') then Result := 4 else
    if (image = ':-D') or (image = ':D') then Result := 5 else
    if (image = ':P') or (image = ':p') or (image = ':-P') then Result := 6
    else
      Result := -1;
  end;

begin
  Smilie[1] := '(cool)';
  Smilie[2] := ':-\';
  Smilie[3] := ':-(';
  Smilie[4] := ':(';
  Smilie[5] := ':-)';
  Smilie[6] := ':)';
  Smilie[7] := ';-)';
  Smilie[8] := ';)';
  Smilie[9] := ':-D';
  Smilie[10] := ':D';
  Smilie[11] := ':P';
  Smilie[12] := ':-P';
  Smilie[13] := ':p';

  for i := 1 to High(Smilie) do
    if Pos(Smilie[i], ChatBox.Text) > 0 then
    begin
      ChatBox.FindText(Smilie[i], 0, Length(Chatbox.Text), [stSetSelection]);
      ChatBox.SelLength := Length(Smilie[i]);
      ChatBox.SelText := '';
      AddImageToRichEdit(GetImageIndex(Smilie[i]));
    end;

end;
es ist ja nun so, dass er zunächst einmal immer nur das ERSTE smilie von einer sorte ersetzt. ich brauch nun noch ne repeat oder while schleife für außenherum, sodass er auch alle vorkommenden ersetzt. nur fällt mir keine bedingung für die schleife ein!?
  Mit Zitat antworten Zitat