![]() |
FindComponent für Arrays?
Hi,
der Titel sagt es eigentlich schon. Ich brauche eine Funktion wie FindComponent für Arrays. Also in etwa so:
Delphi-Quellcode:
Nur leider geht der Code oben nicht.
FindArray('Level' + IntToStr(i))[1,1] := X
Hintergrund: Ich habe 10 Arrays, alle 2-dimensionalig (Level1, Level2, ...). Und dann habe ich eine recht lange Prozedure, die ich nach jedem erreichten Level neu aufrufen müsste. Mit der Prozdure übergebe ich einen Integerwert, um welches Array / Level es sich handelt. Ich könnte auch für 10 Level die Prozedure 9x kopieren und das entsprechende Array "per Hand" einsetzen. Das ist mir aber zu viel Code. :P Klar gibt es auch Lösungen, um das Problem zu umgehen, aber ich möchte das unbedingt auf diese Art lösen. Ich hoffe ihr könnt mir helfen. Verregnete Grüße aus Berlin Chrissi91 |
Re: FindComponent für Arrays?
Geht so nicht. Nimm lieber eine Lösung, die dein Problem umgeht
|
Re: FindComponent für Arrays?
moin,
warum nicht einfach ein "Levelarray: array of TMyarray" (TMyArray ist halt dein vorhandener ArrayTyp)? also deine 2-dimensionalen arrays in einem Level-array halten...(hoffe ich drücke mich verständlich aus) dann kannste einfach per Levelarray[levelnumber] auf die Daten zugreifen ;) notfalls kannst du auch noch zusätzlich eine "Umsetzungsliste" in eine ini schreiben, intern greifst du nur über die nummer zu...
Code:
oder für eine evtl. vorhandene level-definition:
[levelnames]
1=erstes Level 2=zweites Level
Code:
HTH Frank
[Level_0]
name=erstes Level ...daten für das level... |
Re: FindComponent für Arrays?
Soetwas wie FindArray gibt es nicht weil ja sonst die Variablennamen der Arrays mit in der Exe gespeichert werden müssten. Und Variablennamen werden nicht in der Exe gespeichert sondern werden in Speicheradressen gewandelt.
|
Re: FindComponent für Arrays?
Danke für eure Antworten.
Leider verstehe ich _frank_ noch nicht ganz. Ich übersetz mal wie ich das verstanden hab und ihr könnt mich dann ja gegebenfals verbessern. Folgende Level habe ich:
MainLevel ist 1-dimensional und sieht so aus:
In meiner Prozedure würde ich dann auf die Arrays wie folgt zugreifen:
Delphi-Quellcode:
Das würde dann bedeuten:
MainLevel[1][I,J] := 10;
Delphi-Quellcode:
Aber der vorletzte Delphicode kann doch so gar nicht gehen. Oder hab ich mittlerweile in Delphi alles vergessen?
Level1[I,J] := 10;
|
Re: FindComponent für Arrays?
was soll da nicht gehen?
Delphi-Quellcode:
funktioniert bei mir wunderbar :)
type
TLevel=array[1..10,1..10] of string; TLevels=array[1..10] of TLevel; ... implementation ... procedure TForm1.Button1Click(Sender: TObject); var levels:TLevels; begin levels[1][2,5]:='test'; showmessage(levels[1][2,5]); end; kann deinen Postings noch kein Gegenargument erkennen, was gegen eine solche vorgehensweise sprechen würde...vielleicht hab ich dich auch falsch verstanden. Gruß Frank |
Re: FindComponent für Arrays?
Achso. :lol:
Habe wirklich zu lange kein Delphi mehr gemacht. Ich dachte ihr meintet mit dem MainArray von String wo drin steht 'Level1', 'Level2', etc. Dann ist alles klar. Thx!!! |
Re: FindComponent für Arrays?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:32 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