/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
Delphi 5/6
Fra : Carsten Bager


Dato : 25-07-02 08:42

Jeg har oplevet et problem med Delphi 5/6
når jeg skal bruge en "For To" løkke.
Nogle gange tæller den nedad i stedet
for opad.

Er der nogle der har prøvet det samme

Her er 2 functioner hvor "ErSysIdOk1"
tæller fra 16 og ned (hvis man overvåger p
i et debug vindue).

Function ErSysIdOk2(id:Word16):boolean;
var
p:integer;
Begin
ErSysIdOk2:=true;
for p:=1 to 16 do
if p=0 then exit;
End;

Function ErSysIdOk1(id:Word16):boolean;
var
p:integer;
Begin
ErSysIdOk1:=true;
for p:=1 to 16 do
ErSysIdOk1:=false;
End;

Mvh
Carsten




 
 
fkb (25-07-2002)
Kommentar
Fra : fkb


Dato : 25-07-02 09:38

hejsa.....

hvordan har du konstateret det ???

/finn



Uffe Kousgaard (25-07-2002)
Kommentar
Fra : Uffe Kousgaard


Dato : 25-07-02 11:23

"fkb" <finnb@post6.tele.dk> wrote in message
news:ahod5s$2rmv$1@news.cybercity.dk...
> hejsa.....
>
> hvordan har du konstateret det ???
Ved at kigge i debug vinduet (læs teksten).

Til Carsten:
Dette er helt normalt, da det er hurtigere at teste for at nå nul end
øvre grænse. Det anvendes, når det ikke har nogen betydning for den
kode, der står i for-løkken og "optimizations" er slået til. Hvis du har
et eksempel, som tæller baglæns og det påvirker resultatet af en
beregning, er jeg sikker på, at Borland meget gerne vil høre om det. Men
vær helt sikker inden du melder fejl

Husk, at du aldrig kan regne med værdien af for-løkkens variabel EFTER
løkken med mindre du anvender et break undervejs (og det bliver
eksekveret). Umiddelbart ville jeg have sagt, at dette står i
hjælpefilen, men jeg kan faktisk ikke finde det i D6. Emnet har været
diskuteret mange gange i Borlands nyhedgsrupper.

Hilsen
Uffe



R. A. Larsen (26-07-2002)
Kommentar
Fra : R. A. Larsen


Dato : 26-07-02 00:15

In article <3d3fd167$0$12707$edfadb0f@dspool01.news.tele.dk>, Uffe
Kousgaard wrote:
> Husk, at du aldrig kan regne med værdien af for-løkkens variabel EFTER
> løkken med mindre du anvender et break undervejs (og det bliver
> eksekveret). Umiddelbart ville jeg have sagt, at dette står i
> hjælpefilen, men jeg kan faktisk ikke finde det i D6. Emnet har været
> diskuteret mange gange i Borlands nyhedgsrupper.

Jeg kan heller ikke finde det i D5 hjælpefilen, men det står i min gamle
TP6 manual.

MVH, René
--
Sent using Virtual Access 5.51 - download your freeware copy now
http://www.atlantic-coast.com/downloads/vasetup.exe



Claus Christiansen (26-07-2002)
Kommentar
Fra : Claus Christiansen


Dato : 26-07-02 10:59

R. A. Larsen <rene.larsen@spamfilter.dk> wrote in
news:VA.00000198.007bea85@spamfilter.dk:

> In article <3d3fd167$0$12707$edfadb0f@dspool01.news.tele.dk>, Uffe
> Kousgaard wrote:
>> Husk, at du aldrig kan regne med værdien af for-løkkens variabel
>> EFTER løkken med mindre du anvender et break undervejs (og det
>> bliver eksekveret). Umiddelbart ville jeg have sagt, at dette står
>> i hjælpefilen, men jeg kan faktisk ikke finde det i D6. Emnet har
>> været diskuteret mange gange i Borlands nyhedgsrupper.
>
> Jeg kan heller ikke finde det i D5 hjælpefilen, men det står i min
> gamle TP6 manual.
>
> MVH, René

Så vidt jeg husker advarer D også hvis man forsøger at bruge værdien
efter for-løkken.

Claus

--
Claus Christiansen, <mailto:cch@unipeople.dk>

personal: http://www.bigfoot.com/~kruc/; pythia: http://www.pythia.dk
============================================--------------------------
"Computers are useless. They can only give you answers."
- Pablo Picasso (1881-1973)

Carsten Bager (30-07-2002)
Kommentar
Fra : Carsten Bager


Dato : 30-07-02 11:08

> Dette er helt normalt, da det er hurtigere at teste for at nå nul end
> øvre grænse. Det anvendes, når det ikke har nogen betydning for den
> kode, der står i for-løkken og "optimizations" er slået til. Hvis du har
> et eksempel, som tæller baglæns og det påvirker resultatet af en
> beregning, er jeg sikker på, at Borland meget gerne vil høre om det. Men
> vær helt sikker inden du melder fejl


Jeg har et eksempel her som ser meget mærkeligt ud
i et debug vindue (p a og b) p starter ved 18 og tæller ned
det burde give et forkert resultat men gør
det ikke.


var
a:array[-1..16] of byte;
b:byte;

Function ErSysIdOk1(id:Word16):boolean;
var
p:integer;
Begin
for p:=-1 to 16 do
a[p]:=p+2;
ErSysIdOk1:=true;
for p:=-1 to 16 do      {P starter ved 18}
b:=a[p];
End;




Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste