Thema: Delphi Smilies im Richedit

Einzelnen Beitrag anzeigen

freak1985
(Gast)

n/a Beiträge
 
#8

Re: Smilies im Richedit

  Alt 20. Jun 2005, 23:22
so leider funzt es doch nicht

es funzt grade wie es will.. manchmal aber hängt er sich einfach auf. ich weiß nicht an was es liegen könnte kann jemand helfen?

hier mal der code:

Delphi-Quellcode:
var
  i: integer;
  Smilie: array[1..13] of string;

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

(*
  RichEdit1.Perform(EM_SCROLLCARET, 0, 0);
  RichEdit1.SelStart:=length(RichEdit1.text);

*)

  Smilie[1] := ':-)';
  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

    repeat
      { Text-Smilie finden }
      ChatBox.SelStart := Pos(Smilie[i], ChatBox.Text) - 1;

      if Pos(Smilie[i], chatbox.text) > 0 then
      begin
        { Smilie lsöchen }
        ChatBox.SelLength := Length(Smilie[i]);
        ChatBox.SelText := '';

        { Bild einfügen }
        AddImageToRichEdit(GetImageIndex(Smilie[i]));
      end;

    until ChatBox.SelStart >= Length(ChatBox.Text);

end;
  Mit Zitat antworten Zitat