Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Bilder in Richedit (https://www.delphipraxis.net/61829-bilder-richedit.html)

Knotti2005 26. Jan 2006 20:35


Bilder in Richedit
 
Jaja ich hatte das Thema schon mehrmals angeschnitten, nach langen probieren scheint mir das hier...

Delphi-Quellcode:
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;
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 [:-(]?

Knotti2005 26. Jan 2006 20:36

Re: Bilder in Richedit
 
@EDIT

Luckie 26. Jan 2006 20:41

Re: Bilder in Richedit
 
Dass du Beiträge editieren kannst, weißt du?

Knotti2005 26. Jan 2006 20:59

Re: Bilder in Richedit
 
Ja weis ich jetzt müsste ich nur noch wissen wie ich es bei mehreren Bilder machen kann
:cry:

Knotti2005 27. Jan 2006 14:56

Re: Bilder in Richedit
 
Keiner eine Idee`?

ichbins 27. Jan 2006 14:58

Re: Bilder in Richedit
 
wie wärs mit:

den selben code mehrmals ausführen?

etwa so:


Delphi-Quellcode:
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;
(ungetestet)

Knotti2005 27. Jan 2006 15:04

Re: Bilder in Richedit
 
Wie meinst du das ja ich hab schon 2 BIlder in der Imagelist und damidt auch 2 Indizien..

ichbins 27. Jan 2006 15:06

Re: Bilder in Richedit
 
hab gerade bearbeitet, jetzt ist ein Code da.

Knotti2005 27. Jan 2006 15:10

Re: Bilder in Richedit
 
Zitat:

[Fehler] Unit1.pas(442): Typ erwartet, aber '[' gefunden
[Fehler] Unit1.pas(442): ')' erwartet, aber ',' gefunden
[Fehler] Unit1.pas(444): Anweisung erwartet, aber 'DO' gefunden
[Fehler] Unit1.pas(448): Inkompatible Typen: 'String' und 'Integer'
[Fehler] Unit1.pas(448): Inkompatible Typen
[Fehler] Unit1.pas(450): Operator oder Semikolon fehlt
[Fehler] Unit1.pas(454): Operator oder Semikolon fehlt
[Fehler] Unit1.pas(454): Inkompatible Typen
[Fehler] Unit1.pas(455): Operator oder Semikolon fehlt
[Fehler] Unit1.pas(456): Operator oder Semikolon fehlt
[Fehler] Unit1.pas(456): Inkompatible Typen
[Fehler] Unit1.pas(460): ';' erwartet, aber '.' gefunden
[Fehler] Unit1.pas(462): Deklaration erwartet, aber Dateiende gefunden
[Fataler Fehler] Project1.dpr(7): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden

Matze 27. Jan 2006 15:11

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 12:32 Uhr.
Seite 1 von 2  1 2      

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