![]() |
Re: Klasse mit Konstanten ?
Moin Neutral General,
warum überhaupt Konstanten? :gruebel: Wenn Du die Daten in einer Konfigurationsdatei ablegst, kannst Du die Einstellungen doch viel besser justieren, falls erforderlich. |
Re: Klasse mit Konstanten ?
Und bei dem von dir beschriebenen Ziel sehe ich auch nicht die Notwendigkeit verschiedener Klassen. Im Gegenteil! Denn deine Runen unterscheiden sich ja nicht in der Struktur, sondern nur in ihren Eigenschaften: Häufigkeit, Farbe etc.
Das verschiedene Verhalten kann man dann auch über Methodeneigenschaften realisieren oder wie du gesagt hast, als eigenen Klassentyp. Aber für die Runen als solche sind verschiedene Klassen meiner Meinung nach kontraproduktiv und damit der falsche Ansatz. |
Re: Klasse mit Konstanten ?
Mein Vorschlag:
Delphi-Quellcode:
und beim Create übergibts Du die Rarity.
type
TRune = class constructor Create (ARarity: Integer); private FRarity: Integer; FColor: TColor; public property Color: TColor read FColor; property Rarity: Integer read FRarity; end; constructor TRune.Create (ARarity: Integer); begin FRarity := ARarity; case FRarity of 0..3: FColor := clGreen; //etc. end; end; |
Re: Klasse mit Konstanten ?
Nur die Rarity zu übergeben reicht ja nicht weil die Runen ja verschiedene Eigenschaften haben sollen.
Ich will halt so wenig wie möglich schreiben müssen um alle Runen mit ner Seltenheit und min 1 Property auszustatten... |
Re: Klasse mit Konstanten ?
:gruebel: Und dafür schreibst du lieber ca. 100 Runenklassen? :shock: Was ist, wenn du beschließt, nochmal 100 weitere einzufügen? Dann nochmal 100 neue Klassen?
|
Re: Klasse mit Konstanten ?
Ja ich bin halt ratlos ^^
Ich hab noch nie was in sonem Umfang gemacht.. EDIT : Ich seh grad meine "Funktion" -.- Ich glaube ich habe in der Eile da was falsch gemacht :mrgreen: -.- |
Re: Klasse mit Konstanten ?
Hört mir eigentlich irgendjemand zu? Wenn nicht, weise ich auf meine beiden letzten Posts hin. Wenn doch, wüsste ich gerne, was es daran auszusetzen gibt. :roll:
|
Re: Klasse mit Konstanten ?
Zitat:
Delphi-Quellcode:
so find ich praktischer...
type
TRune = class public function GetRarity : Integer; end; TRune1 = class(TRune) end; TRune2 = class(TRune) end; function TRune.GetRarity : Integer; begin Result := -1; if Classname = 'TRune1' then Result := 300; if Classname = 'TRune2' then Result := 400; end; @ Tigerman33 : ja stimmt schon... ich glaube ich mache es so wie da oben... |
Re: Klasse mit Konstanten ?
Dann würd ich aber nicht auf Classname zugreifen, sondern eher mit dem is Operator prüfen.
Delphi-Quellcode:
PS: Was ich gepostet hab ist trotzdem schneller :mrgreen:
function TRune.GetRarity : Integer;
begin Result := -1; if self is TRune1 then begin Result := 300; exit; end; if self is TRune2 then begin Result := 400; exit; end; end; |
Re: Klasse mit Konstanten ?
Stringvergleiche bei Klassennamen? :shock: Seid ihr von allen guten Geistern verlassen? Das macht man mit einen is-Verglich auf Self und dem Typ, von dem man wissen will, ob die Klasse von dem Typ ist..
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:30 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