AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Bild in JvRichedit einfügen ohne Focus?

Ein Thema von Sko · begonnen am 4. Sep 2007 · letzter Beitrag vom 5. Sep 2007
Antwort Antwort
Benutzerbild von Sko
Sko

Registriert seit: 11. Sep 2005
327 Beiträge
 
Turbo Delphi für Win32
 
#1

Bild in JvRichedit einfügen ohne Focus?

  Alt 4. Sep 2007, 08: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
  Mit Zitat antworten Zitat
Benutzerbild von Sko
Sko

Registriert seit: 11. Sep 2005
327 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Bild in JvRichedit einfügen ohne Focus?

  Alt 5. Sep 2007, 16:04
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 ).
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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz