AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Arrayvariable

Ein Thema von daNiii · begonnen am 24. Okt 2009 · letzter Beitrag vom 24. Okt 2009
Antwort Antwort
Seite 1 von 2  1 2      
daNiii

Registriert seit: 10. Nov 2008
98 Beiträge
 
Turbo Delphi für Win32
 
#1

Arrayvariable

  Alt 24. Okt 2009, 11:09
Hallo!
in meinem Programm hätte ich gerne eine arrayvariable verwendet,
diese soll aber variable bleiben.

hier mein Beispiel:
ich definiere die Variable:
Feld: array[0..10, 0..12]
ich möchte aber anstatt des 10ers oder des 12 eine Variable eingeben.
funktioniert aber nicht, da ein Konstantaursdruck benötigt wird.

Weis jemand wie man diese Fehlermeldung umgehen kann?
  Mit Zitat antworten Zitat
Tryer

Registriert seit: 16. Aug 2003
200 Beiträge
 
#2

Re: Arrayvariable

  Alt 24. Okt 2009, 11:19
Mehrdimensionale dynamische Arrays:
Delphi-Quellcode:
MyArray : array of array of Foo;
SetLength(MyArray, 10, 12);
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#3

Re: Arrayvariable

  Alt 24. Okt 2009, 11:21
Zitat von daNiii:
ich möchte aber anstatt des 10ers oder des 12 eine Variable eingeben.
funktioniert aber nicht, da ein Konstantaursdruck benötigt wird.
Ähhh, was möchtest du genau machen?
Zeig mal bitte etwas Code, von dem was der Compiler nicht wollte, denn ich kann mir da grad einfach nichts unter dieser Beschreibung vorstellen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
daNiii

Registriert seit: 10. Nov 2008
98 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Arrayvariable

  Alt 24. Okt 2009, 11:36
Delphi-Quellcode:
Spalten, Zeilen: integer; (globale Variablen

procedure TForm1.FormShow(Sender: TObject);
begin

Spalten:= 10;
Zeilen:= 10;

Spielbrettaufbauen();
end;


procedure TForm1.Spielbrettaufbauen();
var
 horizontal,vertikal: integer;
 Feld: Array[0..Spalten, 0..Zeilen] of Tshape; //hier kommt der Fehler

begin

for horizontal := 1 to Spalten do begin
Abstand_hor:= Abstand_hor + Breite;
    Abstand_ver:= Basis;
    for vertikal := 1 to Zeilen do
    begin
       Abstand_ver:= Abstand_ver + Hoehe;
       //das Shape wird formatiert
       Feld[horizontal, vertikal] := Tshape.create(self);
       Feld[horizontal, vertikal].Parent:= form1;
       Feld[horizontal, vertikal].height:= Hoehe;
       Feld[horizontal, vertikal].width:= Breite;
       Feld[horizontal, vertikal].top:= Position_top + Abstand_ver;
       Feld[horizontal, vertikal].left:= Position_left + Abstand_hor;
       Feld[horizontal, vertikal].OnMouseUp:= Fillshape;
    end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Arrayvariable

  Alt 24. Okt 2009, 11:44
@daNiii: Kannst du deinem Beitrag bitte einen aussagekräftigeren Titel geben der ansatzweise erahnen lässt worum es in dem Thema geht? Dadurch haben andere mit dem gleichen Problem den Vorteil dieses Thema (mit eventueller Lösung) über die Suche (schneller) zu finden.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#6

Re: Arrayvariable

  Alt 24. Okt 2009, 11:49
Diese statischen Arrays werden zur Compilierungs-Zeit übersetzt und da ist der Wert für die Konstanten noch unbekannt.

Also entweder du nimmst ein dynamisches Array und setzt die Größe um Code (siehe Tryer),

oder du machst Konstanten daraus, so wie es der Compilier, für diesem Fall des statischen Arrays, verlangt
Delphi-Quellcode:
const
  Spalten = 10;
  Zeilen = 10;

procedure TForm1.FormShow(Sender: TObject);
begin
  Spielbrettaufbauen();
end;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
daNiii

Registriert seit: 10. Nov 2008
98 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Arrayvariable

  Alt 24. Okt 2009, 12:23
alos Konstanten geht schon mal garnicht..
den der Wert muss anpassbar sein...
wie geht das mit dem dynamischen arrays?
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.685 Beiträge
 
Delphi 2007 Enterprise
 
#8

Re: Arrayvariable

  Alt 24. Okt 2009, 12:24
Siehe Beitrag #2
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#9

Re: Arrayvariable

  Alt 24. Okt 2009, 12:28
Und vorsorglich weise ich schon einmal darauf hin, dass man gerade bei dynamischen Arrays den Index auf <= High(Array) prüfen sollte, bevor man darauf zugreift.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.685 Beiträge
 
Delphi 2007 Enterprise
 
#10

Re: Arrayvariable

  Alt 24. Okt 2009, 12:29
Och Mönsch! Ich hab mich schon so auf die kommenden Off-By-One Fragen und Diskussionen gefreut! Hatten wir schon verhältnismäßig lange nicht mehr
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:50 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