![]() |
Bilder in Richedit
Jaja ich hatte das Thema schon mehrmals angeschnitten, nach langen probieren scheint mir das hier...
Delphi-Quellcode:
Als eine gute Lösung oder? Allerdings ist des nur für ein Bild [:-)] in der ImageList wie muss ich den Code ändern für mehere Bilder [:-(]?
procedure TForm1.Button1Click(Sender: TObject);
begin jvrichedit1.lines.add( edit1.Text); end; procedure TForm1.JvRichEdit1Change(Sender: TObject); var Bitmap: TBitmap; Pos: Integer; begin Pos := jvrichedit1.FindText(':-)', 0, Length(JvRichEdit1.Text), []); if Pos = -1 then exit; Bitmap := TBitmap.Create; try ImageList1.GetBitmap(0, Bitmap); JvRichEdit1.SetSelection(Pos, Pos + 3, true); JvRichEdit1.InsertGraphic(Bitmap, false); JvRichEdit1.SelStart := Length(JvRichEdit1.Text); finally Bitmap.Free; end; end; |
Re: Bilder in Richedit
@EDIT
|
Re: Bilder in Richedit
Dass du Beiträge editieren kannst, weißt du?
|
Re: Bilder in Richedit
Ja weis ich jetzt müsste ich nur noch wissen wie ich es bei mehreren Bilder machen kann
:cry: |
Re: Bilder in Richedit
Keiner eine Idee`?
|
Re: Bilder in Richedit
wie wärs mit:
den selben code mehrmals ausführen? etwa so:
Delphi-Quellcode:
(ungetestet)
procedure TForm1.JvRichEdit1Change(Sender: TObject);
var Bitmap: TBitmap; i,rep,pos :integer; const smileys:array of [0..1] string = (':-(',':-)'); //Hier Smileys speichern. [:-(] in Element 0 der Imagelist, [:-)] in Element 1 der Imagelist usw... begin for i:=low(smileys) to high(smileys) do begin rep:=0; pos:=0; while pos<>-1 do begin Pos := jvrichedit1.FindText(smileys[i], rep, Length(JvRichEdit1.Text), []); rep:=rep+1 if Pos <> -1 then begin Bitmap := TBitmap.Create; ImageList1.GetBitmap(i, Bitmap); JvRichEdit1.SetSelection(Pos, Pos + length(smileys[i]), true); JvRichEdit1.InsertGraphic(Bitmap, false); JvRichEdit1.SelStart := Length(JvRichEdit1.Text); Bitmap.free; end; end; end; |
Re: Bilder in Richedit
Wie meinst du das ja ich hab schon 2 BIlder in der Imagelist und damidt auch 2 Indizien..
|
Re: Bilder in Richedit
hab gerade bearbeitet, jetzt ist ein Code da.
|
Re: Bilder in Richedit
Zitat:
|
Re: Bilder in Richedit
Das sind Delphi-Grundkenntnisse (Array deklarieren etc). :?
Etwas Eigeninitiative wäre schon wünschenswert ... Hier ist es korrekt:
Delphi-Quellcode:
procedure TForm2.JvRichEdit1Change(Sender: TObject);
var Bitmap: TBitmap; i,rep,pos :integer; const smileys:array [0..1] of string = (':-(', ':-)'); begin for i := low(smileys) to high(smileys) do begin rep := 0; pos := 0; while pos <> - 1 do begin Pos := jvrichedit1.FindText(smileys[i], rep, Length(JvRichEdit1.Text), []); rep:=rep + 1; if Pos <> -1 then begin Bitmap := TBitmap.Create; ImageList1.GetBitmap(i, Bitmap); JvRichEdit1.SetSelection(Pos, Pos + length(smileys[i]), true); JvRichEdit1.InsertGraphic(Bitmap, false); JvRichEdit1.SelStart := Length(JvRichEdit1.Text); Bitmap.free; end; end; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:09 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