AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi [GELÖST] Compilerschalter $J+ ohne Funktion?
Thema durchsuchen
Ansicht
Themen-Optionen

[GELÖST] Compilerschalter $J+ ohne Funktion?

Ein Thema von Frickler · begonnen am 15. Mär 2024 · letzter Beitrag vom 15. Mär 2024
Antwort Antwort
Frickler

Registriert seit: 6. Mär 2007
Ort: Osnabrück
563 Beiträge
 
Delphi XE6 Enterprise
 
#1

[GELÖST] Compilerschalter $J+ ohne Funktion?

  Alt 15. Mär 2024, 08:21
Zuweisbare typisierte Konstanten funktionieren hier nur, wenn ich das in den Projektoptionen setze. {$J+} oder {$WRITEABLECONST ON} im Quelltext hat überhaupt keine Auswirkung. Getestet in Delphi XE6 und 10.2. Was mache ich falsch?

Geändert von Frickler (15. Mär 2024 um 08:52 Uhr)
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Compilerschalter $J+ ohne Funktion?

  Alt 15. Mär 2024, 08:35
Die Konstante muss typisiert sein, also nicht const number = 42 , sondern const number: Byte = 42 Die Konstante darf nicht inline sein, sondern muss (wie früher) vor dem begin des Blocks deklariert worden sein.

Hier ein Beispiel das funktioniert:

Delphi-Quellcode:
program Project1;

{$WRITEABLECONST ON}
const
   number: Byte = 42;
begin
   number := 99;
end.
  Mit Zitat antworten Zitat
Frickler

Registriert seit: 6. Mär 2007
Ort: Osnabrück
563 Beiträge
 
Delphi XE6 Enterprise
 
#3

AW: Compilerschalter $J+ ohne Funktion?

  Alt 15. Mär 2024, 08:50
Danke.

Ich hatte den Schalter an der falschen Stelle gesetzt...
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: [GELÖST] Compilerschalter $J+ ohne Funktion?

  Alt 15. Mär 2024, 08:58
Wo?

In einer anderen Unit?

In Units sollte er "eigentlich" von der Deklaration, bis zum Unit-Ende funktionieren, also sobald er vor/über dem VAR steht.





Bezüglich Schaltern für Warnungen und Fehlerprüfung, hatte ich es aber auch schon, dass man Diese nicht zu nah definieren sollte.
Delphi-Quellcode:
if irgendwas then
  {$xyz on}
  machwas
  {$xyz off}
  ;
Hier ist es schon passiert, dass das OFF bereits angewendet, bevor machwas ausgeführt wurde.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Frickler

Registriert seit: 6. Mär 2007
Ort: Osnabrück
563 Beiträge
 
Delphi XE6 Enterprise
 
#5

AW: [GELÖST] Compilerschalter $J+ ohne Funktion?

  Alt 15. Mär 2024, 09:49
Code:
procedure Bla;
const test: string = 'nein';
begin
  {$J+}
  test := 'ja';
  {$J-}
end;
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: [GELÖST] Compilerschalter $J+ ohne Funktion?

  Alt 15. Mär 2024, 09:58
{$J} betrifft die Deklaration der Konstante, nicht die Nutzung.
Delphi-Quellcode:
procedure Bla;
{$J+}
const test: string = 'nein';
{$J-}
begin
  test := 'ja';
end;
Allerdings
Delphi-Quellcode:
var test: string = 'nein';
procedure Bla;
begin
  test := 'ja';
end;
Aber z.B. als Inline läuft das {$J} nicht so, wie man es sich denkt,
obwohl Variablen und Konstanten seit Delphi 10.3 per se sowas können.
Delphi-Quellcode:
procedure Bla;
begin
  {$J+}
  const test: string = 'nein';
  {$J-}
  test := 'ja';
end;
Wobei {$J+} hier garkeinen Einfluß hat, egal wo deklariert ... nichtmal als Parameter -J+ für den Compiler .
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (15. Mär 2024 um 10:05 Uhr)
  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 09:06 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