AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Instanz welcher abgeleiteten Klasse?

Ein Thema von stoermi · begonnen am 6. Dez 2004 · letzter Beitrag vom 7. Dez 2004
Antwort Antwort
Seite 1 von 3  1 23      
stoermi

Registriert seit: 1. Dez 2004
Ort: im Wald von Thüringen
75 Beiträge
 
Delphi 6 Enterprise
 
#1

Instanz welcher abgeleiteten Klasse?

  Alt 6. Dez 2004, 18:04
Hallo!

Angenommen, ich habe eine abstrakte Klasse Fahrzeug;
Davon leiten sich die Klassen Auto, Fahrrad und Motorrad ab.

Im Quelltext arbeite ich dann mit der Variable einFahrzeug : TFahrzeug!
Kann ich nun irgend wie testen bzw. abfragen, von welcher Sub-Klasse das Fahrzeug nun genau ist, also ob es ein Auto, Fahrrad, etc. ist?
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Instanz welcher abgeleiteten Klasse?

  Alt 6. Dez 2004, 18:07
Der Delphi-Referenz durchsuchenis-Operator dürfte dein Problem lösen .

Gruss,
Fabian
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#3

Re: Instanz welcher abgeleiteten Klasse?

  Alt 6. Dez 2004, 18:08
du könntest mit dem is/as operator arbeiten. aber das ist in deinem falle wohl nicht im sinne von OOP.
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
stoermi

Registriert seit: 1. Dez 2004
Ort: im Wald von Thüringen
75 Beiträge
 
Delphi 6 Enterprise
 
#4

Re: Instanz welcher abgeleiteten Klasse?

  Alt 6. Dez 2004, 18:09
Zitat von dizzy:
Der Delphi-Referenz durchsuchenis-Operator dürfte dein Problem lösen ;).

Gruss,
Fabian
Danke! Wusste doch, dass es etwas ganz simples sein muss, hab aber wohl zwecks Wortwahl nichts gefunden.
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#5

Re: Instanz welcher abgeleiteten Klasse?

  Alt 6. Dez 2004, 18:10
Erstmal bekommst du über Classname den Klassennamen als Text.
2. Kannst du den Operator is verwenden (also z.B. Fahrzeug is TAuto). Wobei das auch true ergibt wenn das Objekt widerrum von TAuto abgeleitet ist
3. Über ClassInfo bekommst du die genaue Klasse. Mit einer einfachen Abfrage Fahrzeug.ClassInfo=TAuto kannst du fragen, ob das Objekt wirklich TAuto ist. Ist es abgeleitet von TAuto ergibt der vergleich false (im Gegensatz zu is).
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
stoermi

Registriert seit: 1. Dez 2004
Ort: im Wald von Thüringen
75 Beiträge
 
Delphi 6 Enterprise
 
#6

Re: Instanz welcher abgeleiteten Klasse?

  Alt 6. Dez 2004, 18:10
Zitat von nailor:
du könntest mit dem is/as operator arbeiten. aber das ist in deinem falle wohl nicht im sinne von OOP.
Das heißt? Hast du einen besseren Vorschlag?
  Mit Zitat antworten Zitat
stoermi

Registriert seit: 1. Dez 2004
Ort: im Wald von Thüringen
75 Beiträge
 
Delphi 6 Enterprise
 
#7

Re: Instanz welcher abgeleiteten Klasse?

  Alt 6. Dez 2004, 18:25
Zitat von jim_raynor:
3. Über ClassInfo bekommst du die genaue Klasse. Mit einer einfachen Abfrage Fahrzeug.ClassInfo=TAuto kannst du fragen, ob das Objekt wirklich TAuto ist. Ist es abgeleitet von TAuto ergibt der vergleich false (im Gegensatz zu is).
Also mit Fahrzeug.ClassInfo=TAuto funktioniert es nicht!
Da meckert der Compiler! Er weis da nichts mit TAuto anzufangen.
Und ClassInfo gibt mir ja nur einen Pointer...
  Mit Zitat antworten Zitat
stoermi

Registriert seit: 1. Dez 2004
Ort: im Wald von Thüringen
75 Beiträge
 
Delphi 6 Enterprise
 
#8

Re: Instanz welcher abgeleiteten Klasse?

  Alt 6. Dez 2004, 18:31
Zitat von stoermi:
Also mit Fahrzeug.ClassInfo=TAuto funktioniert es nicht!
Da meckert der Compiler! Er weis da nichts mit TAuto anzufangen.
Und ClassInfo gibt mir ja nur einen Pointer...
Gut, mein Fehler! Hatte gerade die Unit bei uses vergessen, mit der ich getestet habe.
Der Compiler bleibt still!
Dennoch klappt der if-Vergleich nicht.
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#9

Re: Instanz welcher abgeleiteten Klasse?

  Alt 6. Dez 2004, 18:44
oh sorry. Hatte was verwechselt. Statt ClassInfo nimm ClassType.
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
stoermi

Registriert seit: 1. Dez 2004
Ort: im Wald von Thüringen
75 Beiträge
 
Delphi 6 Enterprise
 
#10

Re: Instanz welcher abgeleiteten Klasse?

  Alt 6. Dez 2004, 19:03
Zitat von jim_raynor:
oh sorry. Hatte was verwechselt. Statt ClassInfo nimm ClassType. :duck:
Danke! So funktionierts.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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:48 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