![]() |
resourcestring zur laufzeit auslesen und neu befüllen
Hallo,
mal eine Frage Habe ich eine Change innerhalb der Laufzeit von einem Programm die resourcestring einzulesen und diese auszuwerten bzw. diese auch mit anderen Strings zu befüllen ?? |
Re: resourcestring zur laufzeit auslesen und neu befüllen
Auslesen geht einfach, aber befüllen ist unmöglich, da eine EXE sich nicht selber verändern/umschreiben kann.
![]() ![]()
Delphi-Quellcode:
dieses ist fast wie Const, blos daß die String-Konstante an einer anderen Stelle gespeichert wird.
ResourceString
abc = '123'; s := abc; |
Re: resourcestring zur laufzeit auslesen und neu befüllen
Zitat:
alles an seinem Ort: Resourcen sind Read-Only-Texte (oder anderes), die quasi mitgeliefert werden und nicht veränderbar sind, solange nicht jemand eine neue Exe mit möglicherweise geänderten Texten kompiliert. Insofern sind Resourcen genauso Compile-Time-definiert wie Stringkonstanten im Programm, aber doch besser zu handhaben als in der Source verstreute Texte, z.B. beim Wechsel der Sprache. Ausserdem gibt es Resource-Editoren, mit denen man in einer fertigen Exe oder Dll die Texte ändern kann, aber das sind eben Spezialwerkzeuge wie der Compiler selbst. Texte, die geändert werden können, gehören in eine Konfigurationsdatei, also Ini-Datei, config-Datei oder Registry. Entweder liefert man die mit oder man füllt sie beim ersten Start aus Resourcen. Wenn der geänderte Text nicht persistent sein soll, braucht man garnichts weiter, man weist ihn einfach der Variablen zu. Gruss Reinhard |
Re: resourcestring zur laufzeit auslesen und neu befüllen
Zitat:
1. Eigene EXE umbenennen (in <Name>_OLD.EXE) 2. Kopie der umbenannten EXE erstellen: <Name>.EXE 3. In der <Name>.EXE die Resourcen beliebig ändern. 4. Beim Programmestart ein etwaig vorhandenens <Name>_OLD.EXE löschen (oder über Tricks beim Programmende) Man ändert zwar nicht direkt in der EXE, aber immerhin: beim nächsten Start sind die geänderten Texte vorhanden. |
Re: resourcestring zur laufzeit auslesen und neu befüllen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:51 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