Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi mehrdimensionaler Array dynamisch? (https://www.delphipraxis.net/5480-mehrdimensionaler-array-dynamisch.html)

torud 8. Jun 2003 14:48


mehrdimensionaler Array dynamisch?
 
Hallo Leute,

ist es möglich einen mehrdimensionalen Array dynamisch zu verwalten?

Zur Zeit halte ich mir meinen Array so vor:
Delphi-Quellcode:
var myZeile : array[0..10, 0..50] of String;
den ersten array von 0..10 brauche ich statisch, aber den zweiten würde ich gern dynamisch halten und je nach Bedarf um 1 erhöhen. Wenn das möglich ist, wäre ich für eine Infor wie´s geht dankbar.

Ausserdem interessiert mich, ob ich einen bestimmten Bereich innerhalb eines Arrays löschen kann.

Danke Tom

[edit=Daniel B]Delphi-Tags eingefügt. MfG Daniel B.[/edit]

Luckie 8. Jun 2003 14:54

Kuck dir mal in der Hilfe setlength an.

Was meinst du mit löschen? Man kann einen Bereich nur überschreiben.

torud 8. Jun 2003 15:05

Hi Luckie,

vielleicht habe ich das mit dem löschen nicht ausführlich genug beschrieben, aber hier folgendes dazu.

diesen Array benötige ich für meinen Formular-Maker:

var myZeile : array[0..10,0..50] of String;

Sobald der User ein neues Control für das Formular anlegt, werden die ersten 11 Einträge für alle Eigenschaften des Formularfeldes verwendet. Der zweite Array ist so eine Art Anzahl. Ich habe vorher die Daten in einem Stringgrid abggelegt und in pro Formularfeld eine Reihe mit 11 Spalten belegt. Das zum Vorgeplänkel.

Wenn ich nun 5 Formularfelder habe, und ich will das 3 löschen, wäre es eine tolle Geschichte, wenn dann der ursprünglich 4 Eintrag auf die 3 rutzscht und der 5te auf den den 4ten Eintrag. Alles klar? Ich frage deshalb, weil ich beim Eintragen eines neuen Formularfeldes alle Reihen durchgehe und dort (faulerweise) nur schaue ob die 1.Spalte leer ist. In dem Fall würde ein neues Formularfeld in die 3te Zeile wieder geschrieben werden.

Ist alles irre!
oder?

Tom

Luckie 8. Jun 2003 15:10

Dann kopier alle eins nach vorne und verkürze das Array.

torud 8. Jun 2003 15:15

Hi Luckie,

nun kommt sicher meine letzte Frage zu diesem Thema:

Wie kopiere ich alles ein nach vor bzw. eins nach hinten?
Damit hätte ich gleich noch das Problem des Sortierens des Formularfelder sichergestellt.

Das mit dem dynamisch halten werde ich wohl lieber lassen, da ich in Eurem Archiv noch etwas gegrast habe und mich belehren haben lasse, dass dyn. Arrays im Speicher bleiben und man lieber einen fixen Wert vorgeben sollte, den man im Notfall um 10% erhöht.

Danke Tom

Luckie 8. Jun 2003 15:18

In dem du über den Array-Index was zu weißt, wie sonst? :roll:

torud 8. Jun 2003 15:25

Naja das ist mir auch klar.
Ich dachte nur gerade daran, dass von mir aus in diesem Beispiel der Inhalt des Array[2] mit dem des Array[3] getauscht werden soll.

myArray[0]:=0
myArray[1]:=1
myArray[2]:=2
myArray[3]:=3

Probelm erkannt?
Tom

Luckie 8. Jun 2003 15:38

Streng doch mal dein Hirn selber an.

Du haste einen Fußball in der linken Hand und einen in der rechten. Jetzt willst du diese Fußbälle vertauschen, aber zwei Fußbälle kannst du nicht gleichzeitig in einer Hand halten. Also was machst du?

torud 8. Jun 2003 15:47

Danke Herr Lehrer!

manchmal kann das wirklich nicht schaden.
Code:
procedure TForm1.TauscheArrays(eins, zwei:integer);
 var
 myZwischenVariable:integer;
begin
    myZwischenVariable:=myArray[eins];
    myArray[eins]:=myArray[zwei];
    myArray[zwei]:=myZwischenVariable;
end;
Vielleicht gehts ja so!?
myArray wäre bei global gehalten.

Tom

Christian S. 8. Jun 2003 15:51

Zitat:

Probelm erkannt?
Die Frage ist etwas dreist, oder?

Du kannst Dir das, was Luckie beschrieben hat, übrigens mal als Dreieck vorstellen! An jeder Ecke eine Variable und jede Kante ist ein Pfeil, der von einer Ecke zur anderen zeigt. Die Richtung der Pfeile folgt entweder dem Uhrzeigersinn oder entgegengesetzt. Du musst Dir nur noch überlegen, wann welcher Pfeil zum Einsatz kommt!

MfG,
Peter

P.S.: Und jetzt meine Standardbemerkung, wenn ich das Wort "Array" sehe: Hier gibt es ein Einsteiger-Tutorial zum Thema Arrays.

//edit: zu spät ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:38 Uhr.
Seite 1 von 2  1 2      

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