@ 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!?