Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Problem bei der Vererbung im alten Objectmodell von Pascal (https://www.delphipraxis.net/36051-problem-bei-der-vererbung-im-alten-objectmodell-von-pascal.html)

Jacki O 15. Dez 2004 07:11


Problem bei der Vererbung im alten Objectmodell von Pascal
 
Hallo,

ich habe gerade eine Problem mit dem alten Objectmodell von Pascal.
(Ich denke amn sollte dieses nicht verwenden, aber ich denke, das es unmöglich ist eine Klassse von einem Object erben zu lassen -> Wenn das doch geht,... ich bin dankbar für jeden Tip :P )

Das Basisobject sieht im Prinzip so aus:
Code:
type OBJ1 = Object
    Nr  : Integer;
    aStr : String;
    procedure Open;
       ...
end;
Ein zweites Object erbt von OBJ1
Code:
type OBJ2 = Object (OBJ1)
    procedure Open;
       ...
end;
...
...
...
procedure OBJ2.Open;
begin
   Nr  := 5;
   aStr := 'Teststr';
   ...
end;
Bei der Zuweisung von aStr in OBJ2.Open bekomme ich immer eine Fehlermeldung, des es keinen Zugriff darauf gibt. Wenn ich allerdings aStr in OBJ1 als String[100] deklariere, dann funktioniert das.
Ich will ja nicht ausschliessen, das ich da was falsch verstanden habe, aber eigendlich erbt OBJ2 doch alle Datenfelder und Methoden von OBJ1. Das Datenfeld (Variable) Nr kann ich ja auch mit werten belegen. Delphi kümmert sich doch selbständig um die besorgung von Speicher beim einsatz von Strings. Wie gesagt, ich bin für jeden Tip dankbar. :P

Hansa 15. Dez 2004 07:27

Re: Problem bei der Vererbung im alten Objectmodell von Pasc
 
Die Deklaration eines Typs heißt noch lange nicht, daß auf ihn auch zugegriffen werden kann. In deinem Code ist was verkehrt. 8) Schaue Dir mal public usw. an.

Jacki O 15. Dez 2004 07:44

Re: Problem bei der Vererbung im alten Objectmodell von Pasc
 
Vielen Dank für dei schnelle Antwort.
Ich habe die Datenfelder von OBJ1 öffentlich, durch einfühgen von public gemacht.
Leider ohne erfolg. :cry:

Hansa 15. Dez 2004 07:46

Re: Problem bei der Vererbung im alten Objectmodell von Pasc
 
Vermutlich sind sie aber trotzdem nicht da. 8) Also gehts weiter mit Create.

Jacki O 15. Dez 2004 08:16

Re: Problem bei der Vererbung im alten Objectmodell von Pasc
 
Zitat:

Vermutlich sind sie aber trotzdem nicht da.
Genau, sie der String ist nicht da, aber warum ist er da, wenn ich bei der Deklaration in OBJ1 den String mit einer Längenangabe initialisiere?

Wie gesagt, es handelt sich dabei um das 'alte Objectmodell' das wohl 1989 von Turbo Pascal eingeführt wurde. Einer der grundlegenden Unterschiede ist meines erachtens, das man nicht erst einen Konstruktor aufrufen muß. Ausserdem kann ich ja auf alle anderen Datenfelder, die nicht vom Typ String sind zugreifen. Ich denke da eher, das es ein Problem mit String gibt.

Jacki O 20. Dez 2004 06:58

Re: Problem bei der Vererbung im alten Objectmodell von Pasc
 
Hallo,

ich denke, ich habe das Problem in den Griff bekommen.
Wenn man sich eine dynamische Variable auf ein solches Object anlegt und mit new(PObj2) sich das Object anlegen läßt gibt es keine Probleme.

Siehe Link: http://www.db.informatik.uni-kassel....g/pas_obj.html

Gruß Jacki :P


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