![]() |
AW: Fehler-, Hinweis- und Warnmeldung ordentlich verwalten
Zitat:
man muss nichts fummeln da schon so etwas hier existiert. ![]() >>Müssen die ResourceStrings in eine DLL ausgelagert werden? Ich habe kein Problem damit, es interessiert mich nur. Nein, aber wenn man Multilanguage macht, ergibt das alles mehr Sinn es in DLL auszulagern. |
AW: Fehler-, Hinweis- und Warnmeldung ordentlich verwalten
Den Thread und die Beispiele habe ich gesehen. Funktioniert bei mir aber leider nicht. Bekomme das Projekt nicht richtig geöffnet, bzw. es funktioniert das dem Kompilieren nicht.
Liegt aber wohl daran, dass es schon 15 Jahre alt ist und mit einer uralten Version gemacht wurde. Das Prinzip mag vielleicht noch das Gleiche sein, aber mit dem "Beispielprojekt" komme ich nicht wirklich zurecht. |
AW: Fehler-, Hinweis- und Warnmeldung ordentlich verwalten
Liste der Anhänge anzeigen (Anzahl: 1)
So wie ich es verstanden habe:
Der Unterschied zwischen
Delphi-Quellcode:
und
procedure TForm1.Button1Click(Sender: TObject);
const welcomeMessage = 'Hallo Welt'; begin ShowMessage(welcomeMessage); end;
Delphi-Quellcode:
ist einzig und allein wie der Compiler das 'Hallo Welt' in die .exe-Datei einbettet. Du kannst z.B. den Text mit einem Editor nachträglich anpassen ohne die .exe neu zu kompilieren:
procedure TForm1.Button1Click(Sender: TObject);
resourcestring welcomeMessage = 'Hallo Welt'; begin ShowMessage(welcomeMessage); end; Anhang 50025 Die Geschichte mit DLL-Dateien ist, soweit ich das mal gesehen habe, dass man die Resourcen-Strings in eine externe DLL-Datei auslagert und die Sprache umstellt indem man die DLL tauscht. Was ist daran jetzt besser als z.B. als an einer Textdatei? Habe ich auch nicht verstanden. Was die
Delphi-Quellcode:
-Geschichte so toll macht sind Tools wie z.B.
resourcestring
![]()
Delphi-Quellcode:
und in dem resourceString plötzlich Bonjour le monde drinsteht.
useLanguage('EN')
Hört sich wahrscheinlich immer noch völlig abstrakt an. Probier einfach mal dxGetText aus. Da kümmert man sich um den ganzen Kram nicht mehr. |
AW: Fehler-, Hinweis- und Warnmeldung ordentlich verwalten
Das habe ich soweit verstanden. Aber wie kombiniere ich das jetzt noch mit einem ErrorCode? Muss ich mir da selbst wieder ein Dictionary bauen das mir den ErrorCode zu einem ResourceString umwandelt oder geht das irgendwie eleganter?
EDIT: Weil dann könnte ich theoretisch auch bei meiner bisherigen Lösung bleiben. Da mache ich das nämlich auch so. Ist nur eben sehr viel Handarbeit (die ich vermeiden wollte). Die Zahlen der ResourceStrings kann man wohl nicht nehmen wie ich das gesehen habe da sich diese wohl beim erneuten Kompilieren der Anwendung verschieben könnten. Und eigentlich wollte ich bei den ErrorCodes mit 0 (für kein Error) anfangen und dann nach oben zählen. |
AW: Fehler-, Hinweis- und Warnmeldung ordentlich verwalten
Zitat:
Nachteil einer dll kann sein, dass beim Austauschen auch mal ein Virenschutzprogramm stört. (selber erlebt) Leider ist das Thema sehr unübersichtlichund jeder kocht sei eigenes Süppchen. Ich habe damals etwas von Turbopower übernommen. |
AW: Fehler-, Hinweis- und Warnmeldung ordentlich verwalten
Hallo Aviator,
am einfachsten erklärt sich das mit den DLL Dateien so: Betrachte die als eine Art binäre INI-Datei, mit dem Vorteil das man innerhalb der IDE alles auf anhieb zusammen hat. Wie vom Vorredner hat es auch den Vorteil das man Daten jeglicher Art mit reinquetschen kann, geht prinzipiell auch mit INI aber ist doch etwas weit entfernt von "es macht Sinn". Mit AntiViren Programme bei reinen ResourceString DLLs habe ich bis jetzt noch keine negativen Erfahrung sammeln können, aber klar ist es vorstellbar. Wenn Du tatsächlich eine Demo benötigst, schreib ich das 15 Jahre alte Demo um so das auch ein Tokyo damit klarkommt, aber wie Du schon richtig bemerkt hast, es bleibt alles beim alten Prinzip, ResourceString einen qualifizierten Identifier geben, Text rein, im Project Source auf die ID per Konstante oder wie auch immer zugreifen, fertig, bei Sprachänderung einfach "Sprache_DE.dll" mit "Sprache_EN.dll" austauschen, so als Beispiel. Alles ziemlich einfach, ich bin auch der Meinung das Delphi sowas onboard dabei hat, so einen DLL Sprach-Baukasten (ist das eventuell da aufm Photo?)..... ich selbst habs immer oldschool per Notepad++ erledigt, kommt ja kein Code rein, nur ResourceStrings. Man kann auch, damit Leute selbst handanlegen können, das Prinzip auf INI oder XML anwenden, mit einer reinen Text-Datei die auf Zeile X für Text X, sowas habe ich noch nie gemacht, das wäre mir auch zu Fehleranfällig, bei INI kannst Du wenigstens einen Default Wert in Source aufnehmen, bei XML das weiß ich gar nicht ob das auch geht. Ist auf jeden Fall einen Blick Wert sich damit mal näher zu Beschäftigen, einmal drinne ists wie Fahradfahren, easy. Ich bin ehrlich gesagt davon ausgegangen dass das mit DLL mehr als Überholt ist, ich mache das seit meinem Umstieg von Pascal nach Delphi, also schon eine Weile her.... dadurch das es so einfach ist, habe ich mich nie wirklich um ein upgrade bemüht. |
AW: Fehler-, Hinweis- und Warnmeldung ordentlich verwalten
Hallo zusammen,
ich habe jetzt mal noch einen Tag darüber nachgedacht und ein paar Dinge ausprobiert. Ich bin jetzt soweit, dass ich die Meldungen wohl als Strings in der Datenbank ablege und dann mit einer Konstante aus dem SourceCode darauf verweise. In der Datenbank steht dazu auch noch, welcher MessageType das ist. Also Information, Warning, Error, Confirmation. Beim Start der Anwendung werden diese Strings dann eingelesen und in einer MessageHelper Klasse verwaltet. Wenn ich nun eine Meldung anzeigen will, übergeben ich nur noch den ErrorCode und erhalte direkt die Message. Ich denke, dass das für mich eine praktikable Lösung ist. Das mit den Resourcestrings werde ich aber auf jeden Fall im Hinterkopf behalten und mir das dann auch bei Gelegenheit nochmal anschauen. Danke für den Input. (Obwohl ich die Zuordnung von ErrorCode/Konstante zu ResourceString noch nicht so richtig auf dem Schirm habe.) |
AW: Fehler-, Hinweis- und Warnmeldung ordentlich verwalten
Zitat:
Kleiner Hinweis: Die Datei selber kann es nicht. |
AW: Fehler-, Hinweis- und Warnmeldung ordentlich verwalten
Zitat:
Delphi-Quellcode:
Ini.ReadString('SEKTION', 'SCHLÜSSEL', 'GRUNDWERT');
Ich sagte/meinte, das ich nicht weiß ob XML eine ähnlich einfache basis-funktion bietet ohne selbst was dafür zu programmieren. So schwer zu verstehen? Das wenn etwas fehlen sollte man es sich selbst reinprogrammieren kann, dieses Möglichkeit ist mir bewusst. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:06 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