AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

const zur Laufzeit zuweisen

Ein Thema von Surrounder · begonnen am 2. Aug 2005 · letzter Beitrag vom 5. Aug 2005
Antwort Antwort
Benutzerbild von Surrounder
Surrounder

Registriert seit: 26. Sep 2003
Ort: Stuttgart
177 Beiträge
 
Delphi 2006 Professional
 
#1

const zur Laufzeit zuweisen

  Alt 2. Aug 2005, 08:51
Hallo Forum,

ich experimentuiere gerade mit einem Language Tool. Jetzt schlägt mir das Tool vor auch einige Texte die ich im const Bereich habe als Strings mit in die Übersetzung auf zu nehmen. So weit auch ok. Das Tool ersetzt den const Bereich dann wie folgt:

Delphi-Quellcode:
const
   Msg1000: string = ''; (* Test *)
und macht dann einen Aufruf im FormCreate

Delphi-Quellcode:
procedure TMain.UpdateString;
begin
   Msg1000 := siLang1.GetTextOrDefault( 'strMsg1000' );
end;
Nur hat der Compiler damit ein Problem und sagt "Der linken Seite kann nix zugewiesen werden"

Ich habe so was noch nirgends gesehen, geht das denn überhaupt in Delphi. Schon klar dass ich das auch anderst machen kann, mir geht es gerade nur mal grundsätzlich darum ob das überhaupt geht was das Tool da erzwingen will.
In C geschrieben und schön war zuletzt Franz Schuberts 9. Symphonie
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.169 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: const zur Laufzeit zuweisen

  Alt 2. Aug 2005, 09:12
Es geht, wenn Du die entsprechenden Compilerschalter setzt: Compiler/Syntaxoptionen -> "Zuweisbare Typisierte Konstanten"
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von The-X
The-X

Registriert seit: 31. Aug 2003
Ort: Woffelsbach / user.exe ;)
377 Beiträge
 
Delphi 7 Personal
 
#3

Re: const zur Laufzeit zuweisen

  Alt 4. Aug 2005, 02:24
oder mit ein wenig Zeiger-Biege-Kunst

Delphi-Quellcode:
program Project1;

{$APPTYPE CONSOLE}

Type
  PString=^String;

Const
  S:string ='this is not a test';

var
  T:PString;

begin
  T:=@S;
  Delete(T^,9,4);
  Writeln(S);
  Readln;
end.
Ausgabe: "this is a test"
WGET ftp://root@fbi.us.gov/secret/worldreign.exe <- damit werde ich die Weltherrschaft an mich reissen!
=> irc://irc.quakenet.eu.org:6667/delphi.de da werden Sie auch (manchmal) geholfen
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#4

Re: const zur Laufzeit zuweisen

  Alt 4. Aug 2005, 02:35
Zitat von Surrounder:
Ich habe so was noch nirgends gesehen, geht das denn überhaupt in Delphi. Schon klar dass ich das auch anderst machen kann, mir geht es gerade nur mal grundsätzlich darum ob das überhaupt geht was das Tool da erzwingen will.
Ja, es geht, leider In Delphi 7 war die Compilereinstellung auch defaultmaessig an, in Delphi 2005 ist sie aus, deshalb kracht es bei manchen Komponenten/Programmen immer wieder
IMO solltest du davon Abstand nehmen: Konstanten sind Werte, die waehrend der Programmausfuehrung nicht geaendert werden. Wenn sie geaendert werden sollen, sind es Variablen und sollten auch so deklariert werden. Warum einige Programmierer typisierte Konstanten als Variablen mit Default-Wert missbrauchen, ist mir ein Raetsel

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

Re: const zur Laufzeit zuweisen

  Alt 4. Aug 2005, 07:54
Zitat von alcaeus:
Warum einige Programmierer typisierte Konstanten als Variablen mit Default-Wert missbrauchen, ist mir ein Raetsel
Ist doch eigentlich ganz klar (bei mir auf jeden Fall) - bis Delphi 5 (6 weiß ich nicht), konnte man initialisierte Variablen NUR so schreiben, also im folgenden Fall:
Delphi-Quellcode:
var
  Init1: integer = 5;
const
  Init2: integer = 5;
... ging unter Delphi 5 nur die zweite Variante. Seit Delphi 7 geht auch die erste Variante und die zweite ist "verpönt", man kann sie aber per Compilerschalter aktivieren. Ich mache es jetzt auch nach Variante 1 (ist ja auch logischer), aber ich habe noch ziemlich viele alte Quellen hier herumliegen, die Variante 2 benutzen (eben weil's früher nicht anders ging).
Volker
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: const zur Laufzeit zuweisen

  Alt 4. Aug 2005, 09:22
Verwende doch resourcestring anstelle der Konstanten.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: const zur Laufzeit zuweisen

  Alt 4. Aug 2005, 18:26
[quote="alcaeus"]
Zitat von Surrounder:
Warum einige Programmierer typisierte Konstanten als Variablen mit Default-Wert missbrauchen, ist mir ein Raetsel
Das sind wohl diejenigen, die typisierte Konstanten nicht als Konstanten, sondern als statische Variablen, wie man sie z.B. von C kennt, betrachten

Aber ich glaube, die Dikussion gabs hier schonmal...
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#8

Re: const zur Laufzeit zuweisen

  Alt 4. Aug 2005, 20:18
[quote="Chewie"]
Zitat von alcaeus:
Zitat von Surrounder:
Warum einige Programmierer typisierte Konstanten als Variablen mit Default-Wert missbrauchen, ist mir ein Raetsel
Das sind wohl diejenigen, die typisierte Konstanten nicht als Konstanten, sondern als statische Variablen, wie man sie z.B. von C kennt, betrachten

Aber ich glaube, die Dikussion gabs hier schonmal...
KLICK
  Mit Zitat antworten Zitat
Benutzerbild von Surrounder
Surrounder

Registriert seit: 26. Sep 2003
Ort: Stuttgart
177 Beiträge
 
Delphi 2006 Professional
 
#9

Re: const zur Laufzeit zuweisen

  Alt 5. Aug 2005, 20:17
Danke für Eure Hinweise, wollte nur sagen dass ich nach genauerer Überlegung davon Abstand genommen habe und das über die Resource Strings gemacht habe, weil mir das etwas zu komisch war.
In C geschrieben und schön war zuletzt Franz Schuberts 9. Symphonie
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 12:53 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