![]() |
.Lines in einer geerbten TRichEdit ändern
also ich hab folgendes problem:
ich will eine Komponente von TRichEdit ableiten welche zwar die funktion Lines.Add hat diese aber nicht normal ausführt (also override) sondern stadessen eine eigene. soweit bin ich bereits:
Delphi-Quellcode:
so die is jetzt auf den ersten blick ein bischen unnötig aber das wird natürlich geändert ;)
unit TestStrings;
interface uses SysUtils, Classes, Controls, StdCtrls, ComCtrls, Dialogs; type TTestStrings = class(TStrings) private { Private-Deklarationen } protected { Protected-Deklarationen } public function Add(const S:string): integer; override; { Public-Deklarationen } published { Published-Deklarationen } end; implementation function TTestStrings.Add(const S:string): integer; override; begin showmessage(S); end; end. jedenfalls ist mein Problem jetzt wie ich meine Frischerzeugte Klasse jetzt in meine geerbte TRichEdit einfüge als ERSATZ für Lines es soll aber natürlich alle eigenschaften und AUSWIRKUNGEN haben wie ein normales Lines nur das es eben statt Add mein showmessage macht. kann mir das jemand erklären? mfG Green |
Re: .Lines in einer geerbten TRichEdit ändern
Hallo Green,
so Forum gewechselt? So überlädst du die Eigenschaft Lines:
Delphi-Quellcode:
unit MyRichEdit;
interface uses SysUtils, Classes, Controls, StdCtrls, ComCtrls; type TMyStringList = class( TStringlist) end; TMyRichEdit = class(TRichEdit) private { Private-Deklarationen } FMyLines: TMyStringList; protected { Protected-Deklarationen } public { Public-Deklarationen } published { Published-Deklarationen } property Lines: TMyStringList read FMyLines write FMyLines; end; procedure Register; implementation procedure Register; begin RegisterComponents('<Tabname>', [TMyRichEdit]); end; end. |
Re: .Lines in einer geerbten TRichEdit ändern
also ich hab jetzt folgende zwei Units:
RichEdit.pas
Delphi-Quellcode:
ColoredStrings.pas
unit RichEdit;
interface uses SysUtils, Classes, Controls, StdCtrls, ComCtrls; type TColoredStrings = class(TColoredStrings) end; T1RichEdit = class(TRichEdit) private { Private-Deklarationen } FMyLines: TColoredStrings; protected { Protected-Deklarationen } public { Public-Deklarationen } published { Published-Deklarationen } property Lines: TColoredStrings read FMyLines write FMyLines; end; procedure Register; implementation procedure Register; begin RegisterComponents('Beispiele', [T1RichEdit]); end; end.
Delphi-Quellcode:
als die COloredStrings sind erfolgreich Installiert aber T1RichEdit kompo erscheint einfach nicht im inspektor und ich find kein Fehler
unit ColoredStrings;
interface uses SysUtils, Classes, Controls, StdCtrls, ComCtrls, Dialogs; type TColoredStrings = class(TStrings) private { Private-Deklarationen } protected { Protected-Deklarationen } public function AddLines(const S:string): integer; { Public-Deklarationen } published { Published-Deklarationen } end; implementation function TColoredStrings.AddLines(const S:string): integer; begin showmessage(S); end; end. mfG Green p.s. bin der von delphi-forum.de ^^ |
Re: .Lines in einer geerbten TRichEdit ändern
Findest du Die Komponente T1RichEdit unter Beispiele?
Füge doch den Inhalt der Unit ColoredStrings in die, des Richedits ein. |
Re: .Lines in einer geerbten TRichEdit ändern
also das problem is das ich T1RichEdit NICHT in der Kat. 'Beispiele' finde, aber was meinst du mit einfügen??
|
Re: .Lines in einer geerbten TRichEdit ändern
also hab mal mit folgendem Code probiert:
Delphi-Quellcode:
Installiert, aber nix...
unit RichEdit;
interface uses SysUtils, Classes, Controls, StdCtrls, ComCtrls, Dialogs; type TColoredStrings = class(TStrings) private { Private-Deklarationen } protected { Protected-Deklarationen } public function AddLines(const S:string): integer; { Public-Deklarationen } published { Published-Deklarationen } end; T1RichEdit = class(TRichEdit) private { Private-Deklarationen } FMyLines: TColoredStrings; protected { Protected-Deklarationen } public { Public-Deklarationen } published { Published-Deklarationen } property Lines: TColoredStrings read FMyLines write FMyLines; end; procedure Register; implementation procedure Register; begin RegisterComponents('Beispiele', [T1RichEdit]); end; function TColoredStrings.AddLines(const S:string): integer; begin showmessage(S); end; end. |
Re: .Lines in einer geerbten TRichEdit ändern
So hatte ich gemeint, Der Namen der Unit ist vielleicht noch ungeschickt, aber eigentlich sollte es so gehen. Ein Fehler kommt nicht? Welche Meldung liefert sie IDE nach dem Installieren?
|
Re: .Lines in einer geerbten TRichEdit ändern
das das package installiert wurde, es stehen aber keine kompos die da installiert wurden
|
Re: .Lines in einer geerbten TRichEdit ändern
Komisch, ich habe die Methode AddLines in mein Beispiel hinzugefügt und das Package neu compiliert. In einer Demoanwendung kann man nun adie zusätzliche Methode auch verwenden.
Deinstalliere das Package mal und installiere es neu. |
Re: .Lines in einer geerbten TRichEdit ändern
blöde frage aber wo kann ich ein package deinstallieren?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz