Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Neuer Typ?
mars - Fr 28.02.03 00:58
Titel: Neuer Typ?
Ist es möglich, etwas zu erstellen, der folgende Eigenschaften hat?
Aufbau ungefähr wie Typ set: dh. Ich brauche das Schlüsselwort "in" und ich sollte Objekte hinzufügen und wegnehmen können, aber im Unterschied zum Typ set sollten die Objekte eine Reihenfolge einhalten, über einen Index abrufbar sein und es sollten auch 2 gleiche Objekte vorkommen dürfen.
Wie realisiert man das? Gehe ich richtig in der Annahme, dass ich da mit Objekten und Klassen arbeiten muss?[/list][/list]
AndyB - Fr 28.02.03 08:20
Na wenn du Objekte hinzufügen willst, dann musst du auch mit Klassen arbeiten.
Für dein Vorhanden ist ein Array oder eine TObjectList (Unit Contnrs) wohl angebracht. Beim Array musst du eben selbst suchen. Bei TObjectList gibt es die Methode IndexOf.
mars - Fr 28.02.03 09:01
Leider verstehe ich dich nicht ganz :cry:. Nehmen wir an, die Objekte seien Integerwerte. Muss ich dann immer noch mit Klassen arbeiten? (Sorry, ich verstehe es wirklich nicht...) Ich möchte einfach Integerwerte in einer Liste haben mit einer bestimmten Reihenfolge und folglich auch mit einem Index. Zusätzlich möchte ich ein Objekt so wegnehmen können, dass die anderen automatisch nachrücken und die Lücke füllen...Keine Ahnung ob das verdeutlichte, was ich vorhabe :?
Danke jedenfalls für die schnelle Antwort. Über etwas mehr Hilfe würde ich mich aber auch freuen.
maximus - Fr 28.02.03 14:08
| Zitat: |
| Nehmen wir an, die Objekte seien Integerwerte. |
..ähm...objecte können keine integer werte seien. Ein object ist eine instanze einer bestimmten klasse und integer ist keine klasse, sondern eine stink normale variable.
Wenn du nur eine liste mit intergern haben willst, dann erstell dir ein array-typ:
Quelltext
1: 2: 3: 4: 5:
| type TIntArr: array of integer; var intArr : TIntArr; ... setLength(intArr, {zB} 100-1); // setzt die anzahl der werte auf 100 intArr[50] := 3772; |
vielleicht hilft das weiter.
mfg mx.
mars - Sa 01.03.03 20:37
| maximus hat folgendes geschrieben: |
| Zitat: | | Nehmen wir an, die Objekte seien Integerwerte. |
..ähm...objecte können keine integer werte seien. Ein object ist eine instanze einer bestimmten klasse und integer ist keine klasse, sondern eine stink normale variable.
|
Das ist mir ja schon klar, aber AndyB hat von Objekten geredet und da wollte ich ihm zeigen, dass es sich nur um Integerwerte handelt
| Zitat: |
Wenn du nur eine liste mit intergern haben willst, dann erstell dir ein array-typ: Quelltext 1: 2: 3: 4: 5:
| type TIntArr: array of integer; var intArr : TIntArr; ... setLength(intArr, {zB} 100-1); // setzt die anzahl der werte auf 100 intArr[50] := 3772; |
vielleicht hilft das weiter.
mfg mx. |
Also ich glaube soweit bin ich in Delphi auch schon gekommen :wink: . Ich glaube ihr versteht mein Problem nicht...Vielleicht bin ich nicht sehr geschickt im Erklären... :cry: Dann mach ichs selber.
(Wenn jemand mein Problem verstanden hat und eine Lösung hat, soll er also ruhig posten :) )
Nightmare_82 - Do 27.03.03 16:05
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51:
| type
TIntList = class private
m_arInt : array of Integer;
public
procedure add(p_iValue : Integer);
function indexOf(p_iValue : Integer) : Integer;
function getCount : Integer;
procedure reset;
end;
implementation
procedure TIntList.add(p_iValue : Integer); begin setLength(m_arInt, length(m_arInt + 1); m_arInt[high(m_arInt)]:= p_iValue; end;
function TIntList.indexOf(p_iValue : Integer) : Integer; VAR i : Integer; begin Result:= -1;
for i:= low(m_arInt) to high(m_arInt) do if m_arInt[i] = p_iValue then begin Result:= i; exit; end; end;
function TIntList.getCount : Integer; begin Result:= length(m_arInt); end;
procedure TIntList.reset; begin setLength(m_arInt, 0); end; |
Wenn ich dich richtig verstanden habe, sucht du sowas?
Habe es nicht getestet aber sollte funktionieren.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!