In meinem Chat füge ich die Smilies so ein:
Delphi-Quellcode:
procedure TMainForm.BildEinfuegen(var Bilder: TImageList; const ImageIndex: integer);
var
bitmap: TBitmap;
begin
Bitmap := TBitmap.Create;
try
Bilder.GetBitmap(ImageIndex,Bitmap);
REEmpfangen.InsertGraphic(Bitmap,false);
with REEmpfangen.GetSelection do REEmpfangen.SetSelection(cpMin + 1, cpMin + 1, False);
finally
bitmap.Free;
end;
end;
procedure TMainForm.SucheSmiley(const Smiley: string; ImageIndex: integer; Liste: TImageList);
var
FoundAt: LongInt;
StartPos, ToEnd: Integer;
begin
with REEmpfangen do
begin
if SelLength <> 0 then StartPos := SelStart + SelLength
else StartPos := 0;
ToEnd := Length(Text) - StartPos;
FoundAt := FindText(Smiley, StartPos, ToEnd, []);
if FoundAt <> -1 then
begin
SetFocus;
SelStart := FoundAt;
SelLength := Length(Smiley);
BildEinfuegen(Liste, ImageIndex);
end;
end;
end;
Der Code ist nicht von mir, ich hab ihn nur etwas angepasst.
REEmpfangen ist dabei ein "JvRichEdit" aus der Jvcl
Der Smiley ist wird dabei als Text in der Nachricht versendet, also z.B. *lach* für
EDIT:
Zitat von
la.reunion:
Mein zweites Problem ist, dass ich nicht weiß wie ich das anstellen kann, das jeder user sihc eine farbe aussuchen
Dafür gehen
jbg´s Implode-Explode-Funktionen eigentlich ganz gut, da kannst du dir ein schönes "Nachrichtenprotokoll" zusammenbauen, wo du dann z. B. auch Schriftart, -größe und -farbe und sonst was mit einbauen kannst