AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Fehler-, Hinweis- und Warnmeldung ordentlich verwalten
Thema durchsuchen
Ansicht
Themen-Optionen

Fehler-, Hinweis- und Warnmeldung ordentlich verwalten

Ein Thema von Aviator · begonnen am 24. Sep 2018 · letzter Beitrag vom 28. Sep 2018
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: Fehler-, Hinweis- und Warnmeldung ordentlich verwalten

  Alt 25. Sep 2018, 11:52
Hi und danke für die Rückmeldung. Eigentlich wollte ich gestern Abend ja noch antworten, habe das aber zeitlich nicht mehr geschafft.

Das mit den Resourcestrings wollte ich mir eigentlich immer mal anschauen, bin aber nie wirklich dazu gekommen. Ich würde von einer DLL gerne einen ErrorCode zurückbekommen und diesen in meiner Hauptanwendung dann in eine Message übersetzen wollen. Das Gleiche natürlich dann auch in der eigentlichen Hauptanwendung.

Müssen die ResourceStrings in eine DLL ausgelagert werden? Ich habe kein Problem damit, es interessiert mich nur.

Könnte mir da jemand mal ein kleines Beispielprojekt zusammenfummeln bei dem ich mir das mal anschauen kann? Wichtig wären mir die ErrorCodes damit, wie von Günther angesprochen, einfach nur die Nummer durchgegeben werden müsste wenn es mal zu einem Fehler kommt.

Vorab besten Dank!
>>Könnte mir da jemand mal ein kleines Beispielprojekt zusammenfummeln bei dem ich mir das mal anschauen kann?
man muss nichts fummeln da schon so etwas hier existiert.
Hier gibt es ein Beispiel aus diesem Forum


>>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.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#12

AW: Fehler-, Hinweis- und Warnmeldung ordentlich verwalten

  Alt 25. Sep 2018, 12:24
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.
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.159 Beiträge
 
Delphi 10 Seattle Enterprise
 
#13

AW: Fehler-, Hinweis- und Warnmeldung ordentlich verwalten

  Alt 25. Sep 2018, 12:36
So wie ich es verstanden habe:

Der Unterschied zwischen
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
const
   welcomeMessage = 'Hallo Welt';
begin
   ShowMessage(welcomeMessage);
end;
und
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
resourcestring
   welcomeMessage = 'Hallo Welt';
begin
   ShowMessage(welcomeMessage);
end;
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:
resedit_2018-09-25_12-35-38.png

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 resourcestring -Geschichte so toll macht sind Tools wie z.B. dxGetText welche deine Delphi-Projekte nach Resourcestrings durchsuchen, in .po-Dateien extrahieren und dir eine Methode anbieten wie du in der Delphi-Runtime die Sprachauflösung umschalten kannst sodass du nur einmal sagst useLanguage('EN') und in dem resourceString plötzlich Bonjour le monde drinsteht.


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.

Geändert von Der schöne Günther (25. Sep 2018 um 12:39 Uhr)
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#14

AW: Fehler-, Hinweis- und Warnmeldung ordentlich verwalten

  Alt 25. Sep 2018, 12:53
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.
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.445 Beiträge
 
Delphi 11 Alexandria
 
#15

AW: Fehler-, Hinweis- und Warnmeldung ordentlich verwalten

  Alt 25. Sep 2018, 13:07
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.
Vorteil einer dll ist, dass wenn man nicht nur Texte sondern auch Bilder u.a. hat die da auch noch unterbringen kann.
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.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#16

AW: Fehler-, Hinweis- und Warnmeldung ordentlich verwalten

  Alt 25. Sep 2018, 19:22
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.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#17

AW: Fehler-, Hinweis- und Warnmeldung ordentlich verwalten

  Alt 27. Sep 2018, 17:51
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.)
  Mit Zitat antworten Zitat
Schokohase
(Gast)

n/a Beiträge
 
#18

AW: Fehler-, Hinweis- und Warnmeldung ordentlich verwalten

  Alt 28. Sep 2018, 06:47
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.
Warum sollte das bei XML nicht gehen? Das nennt sich programmieren und dann gibt es auch dort einen Default-Wert zurück. Schau doch mal in den Source wie das bei den Ini-Dateien gemacht wird (mit dem Default-Wert).

Kleiner Hinweis: Die Datei selber kann es nicht.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#19

AW: Fehler-, Hinweis- und Warnmeldung ordentlich verwalten

  Alt 28. Sep 2018, 08:59
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.
Warum sollte das bei XML nicht gehen? Das nennt sich programmieren und dann gibt es auch dort einen Default-Wert zurück. Schau doch mal in den Source wie das bei den Ini-Dateien gemacht wird (mit dem Default-Wert).

Kleiner Hinweis: Die Datei selber kann es nicht.
Kleiner Hinweis: Die Datei selber wird es nie alleine können.
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.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 03:01 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