Delphi-PRAXiS
Seite 3 von 5     123 45      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Klasse mit Konstanten ? (https://www.delphipraxis.net/52918-klasse-mit-konstanten.html)

Christian Seehase 7. Sep 2005 21:59

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.

tigerman33 8. Sep 2005 08:32

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.

Kroko1999 8. Sep 2005 09:57

Re: Klasse mit Konstanten ?
 
Mein Vorschlag:
Delphi-Quellcode:
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;
und beim Create übergibts Du die Rarity.

Neutral General 8. Sep 2005 12:41

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...

leddl 8. Sep 2005 12:43

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?

Neutral General 8. Sep 2005 15:18

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

tigerman33 8. Sep 2005 18:19

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:

Neutral General 8. Sep 2005 18:26

Re: Klasse mit Konstanten ?
 
Zitat:

Zitat von BlackJack
nein, wenn dann so:
Delphi-Quellcode:
type TRune = class
function GetRarity : Integer; virtual; abstract;
end;

type TRune1 = class(TRune)
function GetRarity : Integer; override;
end;
type TRune2 = class(TRune)
function GetRarity : Integer; override;
end;


function TRune1.GetRarity : Integer;
begin
  Result := 300;
end;
function TRune2.GetRarity : Integer;
begin
  Result := 400;
end;
musst du halt nur für jede klasse machen, ich weiss ja nicht ob es das so bringt.

p.s.: warum gibt es nicht sowas wie
Delphi-Quellcode:
property Value: Integer read 1234;
, das wäre doch mal praktisch :D

wenn dann eher so

Delphi-Quellcode:
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;
so find ich praktischer...

@ Tigerman33 : ja stimmt schon... ich glaube ich mache es so wie da oben...

tigerman33 8. Sep 2005 18:35

Re: Klasse mit Konstanten ?
 
Dann würd ich aber nicht auf Classname zugreifen, sondern eher mit dem is Operator prüfen.

Delphi-Quellcode:
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;
PS: Was ich gepostet hab ist trotzdem schneller :mrgreen:

Dax 8. Sep 2005 18:37

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.
Seite 3 von 5     123 45      

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