AGB  ·  Datenschutz  ·  Impressum  







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

2 array´s lesen

Ein Thema von davtix · begonnen am 16. Jan 2014 · letzter Beitrag vom 16. Jan 2014
Antwort Antwort
davtix

Registriert seit: 29. Mai 2003
Ort: Berlin
87 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

2 array´s lesen

  Alt 16. Jan 2014, 18:44
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;
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#2

AW: 2 array´s lesen

  Alt 16. Jan 2014, 19:04
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.
fork me on Github

Geändert von sx2008 (16. Jan 2014 um 19:08 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#3

AW: 2 array´s lesen

  Alt 16. Jan 2014, 19:15
Was bedeutet
ich kann diese function nicht abrufen.. wo liegt mein fehler?
(meistens werden Funktionen aufgerufen)

gibt es eine Fehlermeldung?

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
davtix

Registriert seit: 29. Mai 2003
Ort: Berlin
87 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: 2 array´s lesen

  Alt 16. Jan 2014, 19:22
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:
Eine Funktion, die abhängig von ihren Parametern völlig unterschiedliche Dinge tut ist absolut nicht empfehlenswert.
warum nicht??

Geändert von davtix (16. Jan 2014 um 19:26 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: 2 array´s lesen

  Alt 16. Jan 2014, 19:45
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"
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
davtix

Registriert seit: 29. Mai 2003
Ort: Berlin
87 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

AW: 2 array´s lesen

  Alt 16. Jan 2014, 20:13
upps , stimmt ja hab ich komplett übersehen


Delphi-Quellcode:
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;
und ...
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;
  Mit Zitat antworten Zitat
Antwort Antwort


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 06:19 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