GLBasic forum

Other languages => GLBasic - de => Topic started by: Veritas on 2008-Apr-27

Title: DIM Tabelle, was mache ich falsch?
Post by: Veritas on 2008-Apr-27
Code (glbasic) Select
DIM Position[10] [1]

Position [1] [0] = 50
Position [1] [1] = 0
Position [2] [0] = 350
Position [2] [1] = 0
Position [3] [0] = 50
Position [3] [1] = 100
Position [4] [0] = 350
Position [4] [1] = 100
Position [5] [0] = 50
Position [5] [1] = 200
Position [6] [0] = 350
Position [6] [1] = 200
Position [7] [0] = 50
Position [7] [1] = 300
Position [8] [0] = 350
Position [8] [1] = 300
Position [9] [0] = 50
Position [9] [1] = 400

FOR x=1 TO 9

DRAWRECT Position [x] [0], Position [x] [1], 200, 50, Farbe

NEXT

SHOWSCREEN
WEND
QuoteC:\DOKUME~1\Nico\LOKALE~1\Temp\glbasic\gpc_temp0.cpp:51: error: `(&__GLBASIC__::Position)->__GLBASIC__::DGIntArray::operator()(#`fix_trunc_expr' not supported by dump_expr#, 0, 0, 0)' cannot be used as a function
Was mach ich falsch? Aus der Tabelle sollen die Koordinaten für Drawrect gelesen werden, statt für jede Position einmal den Befehl Drawrect anzugeben.

LG Veritas
Title: DIM Tabelle, was mache ich falsch?
Post by: Schranz0r on 2008-Apr-27
Code (glbasic) Select
DIM Position[10][2]

    Position[1][0] = 50
    Position[1][1] = 0
    Position[2][0] = 350
    Position[2][1] = 0
    Position[3][0] = 50
    Position[3][1] = 100
    Position[4][0] = 350
    Position[4][1] = 100
    Position[5][0] = 50
    Position[5][1] = 200
    Position[6][0] = 350
    Position[6][1] = 200
    Position[7][0] = 50
    Position[7][1] = 300
    Position[8][0] = 350
    Position[8][1] = 300
    Position[9][0] = 50
    Position[9][1] = 400
   
WHILE TRUE  
 
FOR x=1 TO 9    
DRAWRECT Position[x][0], Position[x][1], 200, 50,RGB(0xff, 0x00, 0x00)
NEXT

SHOWSCREEN
WEND
Title: DIM Tabelle, was mache ich falsch?
Post by: Veritas on 2008-Apr-27
manchmal nimmt man den wald vor lauter Bäumen nicht! Danke!
Title: DIM Tabelle, was mache ich falsch?
Post by: Kitty Hello on 2008-Apr-28
Keine Leerzeichen zwischen
Title: DIM Tabelle, was mache ich falsch?
Post by: S.O.P.M. on 2008-Apr-28
Wäre es nicht vielleicht doch mal eine Überlegung wert, den Index immer bei 1 anfangen zu lassen? Es scheinen immer wieder Leute damit Probleme zu haben und auch mir bereitet es manchmal noch Mühe, mich da reinzudenken. Wenn ein Feld also mit beispielsweise 2 dimensioniert wird, dann sollte man den Index auch mit 1 und 2 ansprechen können. Gleiches für z.B. die MID$ Funktion: erstes Zeichen sollte den Index 1 haben. Intern kann GLBasic ja weiterhin mit 0 arbeiten aber der User muss das ja nicht mitbekommen ;)
Title: DIM Tabelle, was mache ich falsch?
Post by: Kitty Hello on 2008-Apr-28
NIEMALS!
Ein Feld bei 1 beginnen zu lassen halte ich für totalen Sc*~$%!
Das ist eine Enstellungssache, aber man gewöhnt sich wirklich schnell daran.
Title: DIM Tabelle, was mache ich falsch?
Post by: S.O.P.M. on 2008-Apr-29
Schon gut :) Im Nachhinein bin ich mir auch über einen großen Nachteil davon klar geworden: Alle bisherigen Codes müssten dann angepasst werden, was u. U. sehr aufwendig sein kann. Auf jedem Fall ist es gut, dass die Dimensionierung wenigstens logisch ist, also die angegebene Anzahl der Elemente auch der tatsächlichen entspricht - anders bei PB: ein DIM(8) hat dort 9 Elemente, 0 bis 8... das ist wirklich irgendwo dämlich!
Title: DIM Tabelle, was mache ich falsch?
Post by: Tiuz on 2008-Apr-29
Ich machs fast in GLB fast immer so, dass ich ein Feld mit Dim[n+1]  größer als benötigt dimensioniere, und den nullten Index nicht verwende. Etwas "unproffesionell" aber für mich erleichterts die Indizierung enorm. :)
Tiuz.