AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Problem bei der Vererbung im alten Objectmodell von Pascal
Thema durchsuchen
Ansicht
Themen-Optionen

Problem bei der Vererbung im alten Objectmodell von Pascal

Ein Thema von Jacki O · begonnen am 15. Dez 2004 · letzter Beitrag vom 20. Dez 2004
Antwort Antwort
Jacki O

Registriert seit: 18. Okt 2003
73 Beiträge
 
#1

Problem bei der Vererbung im alten Objectmodell von Pascal

  Alt 15. Dez 2004, 07:11
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 )

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.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#2

Re: Problem bei der Vererbung im alten Objectmodell von Pasc

  Alt 15. Dez 2004, 07:27
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.
Gruß
Hansa
  Mit Zitat antworten Zitat
Jacki O

Registriert seit: 18. Okt 2003
73 Beiträge
 
#3

Re: Problem bei der Vererbung im alten Objectmodell von Pasc

  Alt 15. Dez 2004, 07:44
Vielen Dank für dei schnelle Antwort.
Ich habe die Datenfelder von OBJ1 öffentlich, durch einfühgen von public gemacht.
Leider ohne erfolg.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#4

Re: Problem bei der Vererbung im alten Objectmodell von Pasc

  Alt 15. Dez 2004, 07:46
Vermutlich sind sie aber trotzdem nicht da. 8) Also gehts weiter mit Create.
Gruß
Hansa
  Mit Zitat antworten Zitat
Jacki O

Registriert seit: 18. Okt 2003
73 Beiträge
 
#5

Re: Problem bei der Vererbung im alten Objectmodell von Pasc

  Alt 15. Dez 2004, 08:16
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.
  Mit Zitat antworten Zitat
Jacki O

Registriert seit: 18. Okt 2003
73 Beiträge
 
#6

Re: Problem bei der Vererbung im alten Objectmodell von Pasc

  Alt 20. Dez 2004, 06:58
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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:50 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