Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   RxRichEdit und InserControl (https://www.delphipraxis.net/172568-rxrichedit-und-insercontrol.html)

runningsoft 11. Jan 2013 12:34

Delphi-Version: 2010

RxRichEdit und InserControl
 
Hallo zusammen,

ich füge mit folgendem Code ein Bild in ein RxRichEdit ein:

Delphi-Quellcode:
//die Grafik als Control einfügen
   HIMG := TImage.Create(nil);
   with HIMG do
      begin
      Stretch := False;
      Proportional := True;
      width := 113;
      Height := 113;
      Left := RxRichEdit1.Left;
      Top := RXRichEdit1.Top;
      Picture.LoadFromFile(InstPath + 'anlagelogo.bmp');
      end;
   RXRichEdit1.InsertControl(HIMG);
Leider "verschwindet" dadurch jeglicher Text im RichEdit. Ich sehe nur noch den Cursor, aber keine Zeichen mehr. Lasse ich die Prozedur weg, ist alles bestens.

Weiß jemand Rat?

Steffen

p80286 11. Jan 2013 12:51

AW: RxRichEdit und InserControl
 
Hatest Du diesen Hinweis schon gelesen?

Gruß
K-H

runningsoft 11. Jan 2013 13:08

AW: RxRichEdit und InserControl
 
Diesen Code kannte ich schon, aber er bringt mich bei meinem speziellen Problem nicht weiter. Das Einfügen einer Grafik in das RichEdit ist an sich nicht das Problem.

Ich möchte für eine Kopfzeile eines Serienbriefes folgendes erreichen:

Links ein Logo, ca. 3x3 cm groß
rechts vom Logo einen dreizeiligen Text mit Name und Anschrift des Vereins

Das Problem im RXRichEdit sind die drei Zeilen rechts neben dem Logo. Das RichEdit arbeitet offenbar ausschließlich zeilenbasiert und lässt einen mehrzeiligen Text neben einer Grafik (so wie in Word bei entsprechender Formatierng der Grafik) nicht zu.

Für die Darstellung des geplanten WYSIWYG-Editors bin ich dann auf die Idee gekommen, drei Zeilen Text mit der benötigten Einrückung zu schreiben und dann in die entstandene Lücke per InsertControl das Logo einzufügen.

Ohne InsertControl ist alles bestens, aber sobald ich ein Control einfüge (hab ich auch testweise mal mit einem Button probiert), verschwindet die Schrift, die ich schon vorher geschrieben hatte. Allerdings ist sie nur optisch im RichEdit verschwunden, alle Formatierungsinformationen der nicht mehr sichtbaren Schrift sind noch da.

Steffen

Klaus01 11. Jan 2013 13:21

AW: RxRichEdit und InserControl
 
.. wenn Du ein rtf mit z.B. word erstellst (mit Image und Text).
Kannst dieses dann in das TRichEdit laden und ist dann alles sichtbar (Image und Text)?

Edit: vielleicht hilft Dir das von Torry

Grüße
Klaus

runningsoft 11. Jan 2013 13:39

AW: RxRichEdit und InserControl
 
Das gewünschte Dokument mit Word erstellt --> als RTF-abgespeichert --> wieder in Word geöffnet = alles super

Das gleiche Dokument im RXRichEdit geöffnet --> die Grafik ist weg, Textformatierung ist erhalten geblieben.

Wie schon gesagt, das Problem ist nicht das Einfügen einer Grafik im RichEdit, das geht. Aber diese Grafik über mehrere Textzeilen hinweg einzufügen, das geht wohl leider nicht.

Und dann bleibt immer noch die Frage, wieso ein InsertControl im RXRichEdit (egal was für ein Control), den Text unsichtbar werden lässt.

Steffen

Klaus01 11. Jan 2013 13:43

AW: RxRichEdit und InserControl
 
es mag sein, dass die Wrapperklasse das nicht so richtig unterstützt.

In diesem Thread wird auf die Verwendung der RichEditkomponente von JVCL hingewiesen.

Grüße
Klaus

runningsoft 11. Jan 2013 13:55

AW: RxRichEdit und InserControl
 
Kann diese Komponente das?

Klaus01 11. Jan 2013 14:04

AW: RxRichEdit und InserControl
 
Zitat:

Zitat von runningsoft (Beitrag 1198655)
Kann diese Komponente das?

weiß ich nicht, aber Du kannst es einfach ausprobieren.
In der Demo ist ein RichEdit vorhanden, dort kannst Du Dein rtf File laden.
Wenn es funktionert - gut, wenn nicht - dann weiß ich auch nicht weiter.

Grüße
Klaus

sx2008 11. Jan 2013 14:06

AW: RxRichEdit und InserControl
 
InsertControl fügt das Control nicht in die RTF-Daten ein sondern macht etwas völlig anderes.
Nimmt man z.B. eine Groupbox, dann kann man darauf weitere Controls wie TLabel, TEdit,... platzieren.
Entweder man nimmt dazu den Formulardesigner oder man verwendet die Funktion InsertControl oder man setzt das Parent-Property.
Statt
Delphi-Quellcode:
RXRichEdit1.InsertControl(HIMG)
hätte man auch
Delphi-Quellcode:
HIMG.Parent := RXRichEdit1
schreiben können; der Effekt ist der Gleiche.

runningsoft 11. Jan 2013 14:15

AW: RxRichEdit und InserControl
 
@Klaus01
Ja, hab mir die Demo gerade schon heruntergeladen. Sieht aber nicht so aus. Bezüglich der Bilder kann ich keine Veränderung gegenüber dem bisher von mir verwendeten RXRichEdit feststellen.


@sx2008
Stimmt, der Effekt ist der gleiche.
Delphi-Quellcode:
HIMG.Parent := RXRichEdit1
hatte ich auch schon. Aber warum verschwindet der Text? Es kann doch nicht gewollt sein, dass es die Möglichkeit gibt, Kontrolls einzufügen mit dem Resultat, dass man den text nicht mehr sieht.

Das der Bildinhalt des Kontrolls nicht in der RTF-Datei mitgespeichert wird, war mir klar. Mir geht es erst einmal nur um die gewünschte Bildschirmanzeige im Editorfenster.
Das Abspeichern der Bildinformation sowie das Drucken an der richtigen Stelle würde ich dann gesondert behandeln.


Steffen


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:44 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