Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Resourcestring vs. const (https://www.delphipraxis.net/140297-resourcestring-vs-const.html)

HeikoAdams 16. Sep 2009 07:51

Re: Resourcestring vs. const
 
Ich hab mich da auf die Onlinehilfe von Delphi 2K6 verlassen, in der zu resourcestrings folgendes steht:
Zitat:

Ressourcen-Strings werden als Ressource gespeichert und zu einer ausführbaren Datei oder Bibliothek gelinkt. Deshalb ist keine erneute Compilierung des Programms erforderlich, wenn ein Ressourcen-String geändert wird.

Bernhard Geyer 16. Sep 2009 08:04

Re: Resourcestring vs. const
 
Zitat:

Zitat von Blup
Klar erzeugt der Compiler unterschiedlichen Code. Die Aussage bezieht sich auf die Benutzung der Konstanten.
...
Delphi 2007 sagt: Adresse ist gleich
Ich glaube der Delphi-Compiler macht das schon immer so.

Du überprüft gerade ob die Referenzzählung von Delphi bei Strings funktioniert. Und es wäre schlecht wenn das bei D2007 nicht der Fall wäre.

Wenn da mußt du die Adresse der Konstante mit deiner Variable vergleichen bzw. folgenden Test machen

Delphi-Quellcode:
const
  cMyString = 'BlaBla %s'

...


  s1 := Format(cMyString, 'xyz');

...

  s2 := Format(cMyString, 'abc');
Und jetzt kontrollieren wie oft 'BlaBla %s' in der Exe vorhanden ist.

sirius 16. Sep 2009 08:49

Re: Resourcestring vs. const
 
Zitat:

Zitat von Highttower
Und wie macht man das, mit dem ändern ohne neu zu kompiliren? Die Exe mit nem Texteditor aufmachen und dann nach Resourcestrings suchen? - Vermutlich nicht.
Oder meinst du das nach dem Kompiliern, vor dem Linken? Also irgendwo in den Objektdateien, wenn es sowas bei Delphi noch gibt?

Es gibt Ressourceneditoren. Suche einfach mal danach.
Da man dies - wie schon gesagt - hauptsächlich dafür einsetzt eine neue Sprache seinem Programm hinzuzufügen (was , egal ob nach oder vor dem compilieren, mit Ressourcen deutlich einfacher geht), gibt es auch spezielle Programme (bspw: in Delphi ist der Translationmanager dabei) für die Übersetzungen.

himitsu 16. Sep 2009 10:07

Re: Resourcestring vs. const
 
Zitat:

Zitat von Bernhard Geyer
Du überprüft gerade ob die Referenzzählung von Delphi bei Strings funktioniert.

Wenn für jede Verwendungsstelle ein eigener String in der EXE angelegt würde, dann würden sich auch die Adressen unterscheiden :zwinker:

Phoner 16. Sep 2009 12:28

Re: Resourcestring vs. const
 
Ich habe da noch eine ganz andere frage zu:
Ich definiere 1000 Strings mittels const, referenziere die aber kein einziges mal. Ich hoffe mal, dass die niemals mit in die Exe gelinkt werden.
Bei resourcestring bin ich mir dagegen nicht so sicher - zumindest sind irgendwie alle strings aus "Consts.pas" (und andere) immer enthalten.

himitsu 16. Sep 2009 12:49

Re: Resourcestring vs. const
 
Ich hoffe mal, daß auch bei den ResourceStrings der Kompiler nur diese mit einlinkt, welche auch verwendet wird.

Was die Strings aus der Const.pas angeht, da werden die Funktionen wo diese enthalten sind oftmals verwendet und z.B. über die VCL oder Initialisations-Abschnitte vieler Delphi-Units genutzt und demnach werden die Strings irgendwo "theoretisch" und demnach auch mit eingebaut.

turboPASCAL 16. Sep 2009 13:00

Re: Resourcestring vs. const
 
Zitat:

Ich hoffe mal, daß auch bei den ResourceStrings der Kompiler nur diese mr einlinks, welche auch verwendet werden.
Jo, der baut nur das ein was man braucht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:53 Uhr.
Seite 2 von 2     12   

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