![]() |
Bild in JvRichedit einfügen ohne Focus?
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:
Kennt jemand eine Lösung für dieses Problem?
// 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; |
Re: Bild in JvRichedit einfügen ohne Focus?
OK, ist erledigt, ich bin für die Anzeige der Nachrichten auf HTML umgestiegen (hat auch den positiven Effekt das man animierte Smilies verwenden kann :-D ).
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:29 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz