AGB  ·  Datenschutz  ·  Impressum  







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

is Operator akzeptiert auch Oberklassen?

Ein Thema von xZise · begonnen am 28. Aug 2010 · letzter Beitrag vom 29. Aug 2010
Antwort Antwort
idefix2

Registriert seit: 17. Mär 2010
Ort: Wien
1.027 Beiträge
 
RAD-Studio 2009 Pro
 
#1

AW: is Operator akzeptiert auch Oberklassen?

  Alt 28. Aug 2010, 16:47
Du könntest Zeile.Classname verwenden. damit bekommst Du genau die richtige Klasse.
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#2

AW: is Operator akzeptiert auch Oberklassen?

  Alt 28. Aug 2010, 16:53
Du könntest Zeile.Classname verwenden. damit bekommst Du genau die richtige Klasse.
Stimmt, aber ich glaube da nehme ich eher sowas wie .Class .ClassType, weil dann meckert der Compiler falls sich der Name ändert und das Refactoring erfasst das mit.

Argh und mir fällt gerade ein, dass ich ja oben mist angegeben habe. Und zwar ist mein Mutter-Kind Beispiel genau das Gegenteil! Und zwar müsste es ja x := TKind.Create; heißen (aber das scheint euch ja auch nicht aufgefallen zu sein ).

MfG
Fabian

PS: Okay scheint wohl eher .ClassType zu sein
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#3

AW: is Operator akzeptiert auch Oberklassen?

  Alt 28. Aug 2010, 17:05
ok, das Ding heißt wirklich .ClassType und funktioniert auch.

Delphi-Quellcode:
program Project1;

{$APPTYPE CONSOLE}

function BoolToStr(B: Boolean): string;
const
  BoolStrs: array [boolean] of String = ('false', 'true');
begin
  Result := BoolStrs[B];
end;

type
  TStammklasse = class(TObject);
  TNachfahr1 = class(TStammklasse);
  TNachfahr2 = class(TStammklasse);

var
  Stammklasse: TStammklasse;
  Nachfahr1: TNachfahr1;
  Nachfahr2: TNachfahr2;

begin
  Stammklasse := TStammklasse.Create;
  Nachfahr1 := TNachfahr1.Create;
  Nachfahr2 := TNachfahr2.Create;


  WriteLn('==========================');
  WriteLn('Stammklasse is TStammklasse: ' + BoolTostr(Stammklasse is TStammklasse));
  WriteLn('Nachfahr1 is TStammklasse: ' + BoolTostr(Nachfahr1 is TStammklasse));
  WriteLn('Nachfahr2 is TStammklasse: ' + BoolTostr(Nachfahr2 is TStammklasse));
  WriteLn('==========================');
  WriteLn('Stammklasse ist TStammklasse: ' + BoolTostr(Stammklasse.ClassType = TStammklasse));
  WriteLn('Nachfahr1 ist TStammklasse: ' + BoolTostr(Nachfahr1.ClassType = TStammklasse));
  WriteLn('Nachfahr2 ist TStammklasse: ' + BoolTostr(Nachfahr2.ClassType = TStammklasse));
  WriteLn('==========================');

  Stammklasse.Free;
  Nachfahr1.Free;
  Nachfahr2.Free;

  ReadLn;
end.
Bernhard
Bernhard
Iliacos intra muros peccatur et extra!

Geändert von rollstuhlfahrer (28. Aug 2010 um 17:11 Uhr) Grund: Speichermanagement im Quelltext ;) + Wer lesen kann ist klar im Vorteil!
  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:13 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