Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - DynArray als property?
G-McKree - So 22.06.03 09:18
Titel: DynArray als property?
Ich schreib gerade an einem kleinen program, einem editor mit dem ich spielfelder erstellen kann. das program, das mit den spielfeldern was anfangen kann kommt später :D .
also zum problem: die einzelnen spielfelder sind nich immer nur mit denen verbunden, die neben ihnen sind, und deshalb muss ich irgentwo speichern wohin man wan gehen darf. ein dynArray chien mir da perfekt zu sein, aber delphi hat kein verständniss dafür und will mir nich erlauben eine dynArray-property bei meiner komponente zu setzen.
Tweafis - So 22.06.03 09:29
hmm ich denke mal du mahcst das so:
Delphi-Quelltext
1: 2: 3: 4:
| private fconnections: array of Integer; published property connections: array of Integer write bla read bla |
Probier mal nen eigenen Typ zu erstellen
z.B.
Delphi-Quelltext
1:
| TDynConnect = array of Integer; |
Delphi-Quelltext
1:
| fconnections: TDynConnect |
Delphi-Quelltext
1:
| property connections: TDynConnect |
oder sowas in der art
G-McKree - So 22.06.03 10:40
thx
hmm, nächstes problem:
der dynArray des objects auf das ich klicke soll um 1 größer sein
Quelltext
1:
| setlength(Tquad(sender).Con , length(Tquad(sender).Con) + 1) |
funzt aber net
con is die dynArray property
und delphi meint:
[Error] Unit1.pas(109): Constant object cannot be passed as var parameter
AndyB - So 22.06.03 11:20
Du kannst keine Eigenschaften an Funktionen übergeben, die an der Stellen einen var oder out Parameter verlagen.
G-McKree - So 22.06.03 13:17
und das bedeutet?
AndyB - So 22.06.03 14:10
Das setlength(Tquad(sender).Con, ...) nicht funktioniert, weil SetLength so deklariert ist (Compiler Magic muss beachtet werden):
procedure SetLength(
var DynArray of DynamicArray type; Count [, ...]);
Du musst dir also eine Methode schreiben, die SetLength() mit dem Feld anstatt der Eigenschaft aufruft.
Delphi-Quelltext
1: 2: 3: 4: 5:
| private FDynArray: TMyDynArray; public property DynArray: TMyDynArray read FDynArray; end; |
G-McKree - So 22.06.03 15:35
ich glaub jez hab ichs
Tweafis - So 22.06.03 15:38
Du kannst nicht zu einem dynamischen Array 1 dazuaddieren.
G-McKree - So 22.06.03 15:42
| Tweafis hat folgendes geschrieben: |
| Du kannst nicht zu einem dynamischen Array 1 dazuaddieren. |
ich weiss ich hab das 'length()' vergessen
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!