AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi seltsamer Fehler bei der Arbeit mit Klassen
Thema durchsuchen
Ansicht
Themen-Optionen

seltsamer Fehler bei der Arbeit mit Klassen

Ein Thema von Niels · begonnen am 31. Aug 2004 · letzter Beitrag vom 31. Aug 2004
 
Niels

Registriert seit: 25. Okt 2003
192 Beiträge
 
#1

seltsamer Fehler bei der Arbeit mit Klassen

  Alt 31. Aug 2004, 16:48
Hi,

mir ist da vorhin was aufgefallen, was ich mir nicht wirklich erklären kann

Ich habe folgende Typen deklariert:

Delphi-Quellcode:
type
  THKlasse = class
   typ: string;
  end;
  TUKlasseInt = class(THKlasse)
    inhalt: Integer;
  end;
  TUKlasseStr = class(THKlasse)
    inhalt: string;
  end;

var
  test: THKlasse;
Folgende Prozedur funktioniert fehlerfrei (egal welches der 3 Creates ich verwende):

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  test := THKlasse.Create;
  // test := TUKlasseInt.Create;
  // test := TUKlasseStr.Create;
  TUklasseInt(test).inhalt := 12;
  Form1.Caption := IntToStr(TUKlasseInt(test).inhalt);
end;
Arbeite ich nun aber mit TUKlasseStr, so funktioniert nur mit beiden folgenden Möglichkeiten:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  test := TUKlasseStr.Create;
  // test := TUKlasseInt.Create;
  TUklasseStr(test).inhalt := '12';
  Form1.Caption := TUKlasseStr(test).inhalt;
end;
Benutze ich test := THKlasse.Create, so gibt's ne Access Violation bei der Ausgabe von inhalt.

Meine Frage ist jetzt, warum es im 1. Fall immer Funktioniert, im 2. jedoch nur wenn test eine Instanz einer Unterklasse von THKlasse ist.
Außerdem wüde mich interessieren, warum die Unterklassen überhaupt miteinander kompatible sind, obwohl sie unterschiedliche Datentypen enthalten.

mfg Niels
  Mit Zitat antworten Zitat
 


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 19:49 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