Delphi-PRAXiS
Seite 1 von 10  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi .Lines in einer geerbten TRichEdit ändern (https://www.delphipraxis.net/71245-lines-einer-geerbten-trichedit-aendern.html)

Green 11. Jun 2006 20:28


.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:
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.
so die is jetzt auf den ersten blick ein bischen unnötig aber das wird natürlich geändert ;)
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

mkinzler 11. Jun 2006 20:49

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.

Green 11. Jun 2006 21:18

Re: .Lines in einer geerbten TRichEdit ändern
 
also ich hab jetzt folgende zwei Units:

RichEdit.pas
Delphi-Quellcode:
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.
ColoredStrings.pas
Delphi-Quellcode:
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.
als die COloredStrings sind erfolgreich Installiert aber T1RichEdit kompo erscheint einfach nicht im inspektor und ich find kein Fehler


mfG Green

p.s. bin der von delphi-forum.de ^^

mkinzler 11. Jun 2006 21:21

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.

Green 11. Jun 2006 21:25

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??

Green 11. Jun 2006 21:27

Re: .Lines in einer geerbten TRichEdit ändern
 
also hab mal mit folgendem Code probiert:
Delphi-Quellcode:
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.
Installiert, aber nix...

mkinzler 11. Jun 2006 21:30

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?

Green 11. Jun 2006 21:33

Re: .Lines in einer geerbten TRichEdit ändern
 
das das package installiert wurde, es stehen aber keine kompos die da installiert wurden

mkinzler 11. Jun 2006 21:41

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.

Green 11. Jun 2006 21:47

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 01:48 Uhr.
Seite 1 von 10  1 23     Letzte »    

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