Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Texte sinnvoll verwalten (https://www.delphipraxis.net/45789-texte-sinnvoll-verwalten.html)

eddy 12. Mai 2005 11:12


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

s.h.a.r.k 12. Mai 2005 11:21

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

Sanchez 12. Mai 2005 11:21

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.

Hier hast du mal einen Ansatz einer möglichen Lösung.

grüße, daniel

heiopei 12. Mai 2005 11:32

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

Luckie 12. Mai 2005 12:31

Re: Texte sinnvoll verwalten
 
Delphi-Quellcode:
resourcestring
  rsMsgText = 'Dies ist bla %d von foo %d.'
begin
  ShowMessage(Format(rsMsgText, [i, Max]));

eddy 12. Mai 2005 20:24

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

Luckie 12. Mai 2005 20:44

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.

Hansa 12. Mai 2005 20:52

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 ?

mael 12. Mai 2005 22:52

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.

eddy 13. Mai 2005 11:06

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.
Seite 1 von 2  1 2      

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