AGB  ·  Datenschutz  ·  Impressum  







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

Bild in TRichEdit einfügen

Ein Thema von Schwedenbitter · begonnen am 14. Mär 2010 · letzter Beitrag vom 29. Jun 2011
Antwort Antwort
Seite 1 von 3  1 23      
Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#1

Bild in TRichEdit einfügen

  Alt 14. Mär 2010, 21:55
Hallo,

ich benutze TurboDelphi und tue mich daher grundsätzlich schwer, zusätzliche Komponenten zu benutzen. Außerdem ist mein Programm mit mehreren tausend Zeilen schon fertig, so dass ich auch von daher gern bei TRichEdit bleiben möchte!

Wie bekomme ich dort ein Bild (z.B. TBitmap) hinein?

Ich habe im Netz nur Hilfen gefunden, wie man das mit fremden Komponenten machen kann. Einziger Strohhalm schien mir das hier. Davon ausgehen habe ich das probiert, was aber leider nicht klappt:
Delphi-Quellcode:
Procedure TForm1.Button1Click(Sender: TObject);
Var
   Bild : TImage;
Begin
   Bild:=TImage.Create(nil);
   Try
      Bild.Picture.Bitmap.LoadFromFile('test.bmp');
      RichEdit1.InsertControl(Bild);
   Finally
      Bild.Free;
   End;
End;
Kann mir bitte jemand helfen?

Gruß, Alex
Alex Winzer
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Bild in TRichEdit einfügen

  Alt 14. Mär 2010, 21:56
Das geht beim normalen TRichEdit nicht in älteren Delphi-Versionen. Das RichEdit von der JVCL würde das können, aber das kannst du ja nicth in der kostenlosen TurboDelphi-Version installieren. Müsstest das also per Code anlegen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Bild in TRichEdit einfügen

  Alt 14. Mär 2010, 22:06
Hallo Bernhard

Zitat von Bernhard Geyer:
... Müsstest das also per Code anlegen.
Das war mir schon (fast) selbst klar.
Zum einen habe ich in der Online-Hilfe keine Funktion gefunden, die mir hilfreich schien und zum anderen wurde das beim Suchen im Netz immer absehbarer.

Kann mir da jemand irgend welche Code-Vorschläge machen?
Hast das mit dem Stream (Siehe mein Link oben) schon einmal jemand probiert?


[EDIT]Gibt es irgendwo eine Anleitung, wie man Code von Visual C ++ nach Delphi übersetzt? Falls ja, dann könnte das hier mir und ggf. anderen helfen.[/EDIT]

Gruß, Alex
Alex Winzer
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#4

Re: Bild in TRichEdit einfügen

  Alt 15. Mär 2010, 09:49
Ich denke, Bernhard meint, dass Du die JVCL "installieren" sollst, d.h. bei TDE: Such-/Bibliothekspfad erweitern. Dann kannst Du die benötigten Komponenten per Code erzeugen und entsprechend initialisieren.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Bild in TRichEdit einfügen

  Alt 16. Mär 2010, 09:53
Hallo DeddyH,

es muss auch mit dem stink normalen TRichEdit funktionieren. Ich zitiere dazu nochmal meinen Link aus dem ersten Post wie folgt:
Zitat:
After quite a bit of searching the net, I found that there was no easy way to insert an image into a RichEdit. Inserting a bitmap as an object worked well enough, but the user can still open it up and edit it, and the image had to be an existing file ...
Der Fettdruck ist von mir. My english is not so good, but wenn ich das oben lese, dann scheint es zu klappen. Der Poster bemängel doch "nur", dass der Benutzer Änderungen vornehmen kann. Das wäre mir egal, wenn ich nur das Bild angezeigt bekäme.

TRichEdit bietet nun 4 in Betracht kommende Möglichkeiten:
  • Procedure InsertComponent();
  • Procedure InsertControl();
  • Function Lines.AddObject();
  • Procedure Lines.InsertObject();
Die ersten beiden Varianten will mein Compiler nicht; auch ein Cast (ausgehend von TBitmap) funktioniert bei mir nicht. TImage kann ich einfügen, bekomme es aber nicht angezeigt.
Bei den zweiten beiden Varianten, scheint es zu klappen. Nur sehe ich - ehrlich gesagt hatte ich auch nichts anderes erwartet - statt des Bildes nur den Text...

Ich habe bereits versucht, mich auf den delphipages anzumelden. Das hat mehr oder weniger auch geklappt. Ich kann mich einloggen. Aber da ich keine Mail zum Bestätigen bekommen habe, kann ich nichts posten

Mit den vorgeschlagenen Komponenten ist das so eine Sache. Ich hatte ja bereits geschrieben, dass mein Programm steht. Ich müsste dann wegen der einen Komponente meinen funktionieren Code abändern. Das tue ich nur sehr sehr ungern.

Ich brauchte also noch immer Hilfe.

Gruß, Alex
Alex Winzer
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Bild in TRichEdit einfügen

  Alt 16. Mär 2010, 10:01
Zitat von Schwedenbitter:
es muss auch mit dem stink normalen TRichEdit funktionieren. Ich zitiere dazu nochmal meinen Link aus dem ersten Post wie folgt:
Zitat:
After quite a bit of searching the net, I found that there was no easy way to insert an image into a RichEdit.
Nö, muss es nicht. Unten spricht er von RxRichEdit und RichTextBox.

Der mitgelieferte Wrappre von TRichEdit geht um eine alte Version des Win32-Controls und das ist AFAIK der Grund wieso Bilder nicht unterstützt werden.
Lade doch mal ein vorhandenes RTF mit Bild. Es wird int TRichEdit nicht sichtbar sein. Also wirst du per Code auch keine sichtbar hinzufügen können.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Bild in TRichEdit einfügen

  Alt 16. Mär 2010, 10:22
Vielleicht funktioniert folgender Umweg:

- dynamisch ein TImage erstellen
- Bitmap ins TImage laden
- TImage per "InsertControl()" dem RichEdit zuweisen.

Aber ob das geht, weiß ich nicht.
  Mit Zitat antworten Zitat
Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Bild in TRichEdit einfügen

  Alt 16. Mär 2010, 10:35
@ Matze
Zitat von Matze:
Aber ob das geht, weiß ich nicht.
Eine sehr gute Idee , die ich auch schon probiert hatte und die leider nicht klappt .

@Bernhard Geyer
Stimmt - leider. Ich habe eine rtf-Datei mit Bild und Text geladen. Der Text wird angezeigt, das Bild nicht. Schade dass niemand schon eher auf diese "Beweisführung" gekommen ist, das hätte mir eine Menge Zeit und Tüftelei erspart.
Wo finde ich nochmal die unit(s) nur mit der / für die Komponente, die ich brauche? Ich würde mir nur ungern die Gesamte Bibliothek runterladen und dann womöglich ewig nach der Komponente suchen...

Gruß, Alex
Alex Winzer
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

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

Re: Bild in TRichEdit einfügen

  Alt 16. Mär 2010, 11:11
Hallo zusammen,

ich hab ein wenig gespielt:
eine RTF-Datei mit Word erstellt (mit Bild),
In einen Richtext geladen (LoadfromFile)
eine weitere Zeile hinten dran gepackt (Lines.Add)
in anderer Datei gespeichert (SavetoFile)

und siehe da, das Bild ist weg;

Was aber auch durch die RTF-Definition gestützt wird. Der RTF-Interpreter darf, was er nicht kennt ignorieren, und das Delphi-RTF (Turbo/D2006) scheint keine Bilder zu kennen.

Wenn es reicht in die Ausgabe ein Bild zu packen, dann ist der Link aus #1 ein ganz guter Ausgangspunkt.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Bild in TRichEdit einfügen

  Alt 16. Mär 2010, 11:22
Zitat von Schwedenbitter:
Wo finde ich nochmal die unit(s) nur mit der / für die Komponente, die ich brauche? Ich würde mir nur ungern die Gesamte Bibliothek runterladen und dann womöglich ewig nach der Komponente suchen...
Die einzelnen Units gibt's im SVN der JVCL (JvRichEdit.pas).
Du wirst allerdings weitere Units benötigen, wie die Uses-Liste der JvRichEdit.pas zeigt:

Delphi-Quellcode:
uses
  JVCLVer, JvExStdCtrls;
Die JVCLVer.pas benötigt wiederum:

Delphi-Quellcode:
uses
  JclUnitVersioning;
...

Entweder du klickst dich da durch und sucht alles nötige heraus oder du installierst die gesamte JVCL (wobei diese evtl. etwas überteieben ist, wenn du nur das RichEdit benötigst).

Grüße, Matze
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 12:26 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