Schönen guten Abend die Herren der Schöpfung.
Ich habe mitlerweile meinen eigenen NFO Viewer geschrieben. Erste Gehversuche machte ich mit einer Memo Box. Schnell kam jedoch das Problem der Url Detection auf. Gezwungenermaßen hab ich das Ganze auf ein TRichEdit umgestellt. Die Anwendung bzw. der Viewer ist auch funktionabel aber es gibt da ne Sache die mich stört.
Ich hoffe/denke mal das ich nicht erläutern brauch was NFO Dateien sind. NFO Dateien sind im wesentlichen simple ASCII Arts.
Nun aber zum besagten Problem. Im OnCreate Ereignis der MainForm deklariere ich die Schriftart (Terminal), Größe und das CharSet (OEM/DOS) der RichEdit Komponente. Mit der Anwendung liefere ich eine eigene Schrift mit, aber standardmäßig wird die Schriftart Terminal genutzt. Per OpenDialog lass ich den Inhalt einer NFO Datei einlesen. Und zwar folgendermaßen...
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure TDropForm.Open1Click(Sender: TObject); begin if OpenDialog1.Execute then begin RichEdit1.Clear; LastUsed:= OpenDialog1.FileName; Richedit1.Lines.LoadFromFile (OpenDialog1.FileName); end; end; |
Nach ausführen dieses Codeschnipsels wird allerdings das CharSet des RichEdits geändert. Füge ich da nach RichEdit1.Lines.LoadFromFile (...) die Anweisung RichEdit1.Font.Charset:= OEM_CharSet ein dann bleibt die Schrift unverändert. Änder ich die Prozedur allerdings folgendermaßen, dann wird die NFO richtig dargestellt.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| procedure TDropForm.Open1Click(Sender: TObject); begin if OpenDialog1.Execute then begin RichEdit1.Clear; LastUsed:= OpenDialog1.FileName;
RichEdit1.Font.Charset:= Default_CharSet; Richedit1.Lines.LoadFromFile (OpenDialog1.FileName); RichEdit1.Font.Charset:= OEM_CharSet; end; end; |
Bei einem TMemo funktioniert alles problemlos, aber eben ohne URL Detection. Das oben beschriebene Problem findet sich auch bei der RichEdit Komponente der Jedi Library. Meine Frage diesbezüglich - Muss ich jetzt quasi mit diesem Umstand leben oder gibt es eine Möglichkeit das CharSet zu erzwingen? Denn bei etwas größeren NFO Dateien bemerkt ein geschultes Auge definitiv die Situation das die NFO erst nicht korrekt dargestellt wird.
Wäre schön wenns dafür eine elegantere Lösung gäbe...
Im folgenden (wenn das jemand von euch nachvollziehen möchte) hab ich meine eigens erstellte NFO parat. Diese wird optimal bei der Schriftart Terminal mit einer Größe von 9 Punkten dargestellt.
NFO Datei (txt, 9.65 KB)
Vielen Dank für eure Aufmerksamkeit