AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Einen Datentyp zu ordnen oder so ähnlich
Thema durchsuchen
Ansicht
Themen-Optionen

Einen Datentyp zu ordnen oder so ähnlich

Ein Thema von der_wuwu_depp · begonnen am 12. Okt 2006 · letzter Beitrag vom 13. Okt 2006
Antwort Antwort
Seite 1 von 2  1 2      
der_wuwu_depp

Registriert seit: 12. Okt 2006
6 Beiträge
 
#1

Einen Datentyp zu ordnen oder so ähnlich

  Alt 12. Okt 2006, 21:50
Hi,
der Titel klingt etwas komisch. Ich weiß nämlich selbst nicht so richtig, wie ich das Beschreiben soll, deswegen versuche ich es an meinem konkreten Beispiel:
Ich programmiere ein Spiel mit 18 Feldern. Es soll etwas wie das Spiel "ACTIVITY" werden. Da gibt es ja Felder mit "Pantomime", "Zeichen" und so weiter. Jetzt will ich jedes Feld in einem Array speichern, das ich z.B. Spielfelder nenne.
Doch da ist das Problem: Es gibt 3 verschiedene Typen an Feldern. Warum nicht einfach jeden Typ in ein eigenes Array packen? Weil ich dann die Felder nicht per Zahl anwählen kann z.B. Spielfelder[zahl].
Gibt es da irgendeine Möglichkeit? Die Typen sind eben selbst definierte Klassen.
Z.B. TZeichnenFeld oder TPantomimeFeld.

habt ihr mich verstnaden?

Ich hoffe es! Dann bedanke ich mich schonmal für alle Antworten.
  Mit Zitat antworten Zitat
TheAn00bis

Registriert seit: 7. Jun 2004
386 Beiträge
 
#2

Re: Einen Datentyp zu ordnen oder so ähnlich

  Alt 12. Okt 2006, 21:54
Wie wäre es mit "Array of TObject" oder einer TObjectList?

Da gehen alle Objekte rein.
Du musst dann nur vor dem Zugriff casten.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Einen Datentyp zu ordnen oder so ähnlich

  Alt 12. Okt 2006, 21:54
habe die Klassen einen gemeinsamen Vorfahren? dann kannst du den Array über diese Typ machen und die verschiedenen Klassen darin speichern.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von SnuffMaster23
SnuffMaster23

Registriert seit: 13. Feb 2006
Ort: Kempten
253 Beiträge
 
#4

Re: Einen Datentyp zu ordnen oder so ähnlich

  Alt 12. Okt 2006, 21:58
Wenn deine Felder Records und keine Klassen sind dann würde ich sagen mach einen Redord-Typ mit case.
Ansonsten kannst du eine KLasse z.B. TFeld machen und davon TZeichenFeld oder TPantomimeFeld ableiten.
Dann reicht ein Array vom Typ TFeld.
Das heißt man Polymorphie (glaub ich^^).

//Roter Kasten: Genau das mein ich...
"Conspiracy is the poor man's mapping of the world" - Fredric Jameson
  Mit Zitat antworten Zitat
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#5

Re: Einen Datentyp zu ordnen oder so ähnlich

  Alt 12. Okt 2006, 22:05
So richtig viel habe ich auch nicht verstanden. Sieht für mich so aus, als wolltest Du grafische Felder auf einem Spielbrett beschreiben und denen verschiedene Bedeutungen oder Funktionen zuweisen.

Ein einfacher Vorschlag wäre, daraus ein record zu machen:
Delphi-Quellcode:
type
Spielfelder = record
  Zeichnenfeld : array[0..5] of TZeichnenFeld;
  PantomimeFeld : array[0..10] of TPantomimeFeld;
end;
TPantomimeFeld und TZeichnenfeld müßte darüber deklariert werden.
Im Code greifst Du dann überSpielfelder.Zeichnenfeld[x] auf Deine Felder zu, evtl. auch im Zufallsmodus.

Ist das in etwa was Du suchst?

Grüße, Messie
  Mit Zitat antworten Zitat
der_wuwu_depp

Registriert seit: 12. Okt 2006
6 Beiträge
 
#6

Re: Einen Datentyp zu ordnen oder so ähnlich

  Alt 12. Okt 2006, 22:09
Vielen Dank! Ich hatte schon fast keine Hoffnung
Danke!
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Einen Datentyp zu ordnen oder so ähnlich

  Alt 12. Okt 2006, 22:15
Zitat von mkinzler:
habe die Klassen einen gemeinsamen Vorfahren? dann kannst du den Array über diese Typ machen und die verschiedenen Klassen darin speichern.
Ich will ja nichts sagen, aber alle Klassen haben einen gemeinsamen Vorfahren: TObject. Ausgenommen TObject, das ist selber ein TObject.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
der_wuwu_depp

Registriert seit: 12. Okt 2006
6 Beiträge
 
#8

Re: Einen Datentyp zu ordnen oder so ähnlich

  Alt 12. Okt 2006, 22:18
Ich muss doch nochmal nachfragen: Wie "caste" ich?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Einen Datentyp zu ordnen oder so ähnlich

  Alt 12. Okt 2006, 22:20
Zitat:
Ich will ja nichts sagen, aber alle Klassen haben einen gemeinsamen Vorfahren: TObject. Ausgenommen TObject, das ist selber ein TObject. Mr. Green
Klar, genau so wie wir miteinander verwandt sind
Ich ahtte ad eher an eine problembezogene Superklasse gedacht, aber auf TObject kann man sich natürlich immer beziehen.
[Edit:
Zitat:
Ich muss doch nochmal nachfragen: Wie "caste" ich? Rolling Eyes
(<Objekt> as <Klasse>) oder <Klasse>( <Objekt>) ]
Markus Kinzler
  Mit Zitat antworten Zitat
der_wuwu_depp

Registriert seit: 12. Okt 2006
6 Beiträge
 
#10

Re: Einen Datentyp zu ordnen oder so ähnlich

  Alt 12. Okt 2006, 22:28
Tut mir leid, aber ich hab das noch nich ganz verstanden. Mein Code sieht jetzt so aus:
Delphi-Quellcode:
var
    Spielfelder : Array [1..18] of TObject;

procedure TForm1.FormCreate(Sender: TObject);
begin
    Spielfelder[1] as TSpielfelder;
    Spielfelder[1].erstellen();
    Spielfelder[1].Titel := 'Pantomime!';
end;
TSpielfelder liegt in einer eigenen Unit.

Das ist falsch... Ich habe davon leider noch keine Ahnung, vielleicht kann mir jemand das reinschreiben?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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