Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi FindComponent für Arrays? (https://www.delphipraxis.net/92856-findcomponent-fuer-arrays.html)

Chrissi91 27. Mai 2007 17:04


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:
FindArray('Level' + IntToStr(i))[1,1] := X
Nur leider geht der Code oben nicht.

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

mkinzler 27. Mai 2007 17:07

Re: FindComponent für Arrays?
 
Geht so nicht. Nimm lieber eine Lösung, die dein Problem umgeht

_frank_ 27. Mai 2007 17:09

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:
[levelnames]
1=erstes Level
2=zweites Level
oder für eine evtl. vorhandene level-definition:

Code:
[Level_0]
name=erstes Level
...daten für das level...
HTH Frank

SirThornberry 27. Mai 2007 17:13

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.

Chrissi91 27. Mai 2007 17:25

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
  • Level1
  • Level2
  • Level3
  • ...

MainLevel ist 1-dimensional und sieht so aus:
  • Level1
  • Level2
  • Level3
  • ...

In meiner Prozedure würde ich dann auf die Arrays wie folgt zugreifen:

Delphi-Quellcode:
MainLevel[1][I,J] := 10;
Das würde dann bedeuten:

Delphi-Quellcode:
Level1[I,J] := 10;
Aber der vorletzte Delphicode kann doch so gar nicht gehen. Oder hab ich mittlerweile in Delphi alles vergessen?

_frank_ 27. Mai 2007 18:04

Re: FindComponent für Arrays?
 
was soll da nicht gehen?

Delphi-Quellcode:
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;
funktioniert bei mir wunderbar :)
kann deinen Postings noch kein Gegenargument erkennen, was gegen eine solche vorgehensweise sprechen würde...vielleicht hab ich dich auch falsch verstanden.

Gruß Frank

Chrissi91 27. Mai 2007 18:25

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

_frank_ 27. Mai 2007 19:24

Re: FindComponent für Arrays?
 
chrissi91 wollte sowas:
http://nopaste.org/p/ag1onqWYO

Gruß Frank


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:01 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