![]() |
2 array´s lesen
heut hab ich irgendwie n gedanken knicks...
könnt mir jemand helfen?? ich kann diese function nicht abrufen.. wo liegt mein fehler?
Delphi-Quellcode:
f:integer
f := saveWEGpos(0,1).xposR
Delphi-Quellcode:
type Txwegslide = array [1..20] of integer;
Tywegslide = array [1..20] of integer; type Tposxy= record xposR, yposR: integer; end; var x:Txwegslide; y:Tywegslide; i:integer; function saveWEGpos (RW,N :integer) : TposXY; // 1=schreiben 0=lesen begin if 1 = RW then begin // alle plätze belegen for i:= 1 to 20 do begin x[i]:= setWEGpos.xWEG; y[i]:=setWEGpos.yWEG; end; end; if 0 = RW then begin result.xposR:= x[N]; result.yposR:= y[N]; end; end; |
AW: 2 array´s lesen
Diese Funktion ist auch Quark denn sie enthält jede Menge Fehler.
Wenn die Funktion mit dem Parameter RW<>0 aufgerufen wird ist der Rückgabewert völlig undefiniert. Die Funktion verwendet die globale Variable i was natürlich ein No-Go ist. Eine Funktion, die abhängig von ihren Parametern völlig unterschiedliche Dinge tut ist absolut nicht empfehlenswert. |
AW: 2 array´s lesen
Was bedeutet
Zitat:
gibt es eine Fehlermeldung? Gruß K-H |
AW: 2 array´s lesen
Delphi-Quellcode:
type Txwegslide = array [1..20] of integer;
Tywegslide = array [1..20] of integer; var x:Txwegslide; y:Tywegslide; Si:integer; function saveWEGpos (RW,N,XY :integer) : integer; // 1=schreiben 0=lesen begin if 1 = RW then begin // alle plätze belegen for Si:= 1 to 20 do begin x[Si]:= setWEGpos.xWEG; y[Si]:=setWEGpos.yWEG; end; end; if 0 = RW then begin if XY = 4 then result := x[N]; if XY = 5 then result := y[N]; end; end; danke , habs so gelöst... ist das besser? also es soll erst an einer bestimmten stelle beschrieben werden und an einer anderen einzeln gelesen werden setWEGpos = zufallszahl zwischen 0 und screen width/ top und RW hab ich nur genommen um nicht zwei funtionen aufzurufen Zitat:
|
AW: 2 array´s lesen
Die Funktion nennt sich "Speichern", aber sie tut auch Lesen?
Da kann was nicht stimmen. Und warum sind alle Variablen global? Sollte nicht selbst ein uraltes Delphi 5 mit Warnungen um sich werfen? So von Wegen "Result ist nicht initialisiert". Was sollte nochmal das setWEGpos sein? Die Art des Aufrufs klingt hier aber auch wieder nach einem GET. Irgendwie klingt das Ganze nach zwei Funktionen. - GetWegPos(N): Intgeger - dann nochmal eine Prozedur ohne irgendeinen Parameter, so ala "fülle alles mit Zufallswerten" |
AW: 2 array´s lesen
upps , stimmt ja hab ich komplett übersehen
Delphi-Quellcode:
und ...
type Txwegslide = array [1..20] of integer;
Tywegslide = array [1..20] of integer; var x:Txwegslide; y:Tywegslide; Si:integer; procedure saveandreadWEGpos; begin // alle plätze belegen for Si:= 1 to 20 do begin x[Si]:= setWEGpos.xWEG; y[Si]:=setWEGpos.yWEG; end; end;
Delphi-Quellcode:
type TMyrec2= record xWEG, yWEG: integer; end;
function setWEGpos:TMyrec2; type Tfeldx = array [1..4] of integer; Tfeldy = array [1..4] of integer; var zzzW : integer; feldx:Tfeldx;feldy:Tfeldy; begin //oben X wert Y wert feldx[1]:= ZufallszahlVB(0,screen.Width); feldy[1]:= -250; //unten feldx[2]:= ZufallszahlVB(0,screen.Width); feldy[2]:= screen.Height + 250; //rechts feldx[3]:= screen.Width + 300; feldy[3]:= ZufallszahlVB(0,screen.Height); //links feldx[4]:= - 300; feldy[4]:= ZufallszahlVB(0,screen.Height); zzzW:= ZufallszahlsetWEGpos; // zufalls area erstellen von 1 - 4 result.xWEG:= feldx[zzzW]; result.yWEG:= feldy[zzzW]; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:53 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