Einzelnen Beitrag anzeigen

Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#16

Re: Bild in TRichEdit einfügen

  Alt 16. Mär 2010, 14:50
Die Idee mit dem Webbrowser/HTML-Text finde ich auch gut, da es da relativ einfach ist eine Grafik zu integrieren.

Hier noch kurz zum Link aus #1
Delphi-Quellcode:
function BitmapToRTF(pict: TBitmap): string;
var
bi,bb,rtf: string;
bis,bbs: Cardinal;
achar: ShortString;
hexpict: string;
I: Integer;
begin
  GetDIBSizes(pict.Handle,bis,bbs);
  SetLength(bi,bis);
  SetLength(bb,bbs);
  GetDIB(pict.Handle,pict.Palette,PChar(bi)^,PChar(b b)^);
  [b]rtf := '{\rtf1 {\pict\dibitmap ';[/b] {------------------------"Header für Bilddaten}
{--------------- Auslesen Bilddaten und erstellen Bild-RTF-String (hexpict) -------}
  SetLength(hexpict,(Length(bb) + Length(bi)) * 2);
  I := 2;
  for bis := 1 to Length(bi) do
  begin
    achar := Format('%x',[Integer(bi[bis])]);
    if Length(achar) = 1 then
      achar := '0' + achar;
    hexpict[I-1] := achar[1];
    hexpict[I] := achar[2];
    Inc(I,2);
  end;
  for bbs := 1 to Length(bb) do
  begin
    achar := Format('%x',[Integer(bb[bbs])]);
    if Length(achar) = 1 then
      achar := '0' + achar;
    hexpict[I-1] := achar[1];
    hexpict[I] := achar[2];
    Inc(I,2);
  end;

  rtf := rtf + hexpict + ' }}'; {------ Zusammenführen}

  Result := rtf;
end;
(Das ist nicht auf meinem Mist gewachsen! von mir sind nur die Kommentare und ein wenig Format)

Was die Positionierung innerhalb der RTF-Datei angeht, solltest Du Dich am besten am (Word)-Original orientieren, Vorsicht, da gibt's auch Unterschiede (Shape und Image und..) aber ich hab die Details gerade nicht zur Hand.

Nimm die HTML-Lösung, die ist einfacher in den Griff zu kriegen.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat