![]() |
Texte sinnvoll verwalten
Hallo Leute,
immer wieder gibt es wiederkehrende Texte in Fehlermeldungen, Hinweisen usw. Jedesmal schreibt man den gleichen oder fast gleichen Text in Kombination mit irgendwelchen Variablen für gezählte Werte oder Dateinamen. z.B. 3 Datensätze sollen gelöscht werden Wollen Sie das wirklich? oder 3 Datensätze wurden gelöscht oder Datei d:\pfad\pfad2\xyz.ext konnte nicht geöffnet werden Wenn ich das richtig erkannt habe, nützt es ja wohl auch wenig, solche Text in Konstanten zu quetschen, weil Delphi die Text dann trotzdem an jeder Stelle in die EXE hineinschreibt, wo sie benutzt werden (und nicht den Verweis auf den Text) Wie verwaltet Ihr solche Textmeldungen? Macht es überhaupt Sinn, sich damit zu befassen? Freue mich auf Eure Meinungen, Hinweise und Erfahrungen. mfg eddy |
Re: Texte sinnvoll verwalten
Arbeite vielleicht mit Ressourcen oder mit DLLs und lade dann die entsprechenden Wörter .B. beim Start des Programms.
mfg shark |
Re: Texte sinnvoll verwalten
Hallo eddy,
Eine zentrale Verwaltung der Texte mach dahingehend Sinn, als das du bei einer Änderung nur an genau einem Punkt schrauben musst. Außerdem wirds spätestens dann umungänglich, wenn die Anwendung mehrsprachig werden soll. ![]() grüße, daniel |
Re: Texte sinnvoll verwalten
hallo,
du kannst auch einfach "resourcestrings" verwenden. allerdings weiss ich nicht, ob das so was wie const ist!!! schau in der oh, da dürfte was zu drinn stehen. mfg, heiopei |
Re: Texte sinnvoll verwalten
Delphi-Quellcode:
resourcestring
rsMsgText = 'Dies ist bla %d von foo %d.' begin ShowMessage(Format(rsMsgText, [i, Max])); |
Re: Texte sinnvoll verwalten
Hallo Leute,
vielen Dank für die Hinweise. Ich habe mich vorerst mit den "resourcestring" befaßt. Beim Versuch, eine spezielle String in der EXE-Datei zu finden, bin ich aber gescheitert. Daraus resultiert meine nächste Frage: Was macht der Delphi-Compiler mit den definierten ResourceString (-Konstanten)? Kann man diese in der EXE-Datei irgendwie finden? mfg eddy |
Re: Texte sinnvoll verwalten
Guck dir deine Exe mal mit einem Resourcen-Hacker an. ResourceStrings heißen so, weil sie eben in der Ressource stehen. Dort könntest du sie bequem editieren und so das ganze mehrsprachig machen zum Beispiel.
|
Re: Texte sinnvoll verwalten
Wieso frägst Du nach Delphi ? Geht es um eigene Fehermeldungen, oder welche von Windows ? Wozu gibt es Text- und Ini-Dateien ?
|
Re: Texte sinnvoll verwalten
ResourcenStrings sind ganz "normal" in der EXE-Datei zu finden. Die werden aber als 2-Byte Unicode gespeichert und nicht als normaler 1-Byte Ansi-Text. Mit einem Hexeditor läßt sich sowas finden indem man jedes zweite Byte 0 setzt, also etwa "Hallo" -> "H#0a#0l#0l#0o#0", oder eine Unicode-Suchfunktion verwendet. (siehe in meiner Signatur).
Allgemein verwendet die VCL überall resourcenstrings, so gibt es z.B. vordefinierte Standardfehlermeldungen wenn Dateien nicht geöffnet werden können. Fehlermeldungen lassen sich meistens gut durch Exceptions realisieren. Ich finde resourcenstrings am besten, weil die VCL sie verwendet und diese Standardmeldungen auch übersetzt werden sollten, sie sich zum leichten Übersetzen eignen, es viele darauf zugeschnittene Übersetzungstools gibt, es Windows-Standard ist, ... Resourcen stehen in einem Bereich der EXE, der so organisiert ist, daß Änderungen des Resourcenbereichs kein neukompilieren des Programmes erfordern. Mit einem ResourceEditor kann man also auch fertige Programme übersetzen, um das bequemer zu machen gibt es aber Übersetzungstools. |
Re: Texte sinnvoll verwalten
Hallo mael,
mit Hilfe Deiner Erklärungen und Deines Hex-Editor habe ich die RecourceString in der EXE gefunden. Ich werde mich wohl noch ein bisschen mehr mit dem Thema befassen müssen. mfg eddy |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:52 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