![]() |
Re: Leere Klasse von einer anderen abgeleitet
hallo nochmal,
habe jetzt den Constructor in TWaregroup eingefügt
Code:
und in TBWData habe ich ebenfalls den Constructor direkt nach "Begin" um Inherited ergänzt und ich erhalte immernoch den selben FEHLER
TWareGroup.create(TheStructure:TBWTable;Path:String);
begin inherited create(TheStructure,Path)//ruft nach meinem Verständnis den Constructor in TBWData auf end; Übrigens da ich unter Linux am Netz hänge und ich den Code von Hand eintrage bitte ich den Fehler bei meiner letzten Nachricht zu entschuldigen. Grüße Bigeddie |
Re: Leere Klasse von einer anderen abgeleitet
Nachdem Flocke und ich uns jetzt darauf geeinigt haben, beide halb Unrecht zu haben :-D :zwinker:
Daran die Zuweisung beim Constructor-Aufruf noch nachzutragen hast du gedacht, oder? Zitat:
Und dass du den Konstruktor von TBWData nach deinen Angaben so aufrufen kannst wundert mich ehrlich gesagt etwas. |
Re: Leere Klasse von einer anderen abgeleitet
habe jetzt die halbe nach damit verbracht die Variablen in TBWData beim Constructoraufruf von TWaregroup zu überprüfen.
Wwenn ich direkt mit einer Instanz von TBWData arbeite, so ist der Wert von FDatastructure von der Zuweisung des Pointers NIL und enthält nach der Zuweisung den Pointer des übergebenen Objekts. Mache ich das mit einer Instanz von TWaregroup, so ist der Wert von FDataStructure vor der Zuweisung Anzeige in der Watchlist
Code:
kann es vielleicht damit zusammenhängen?
FDatastructur = Nicht verfügbarer Wert
|
Re: Leere Klasse von einer anderen abgeleitet
Vielleicht solltest nochmal den aktuellen Quelltext posten.
|
Re: Leere Klasse von einer anderen abgeleitet
hier nochmal der Deklarationsteil der Klasse TBWData:
Code:
der Deklarationsteil der Klasse TWaregroup
TBWData = Class(TObject)
Private FDataStructure: TBWTable; DatStrings: Tlist; Procedure SetDataStructure(Const Value: TBWTable); Published Property DataStructure: TBWTable Read FDataStructure Write SetDataStructure; // Constructor create(TheStructure: TBWTable; Path: String); Overload; Function GetLine(Number: word): String; Function Count: Integer; Function GetFieldContent(FieldName: String; LineNumber: Word): String; Function GetFieldContentwhereFieldIncl(InclField: String; InclContent: String; FieldName: String): TStringlist; Overload; Function GetColumn(FieldName: String): TStringList; Function GetLinesWhereFieldContains(FieldName: String; ContString: String): Tlist; Public Function GetFieldContentwhereFieldIncl(InclField: Word; InclContent: String; Fieldnr: word): TStringlist; Overload; Constructor create(TheStructure: TBWTable; FieldList: TList); Overload; Constructor create(TheStructure: TBWTable; Path: String); Overload; End;
Code:
und die constructoren:
twaregroup = class(TBWData)
public constructor create(TheStructure: TBWTable; Path: String); end;
Code:
und der Fehler ist immernoch der gleiche
Constructor TBWData.create(TheStructure: TBWTable; Path: String);
Var Buffer: TStringList; i: integer; DatLine: TDatLine; Begin inherited Create; DataStructure := TheStructure; DatStrings := Tlist.Create; Buffer := TStringlist.Create; buffer.LoadFromFile(path + self.FDataStructure.DatFile); If self.FDataStructure.LineIdentifier <> chr(254) Then Begin For i := 0 To buffer.Count - 1 Do Begin If buffer[i][1] = self.FDataStructure.LineIdentifier Then Begin DatLine := TDatline.create(buffer[i], i); DatStrings.Add(DatLine); End; End; End Else Begin For i := 0 To buffer.Count - 1 Do Begin DatLine := TDatline.create(buffer[i], i); DatStrings.Add(DatLine); End; End; End; constructor twaregroup.create(TheStructure: TBWTable; Path: String); begin inherited create(TheStructure,Path); end; |
Re: Leere Klasse von einer anderen abgeleitet
und wie erstellst du die instanz der klasse?
|
Re: Leere Klasse von einer anderen abgeleitet
Code:
und der Aufruf des Constructors
var
myWaregroup : TWareGroup;
Code:
myWaregroup := TWaregroup.create(TheStructure,Pfad);
|
Re: Leere Klasse von einer anderen abgeleitet
Ich weiß nicht, was du in SetDataStructure machst, aber sollte es im Konstruktor nicht so lauten:
Code:
[u][b]F[/b][/u]DataStructure := TheStructure;
|
Re: Leere Klasse von einer anderen abgeleitet
habe ich auch schon probiert, hilfts auch nichts, spart nur einen Aufruf
|
Re: Leere Klasse von einer anderen abgeleitet
Und der Fehler tritt immer noch in eben dieser Zeile auf?
Breakpoint drauf gesetzt? Inhalt von SELF? Inhalt von FDataStructure? Inhalt von TheStructure? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:32 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