Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi [erledigt]Unterschied D5 und D7 (https://www.delphipraxis.net/20301-%5Berledigt%5Dunterschied-d5-und-d7.html)

kiar 15. Apr 2004 21:11


[erledigt]Unterschied D5 und D7
 
folgende Funktion wird von Delphi 5 pro problemlos compiliert
Delphi-Quellcode:
function fkt_CalcWorkTime(WAZ: Double):TStringList;
const
    RunTime : TDateTime = 0.25 + 1/48;
    EndTime : TDateTime = 0.75 - 2/48;
    Step   : TDateTime = 1/48;
var
    S1      : TStringList;

Begin
     S1 := TStringList.Create;
       Try
         WAZ:= (24/WAZ)/5;
         while xx <= EndTime - WAZ do
           Begin
             S1.Add(TimeToStr(RunTime) +' - '+ TimeToStr(RunTime + WAZ));
             RunTime := RunTime + Step;
           end;
       except
        S1.Free;
       end;
     Result:=S1;
end;
in delphi 7 wird in der zeile
Delphi-Quellcode:
 RunTime := RunTime + Step;
mit der fehlermeldung abgebrochen ' der linken seite kann nichts zugewiesen werden'


bin für jede erklärung dankbar

raik

glkgereon 15. Apr 2004 21:13

Re: Unterschied D5 und D7
 
kann es sein, das runtime in d7 eine "systemvariable" is, bzw eine standard function?

Markus K. 15. Apr 2004 21:16

Re: Unterschied D5 und D7
 
Hallo kiar,
könnte es eventuell daran liegen, dass RunTime eine Konstante ist?

Tschüß Markus

kiar 15. Apr 2004 21:17

Re: Unterschied D5 und D7
 
ne, das glaub ich nicht, es wird daran liegen, das ich runtime als const ausgeführt habe, aber warum geht es dann in delphi 5?

raik

toms 15. Apr 2004 21:18

Re: Unterscied D5 und D7
 
Hi,

Das ist nur eine Sache der Einstellung.
Im Menü Projekt|Optionen...|Compiler kannst du

http://delphi.about.com/library/graphics/typedc.gif


"Assignable typed constants" (engl Version) auswählen, damit du
Lokalen Konstanten beim Deklarieren einen Wert zuweisen kannst und die Konstante wie
eine Variable behandeln kannst.

Alternative:


Delphi-Quellcode:
{$j+}
const
    RunTime : TDateTime = 0.25 + 1/48;
    EndTime : TDateTime = 0.75 - 2/48;
    Step   : TDateTime = 1/48;
{$j-}

SirThornberry 15. Apr 2004 21:18

Re: Unterschied D5 und D7
 
Es dürfte an dem "const" liegen. In C++ war/(ist?) es so das constanten nicht geändert werden können weil sie eben konstant sind. In Delphi war das bisher anders zumindest bis version 6 oder 7

Christian Seehase 15. Apr 2004 21:18

Re: Unterschied D5 und D7
 
Moin Raik,

Du hast wohl in D5 die Projektoption "Zuweisbare typisierte Konstanten" aktiviert.
Wenn Du das in D7 auch machst funktioniert es dort auch.
Immerhin ist "RunTime" ja als Konstante deklariert...

Mirilin 15. Apr 2004 21:19

Re: Unterschied D5 und D7
 
:hi:

hilft
{$Writableconst on} ?
Hilfe sagt
Anmerkungen

Die Direktive $J legt fest, ob typisierte Konstanten geändert werden können. Im Status {$J+} ist eine Änderung möglich. Typisierte Konstanten sind in diesem Fall mit initialisierten Variablen vergleichbar. Im Status {$J-} sind typisierte Konstanten tatsächlich konstant. Jeder Versuch, sie zu ändern, führt zu einer Fehlermeldung durch den Compiler.


mfg Tobias

//Edit :cry: würd ich doch nicht immer so langsam sein

glkgereon 15. Apr 2004 21:24

Re: Unterschied D5 und D7
 
ähm, ma ne frage, redet ihr da über constante, die im lauf des progs geändert werden können

falls ja, ist es nicht der sinn einer konstanten, eben NICHT geändert werden zu können? :gruebel:

kiar 15. Apr 2004 21:26

Re: Unterschied D5 und D7
 
habe die alternative von Thomas genommen,

->man lernt nie aus, auch im Alter <- ein hinweis an die jugend :mrgreen:

danke raik


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:28 Uhr.
Seite 1 von 2  1 2      

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