![]() |
[erledigt]Unterschied D5 und D7
folgende Funktion wird von Delphi 5 pro problemlos compiliert
Delphi-Quellcode:
in delphi 7 wird in der zeile
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;
Delphi-Quellcode:
mit der fehlermeldung abgebrochen ' der linken seite kann nichts zugewiesen werden'
RunTime := RunTime + Step;
bin für jede erklärung dankbar raik |
Re: Unterschied D5 und D7
kann es sein, das runtime in d7 eine "systemvariable" is, bzw eine standard function?
|
Re: Unterschied D5 und D7
Hallo kiar,
könnte es eventuell daran liegen, dass RunTime eine Konstante ist? Tschüß Markus |
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 |
Re: Unterscied D5 und D7
Hi,
Das ist nur eine Sache der Einstellung. Im Menü Projekt|Optionen...|Compiler kannst du ![]() "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-} |
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
|
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... |
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 |
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: |
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. |
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