Delphi-PRAXiS

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 TCustomGrid - abstrakter Fehler (https://www.delphipraxis.net/113206-tcustomgrid-abstrakter-fehler.html)

haentschman 4. Mai 2008 16:51


TCustomGrid - abstrakter Fehler
 
beim Erzeugen eines TCustomGrids kommt folgender Fehler:
Zitat:

Abstrakter Fehler
- nehme ich TStringGrid ( was auch von TCustomGrid abgeleitet ist ) ist alles i.O.
Delphi-Quellcode:
type
  TDMPlaner = class(TPanel)
  private
    { Private-Deklarationen }
    PGrid: TCustomGrid;

  protected
    { Protected-Deklarationen }
  public
    { Public-Deklarationen }
    constructor Create(aOwner: TComponent); override;
    procedure Paint; override;

  published
    { Published-Deklarationen }
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('DMPlaner', [TDMPlaner]);
end;

{ TDMPlaner }

// Create
constructor TDMPlaner.Create(aOwner: TComponent);
begin
  inherited;
  Height:= 400;
  Width:= 600;
  Color:= clSilver;
  PGrid:= TCustomGrid.Create(self);
  PGrid.Parent:= self;
  PGrid.Align:= alBottom;
end;
:?: Was ist ein Abstrakter Fehler ? Was habe ich vergessen ?

marabu 4. Mai 2008 17:00

Re: TCustomGrid - abstrakter Fehler
 
Hallo,

Klassen mit abstrakten Methoden sollst du nicht instanzieren. Du kannst sie für eigene Ableitungen benutzen.

Freundliche Grüße

mkinzler 4. Mai 2008 17:03

Re: TCustomGrid - abstrakter Fehler
 
In Delphi ist das zwar im Unterschied zu anderen Sprachen möglich, sollte aber nicht genutzt werden

haentschman 4. Mai 2008 17:04

Re: TCustomGrid - abstrakter Fehler
 
Danke für die Info.

ich hatte anhand eines Beispieles aus dem Entwicklerhandbuch auch probiert die gesamte Komponente von TCustomGrid abzuleiten.

Delphi-Quellcode:
TDMPlaner = class(TCustomGrid)
... da hatte ich den gleichen Fehler. Nur kann ich das nicht einordnen. :(

PS: das ganze hat noch keinen tieferen Sinn...ich probiere erst einmal herum (was funktioniert wie :wink: )

Khabarakh 4. Mai 2008 17:25

Re: TCustomGrid - abstrakter Fehler
 
Zitat:

Zitat von haentschman
... da hatte ich den gleichen Fehler. Nur kann ich das nicht einordnen. :(

Nur durch Ableiten wird eine abstrakte Klasse noch lange nicht konkret ;) . Du musst schon alle abstrakten Methoden überschreiben, denn die lösen ja die Exception aus, wenn sie aufgerufen werden. Oder du benutzt eben die Implementationen von TStringGrid, indem du von dieser Klasse ableitest.

haentschman 4. Mai 2008 17:45

Re: TCustomGrid - abstrakter Fehler
 
Zitat:

Du musst schon alle abstrakten Methoden überschreiben
... d.h. ich müßte alle Methoden noch einmal deklarieren

Zitat:

Die abstrakte Gitterkomponente TCustomGrid stellt eine große Anzahl von Eigenschaften
bereit, die als protected deklariert sind. Sie können festlegen, welche dieser
Eigenschaften für die Benutzer des Kalenders verfügbar sein sollen.
Zu diesem Zweck müssen Sie die betreffenden Eigenschaften im published-Abschnitt
der Komponentendeklaration redeklarieren.
...wer lesen kann ist klar im Vorteil :oops:

Danke trotzdem :hi:

tomsel 4. Mai 2008 17:51

Re: TCustomGrid - abstrakter Fehler
 
Zitat:

Zitat:
Die abstrakte Gitterkomponente TCustomGrid stellt eine große Anzahl von Eigenschaften
bereit, die als protected deklariert sind. Sie können festlegen, welche dieser
Eigenschaften für die Benutzer des Kalenders verfügbar sein sollen.
Zu diesem Zweck müssen Sie die betreffenden Eigenschaften im published-Abschnitt
der Komponentendeklaration redeklarieren.


...wer lesen kann ist klar im Vorteil
Das ist aber ein anderes Thema :zwinker:

tomsel 4. Mai 2008 17:53

Re: TCustomGrid - abstrakter Fehler
 
Zitat:

... d.h. ich müßte alle Methoden noch einmal deklarieren

Jepp, alle abstrakten Methoden in deiner abgeleiten Klasse neu deklarieren (override) und implementieren.


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