Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Erstellen einer TRichEdit Komponente (https://www.delphipraxis.net/137774-erstellen-einer-trichedit-komponente.html)

HolgerCW 28. Jul 2009 15:06


Erstellen einer TRichEdit Komponente
 
Hallo zusammen,

wie erstelle ich im Code eine TRichEdit-Komponente.

Was muss als Parameter bei:

Delphi-Quellcode:
var
 MeinRE_Text: TRichEdit;
begin
 MeinRE_Text := TRichEdit.Create(???);
end;
rein ?

Brauche die Komponente nur um Sie an eine Funktion zu übergeben.

Gruss

Holger

DeddyH 28. Jul 2009 15:14

Re: Erstellen einer TRichEdit Komponente
 
Das Control, das als Owner für die Freigabe des RichEdit zuständig sein soll (kann auch nil sein, aber dann musst Du händisch freigeben).

HolgerCW 28. Jul 2009 15:15

Re: Erstellen einer TRichEdit Komponente
 
Zitat:

Zitat von DeddyH
(kann auch nil sein, aber dann musst Du händisch freigeben).

Vielen dank. Wie gebe ich denn händisch frei ?

DeddyH 28. Jul 2009 15:18

Re: Erstellen einer TRichEdit Komponente
 
Mit Free bzw. FreeAndNil.
Delphi-Quellcode:
RE := TRichEdit.Create(nil);
try
  //Mach was mit dem RichEdit
finally
  RE.Free;
  //oder FreeAndNil(RE);
end;

HolgerCW 28. Jul 2009 15:24

Re: Erstellen einer TRichEdit Komponente
 
Du meinst zum Schluss händisch frei geben ?

Wenn ich nämlich folgendes tue:

Delphi-Quellcode:

MeinRE_Text := TRichEdit.Create(nil);
MeinRE_Text.Lines.Insert(0,'Test');
kommt die Meldung: "hat kein übergeordnetes Fenster"

Gruss

Holger

DeddyH 28. Jul 2009 15:39

Re: Erstellen einer TRichEdit Komponente
 
Delphi-Quellcode:
MeinRE_Text := TRichEdit.Create(nil);
MeinRE_Text.Parent := self; //Parent setzen
MeinRE_Text.Lines.Insert(0,'Test');

Lannes 28. Jul 2009 15:48

Re: Erstellen einer TRichEdit Komponente
 
Hallo,
Zitat:

Zitat von HolgerCW
Brauche die Komponente nur um Sie an eine Funktion zu übergeben.

wenn ich mal fragen darf, was macht die Funktion mit dem übergebenem RichEdit?

DeddyH 28. Jul 2009 15:49

Re: Erstellen einer TRichEdit Komponente
 
Ich kann nur vermuten, dass es um RTF geht.

Lannes 28. Jul 2009 16:01

Re: Erstellen einer TRichEdit Komponente
 
Hallo,

hätte ich jetzt nicht gedacht :mrgreen:

Wenn nur die internen Funktionalitäten des RichEdit genutzt werden sollen würde ich eine unsichtbares(virtuelles) RichEdit nutzen.

Delphi-Quellcode:
// war mal in einem Thread ein Vorschlag von marabu
FVirtualRE := TRichEdit.CreateParented(THandle(-3));
damit kann man alles veranstalten, z.B.auch per SelAttributes RTF-Code verändern, RTF drucken etc.

DeddyH 28. Jul 2009 16:08

Re: Erstellen einer TRichEdit Komponente
 
Das ist natürlich die elegantere Methode, aber ich wollte zumindest die Ausgangsfrage beantworten :mrgreen:

Ralf Kaiser 28. Jul 2009 17:28

Re: Erstellen einer TRichEdit Komponente
 
Zitat:

Zitat von Lannes
Delphi-Quellcode:
// war mal in einem Thread ein Vorschlag von marabu
FVirtualRE := TRichEdit.CreateParented(THandle(-3));

Nur mal aus Interesse: Was ist "-3"?

Ich würde an der Stelle etwas wie "GetDesktopWindow" nehmen (man braucht ja eigentlich ein gültiges Handle, hab ich zumindest gedacht)

Lannes 28. Jul 2009 18:49

Re: Erstellen einer TRichEdit Komponente
 
Hallo,

:arrow: message-only window
Wenn du den Link verfolgst wirst Du ausreichende Informationen bekommen.

Ralf Kaiser 28. Jul 2009 19:24

Re: Erstellen einer TRichEdit Komponente
 
Danke für die Info. Das wusste ich noch nicht (man lernt eben nie aus... :thumb: )

HolgerCW 29. Jul 2009 11:18

Re: Erstellen einer TRichEdit Komponente
 
Vielen dank für Eure Hilfen.

So funktioniert es.

Gruss

Holger


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