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 2 von 3     12 3      
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#11

Re: Bild in TRichEdit einfügen

  Alt 16. Mär 2010, 10:26
Irgendwo habe ich mal gelesen, das RichEdit eine ActiveX Steuerelement ist und man die aktuelle Variante mit einem ActiveX-Import nutzten kann. Aber frag mich nicht wo das stand (oder ob das stimmt)
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat
Schwedenbitter

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

Re: Bild in TRichEdit einfügen

  Alt 16. Mär 2010, 10:50
Erstmal Danke an alle Antwortenden!

Zitat von Matze:
...
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).
Ich werde mich dann wohl durchklicken müssen. Denn bei TurboDelphi kann ich keine Fremdkomponenten installieren.

Zitat von p80286:
Wenn es reicht in die Ausgabe ein Bild zu packen, dann ist der Link aus #1 ein ganz guter Ausgangspunkt.
Die Ergebnisse bei Deinem Spiel hatte ich ja leider auch schon. Das ist ja das Problem.
Es reicht mir auch, das Bild nur in die Ausgabe zu packen. Wenn Du mir also sagen kannst, wie ich das mit dem Hinweis aus meinem Link schaffen kann, dass wäre das einfach grandios! Ich komme damit eben leider nicht weiter. Da ich den Link vor meinem ersten Post hatte, würde es diesen sonst nicht geben.

Nur zur Erklärung:
Ich habe ein Chat-Programm geschrieben. In diesem benutze ich sowieso schon farbige Kodierungen für Kopfzeilen wie "Sie schrieben an ...", "... schrieb am ... um ..." usw. Schön wäre es nur, wenn man so etwas wie Smilies einbauen könnte. Und genau hier komme ich eben nicht weiter...

Gruß, Alex
Alex Winzer
  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
 
#13

Re: Bild in TRichEdit einfügen

  Alt 16. Mär 2010, 10:57
Hier mal ein ganz anderer Ansatz. So würde ich es vermutlich machen:

Du könntest eine Browser-Komponente (EmbeddedWB, TWebBrowser, TMozillaBrowser, ...) für die Ausgabe nutzen. Flexibler als damit wirst du wohl nie sein.

Bei jedem Hinzufügen änderst du den HTML-Code:

Code:
<div>
    <h1 style="color: #FF0000, font-size: ...">Geschrieben von ...</h1>
    Chat-Text [img]./smilies/smile.gif[/img] ...
</div>
oder so in der Art. Das hat auch den Vorteil, dass du alle gängigen Grafikformate unterstützt etc. pp.
Du müsstest die Smiley-Codes dann durch <img ... /> ersetzen.

Grüße, Matze
  Mit Zitat antworten Zitat
Schwedenbitter

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

Re: Bild in TRichEdit einfügen

  Alt 16. Mär 2010, 13:19
Hallo,

die Idee mit dem TWebBrowser hat etwas für sich:

Ich sitze jetzt schon ewig daran, die Units für dir JvRichEdit.pas zu isolieren und in (m)ein Projekt-Verzeichnis zu kopieren. Das Problem ist aber, dass ich auch nach langem Suchen eine (möglicherweise später auch mehr) Datei nicht finden kann. Konkret geht es um die jcld10.inc. Und ohne die geht es nicht weiter...

Wenn ich Dich richtig verstehe, dann ändere ich die html-Seite und mache einfach ein reload?
Das setzt aber voraus, dass ich die Seite dann immer erstelle. Oder gibt es eine (mir unbekannte) Möglichkeit, html-Code dynamisch im Speicher oder gleich im Speicherbereich des TWebBrowser zu erzeugen?

Gruß, Alex
Alex Winzer
  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
 
#15

Re: Bild in TRichEdit einfügen

  Alt 16. Mär 2010, 13:33
Ich sehe auf Anhieb nur die jcl.inc. Die jcld10.inc (falls es die gibt) müsste auch irgendwo im JCL-Verzeichnis sein (nicht im JVCL-Verzeichnis).

Ich meine, dass es schon Themen bzgl. des Veränderns von HTML-Code hier gab. Suche einfach mal danach. Wirst du nicht fündig, dann erstelle bitte ein separates Thema, in dem du fragst, wie das funktioniert.
  Mit Zitat antworten Zitat
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, 13: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
Grolle

Registriert seit: 5. Nov 2004
Ort: Coesfeld
1.268 Beiträge
 
Delphi 2010 Professional
 
#17

Re: Bild in TRichEdit einfügen

  Alt 16. Mär 2010, 14:54
Hallo,
du könntest dir alternativ die HTML Controls von TMS ansehen, Für deinen Zweck sind die perfekt. Ich nutze diese auch für dynamischen Content. Infos z. B. hier ....

Viele Grüße ...

  Mit Zitat antworten Zitat
Schwedenbitter

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

Re: Bild in TRichEdit einfügen

  Alt 16. Mär 2010, 15:15
Zitat von p80286:
Hier noch kurz zum Link aus #1
Den Code hatte ich bei mir bereits optimiert am Laufen. Wenn ich das einfügte und die rtf-Datei sofort speicherte, dann sah ich das Bild, wenn es z.B. mit dem WordPad von M$ geöffnet wurde. Daher hatte ich mich dann quasi in diese "Lösung" verbissen.

html hat aber auch einen entscheidenden Vorteil: Es spart Platz. Bei BitmapToRTF(); werden die Bildpunkte de facto als menschenlesbare Zahlenpaare gespeichert. Das kostet schon für jedes einzelne Bild immens Speicher und wenn dann mehr dabei sind eben mehr ... Ich hatte für meine Tests ein 125 KB Bild (bmp) genommen, wodurch die rtf-Datei nachher ca. 300 KB groß wurde. Da ich aber nur Smilies wollte, hatte ich mich auch damit schon abgefunden.

Mache mich jetzt auf die Suche nach einer Möglichkeit mit html, was mit TRichEdit wohl tatsächlich nichts mehr zu tun hat.

Danke an dieser Stelle schon einmal an alle Mithelfenden, auch wenn neue Ideen immer willkommen sind!

Gruß, Alex
Alex Winzer
  Mit Zitat antworten Zitat
Schwedenbitter

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

AW: Re: Bild in TRichEdit einfügen

  Alt 27. Jun 2011, 21:00
Ich antworte mir hier mal selber.
Das Problem habe ich jetzt etwas unorthodox gelöst. Hierzu benutze ich den Font 'Emoticons' von hier. Wenn dann jemand z.B. : - ) eingibt, wird diese Zeichenfolge durch das entsprechende Zeichen aus diesem und nebst diesem Font ersetzt. Lediglich Farbe kann er und damit auch meine Lösung nicht bieten. Aber vermutlich wäre das auch nur eine Frage, ob man das nicht mit einem Fonteditor noch nachholen könnte.

Anbei der Quelltext nebst exe zum Probieren für geneigte Leser ...

Gruß, Alex
Angehängte Dateien
Dateityp: zip Emoticons_p.zip (171,8 KB, 30x aufgerufen)
Alex Winzer
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.153 Beiträge
 
Delphi 12 Athens
 
#20

AW: Bild in TRichEdit einfügen

  Alt 27. Jun 2011, 22:35
Man kann den Internet Explorer / TWebBrowser die Bilddatan auch direkt im src-Attribut mitgeben oder man gibt im einen ResourceLink, womit er de Dilddatei direkt aus den EXE-Resourcen (oder irgendeiner anderen EXE/DLL) rauslesen kann.

Die Bilddateien muß man jedenfalls nicht direkt/einzeln auf der Platte rumliegen haben.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 08:52 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