AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Prism resourcestring zur laufzeit auslesen und neu befüllen
Thema durchsuchen
Ansicht
Themen-Optionen

resourcestring zur laufzeit auslesen und neu befüllen

Ein Thema von Digielm · begonnen am 2. Jul 2009 · letzter Beitrag vom 3. Jul 2009
Antwort Antwort
Digielm

Registriert seit: 2. Aug 2006
246 Beiträge
 
Delphi 5 Enterprise
 
#1

resourcestring zur laufzeit auslesen und neu befüllen

  Alt 2. Jul 2009, 14:25
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 ??
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: resourcestring zur laufzeit auslesen und neu befüllen

  Alt 2. Jul 2009, 14:42
Auslesen geht einfach, aber befüllen ist unmöglich, da eine EXE sich nicht selber verändern/umschreiben kann.

MSDN-Library durchsuchenLoadString oder via Delphi-Referenz durchsuchenResourceString

Delphi-Quellcode:
ResourceString
  abc = '123';

s := abc;
dieses ist fast wie Const, blos daß die String-Konstante an einer anderen Stelle gespeichert wird.
$2B or not $2B
  Mit Zitat antworten Zitat
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#3

Re: resourcestring zur laufzeit auslesen und neu befüllen

  Alt 3. Jul 2009, 00:06
Zitat von Digielm:
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 ??
Hallo,

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
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: resourcestring zur laufzeit auslesen und neu befüllen

  Alt 3. Jul 2009, 07:20
Zitat von himitsu:
Auslesen geht einfach, aber befüllen ist unmöglich, da eine EXE sich nicht selber verändern/umschreiben kann.
Über einen Trick geht es schon:
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.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: resourcestring zur laufzeit auslesen und neu befüllen

  Alt 3. Jul 2009, 08:09
Zitat von alzaimar:
3. In der <Name>.EXE die Resourcen beliebig ändern.
5. Virenscanner beruhigen (der sollte sich hoffentlich beschweren)
$2B or not $2B
  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 02:52 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