Registriert seit: 11. Sep 2005
327 Beiträge
Turbo Delphi für Win32
|
Bild in JvRichedit einfügen ohne Focus?
4. Sep 2007, 09:40
Hallo,
ich habe mehrere Forms mit JvRichEdits in die manchmal Bilder eingefügt werden (Smilies in einem Chat). Mit der Prozedur InsertGraphic(AGraphic: TGraphic; Sizeable: boolean) wird ein Bild bei der aktuellen Auswahl eingefügt und dazu braucht das JvRichedit den Focus damit man die passende Stelle auswählen kann. Das ist ein Problem, denn wenn man gerade in einer anderen Form was macht (Nachricht schreiben) und zwischendurch ein Smilie in ein Richedit einer anderen Form eingefügt wird, wird man beim Schreiben unterbrochen weil die andere Form den Focus bekommt. Kann man irgendwie Bilder in ein JvRichedit einfügen ohne das es den Focus braucht? Zur Zeit füge ich die Smilies so ein:
Delphi-Quellcode:
// Smilies einfügen
procedure TMainForm.BildEinfuegen(Bilder: TPNGImageCollection; ImageIndex: integer; RE: TJvRichEdit);
var
BMP: TBitmap;
begin
BMP := TBitmap.Create;
try
//Das JvRichedit zeigt PNGs nicht an, daher erst in BMPs umwandeln
BMP.Width := Bilder.Items[ImageIndex].PngImage.Width;
BMP.Height := Bilder.Items[ImageIndex].PngImage.Height;
Bilder.Items[ImageIndex].PngImage.Draw(BMP.Canvas,Rect(0,0,BMP.Width,BMP.Height));
RE.InsertGraphic(BMP,false);
with RE.GetSelection do RE.SetSelection(cpMin + 1, cpMin + 1, False);
finally
BMP.Free;
end;
end;
// Smilies suchen
procedure TMainForm.SucheSmilie(Smilie: string; ImageIndex: integer; Liste: TPNGImageCollection; RE: TJVRichEdit);
var
FoundAt: LongInt;
StartPos, ToEnd: Integer;
begin
with RE do
begin
if SelLength <> 0 then StartPos := SelStart + SelLength
else StartPos := 0;
ToEnd := Length(Text) - StartPos;
FoundAt := FindText(Smilie, StartPos, ToEnd, []);
while FoundAt <> -1 do
begin
SetFocus;
SelStart := FoundAt;
SelLength := Length(Smilie);
BildEinfuegen(Liste, ImageIndex,RE);
FoundAt := FindText(Smilie, StartPos, ToEnd, []);
end;
end;
end;
Kennt jemand eine Lösung für dieses Problem?
MfG Sko
Zitat von Phoenix:
[ OT]Phoenix guckt in die Glaskugel, zuckt mit den Flügelspitzen, krächzt etwas von wegen 'Boden' und 'Scherben' und schubbst die Kugel in Richtung Tischkante.[/ OT]
Rockbox
|
|
Zitat
|