Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

beep Sound von Windows wenn KeyDown Event gesendet wird -.-

4 views
Skip to first unread message

Jens Kallup

unread,
Apr 8, 2022, 4:59:15 AM4/8/22
to
Hallo,

ich habe folgenden Codeschnippsel aus meinen Projekt (unte dem Text).
Wenn ich die DBEdit Felder mit der Maus selektiere, dann verhält sich
das Programm so wie es soll.
Wenn ich aber nun die KeyDown1 und KeyDown2 Funktion benutzen möchte,
erhalte ich Beep Sound von Window. Dies ist natürlich mit der Zeit
nervig.
Ich weiss aber nun nicht, wo ich das abstellen kann, bzw. weiss ich
nicht wo der Fehler sein sollte.
Daher meine Frage: wie kann ich die Wiedergabe des Sounds stoppen ?
Ich denke jetzt nicht an die Sound-Einstellungen von Windows selbst.
Vielmehr an Delphi 7.

Vielen Dank für die Hilfe.
Jens Kallup

procedure TForm1.DBEdit1Enter(Sender: TObject); begin DBEdit1.Color :=
clYellow; Table1.Edit; end;

procedure TForm1.DBEdit2Enter(Sender: TObject); begin DBEdit2.Color :=
clYellow; Table1.Edit; end;

procedure TForm1.DBEdit1Exit (Sender: TObject); begin DBEdit1.Color :=
clWhite; Table1.Edit; Table1.Post; end;

procedure TForm1.DBEdit2Exit (Sender: TObject); begin DBEdit2.Color :=
clWhite; Table1.Edit; Table1.Post; end;

procedure TForm1.DBEdit1KeyDown(Sender: TObject; var Key: Word; Shift:
TShiftState);
begin
if key = VK_RETURN then
begin
DataSource1.AutoEdit := true;
Table1.Edit;
Table1.Post;
DBEdit2.SetFocus;
end;
end;
procedure TForm1.DBEdit2KeyDown(Sender: TObject; var Key: Word; Shift:
TShiftState);
begin
if key = VK_RETURN then
begin
DataSource1.AutoEdit := true;
Table1.Edit;
Table1.Post;
DBEdit1.SetFocus;
end;
end;
kallup_jens.vcf

Jens Köhler

unread,
Apr 8, 2022, 10:57:41 AM4/8/22
to
Am 08.04.2022 um 10:59 schrieb Jens Kallup:
> Hallo,
>
> procedure TForm1.DBEdit1KeyDown(Sender: TObject; var Key: Word; Shift:
> TShiftState);
> begin
>   if key = VK_RETURN then
>   begin
>     DataSource1.AutoEdit := true;
>     Table1.Edit;
>     Table1.Post;
>     DBEdit2.SetFocus;
>   end;
> end;

Hallo, versuch mal key := 0; am Ende

Jens Kallup

unread,
Apr 8, 2022, 11:15:23 AM4/8/22
to
Hallo,

het leider nicht den gewünschten Effekt.
Ich habe das Projekt auf github veröffentlicht.
Eine .exe ist ebenfalls dabei, die ich mit upx.exe gepackt habe,
um möglichst kleine .exe'n zu Haben.

Wie ich schon geschrieben habe, verwende ich Delphi 7 in der 32-Bit
Version.
Vielleicht könnte man auch eine 64-Bit Version bauen, aber ich komme
im Moment mit der 32-Bit Version von Delphi 7 recht gut zurecht.

Sollte etwas fehlen, oder Vorschläge für Veränderungen am Programm
vorliegen, dann immer her damit.
Vielleicht läßt sich ja ein kleiner Interessenkreis bilden ...

Hauptziel dieses Projektes ist es, eine Alternative zu poedit zu
gestalten, das in der primitivsten Version schon mit Registrierung und
zahle zahle einherkommt.

Leider habe ich noch keinen kostenlosen Übersetzer gefunden, da
sämtliche (früher kostenlose) Angebote in die Abo-Falle führen.
Sei es nun bei google, was von Microsoft als deprecated angesehen wird,
oder anders rum.

Jeder Services ist mit Cloud dingends oder dieser Betrug mit Azure.
Man wird mit kostenlosen freimonaten geködert, und wenn man dann nicht
aufpasst, in die Kostenfalle gedrängt.

Naja, seis wies will ... das Problem mit der Sound muss doch irgendwie
zu lösen sein.

ach, fast vergessen, mein Account, mit den Projektdaten:
https://github.com/paule32/MopED

Mit freundlichen Grüßen

Jens Kallup
kallup_jens.vcf

Jens Köhler

unread,
Apr 8, 2022, 12:43:56 PM4/8/22
to
Am 08.04.2022 um 17:15 schrieb Jens Kallup:
> Hallo,
>
> het leider nicht den gewünschten Effekt.

gerade probiert, stimmt.

aber im KeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
key := #0;

ist bei mir dann Ruhe.

Jens Kallup

unread,
Apr 8, 2022, 12:52:49 PM4/8/22
to
Hallo,

ja, jetzt funktioniert es auch bei mir - Danke !
Aber warum ist das so ?
Werden die KeyDown und KeyPress anders behandelt (jetzt mal den
Parameter Key als Word und einmal als Char vernachlässigt) ?
kann es sein, das im KeyDown das Zeichen für #10 irgendwie dafür
sorgt, dass der Handler - tjor wie soll ichs schreiben? - einen
Pufferüberlauf veranstalltet ?
Nur mal so im Kaffeesatz gestochert ...

Jens
kallup_jens.vcf

Jens Köhler

unread,
Apr 8, 2022, 3:57:21 PM4/8/22
to
Am 08.04.2022 um 18:52 schrieb Jens Kallup:
> Hallo,
>
> Aber warum ist das so ?
> Jens

soweit ich weiß, besagt der Ton, das die Eingabe unbearbeitet ans System
zurückgekommen ist.
Da stand glaub ich etliches in der Hilfe. Bin aber zu faul nachzulesen.

Jens

Jens Kallup

unread,
Apr 9, 2022, 3:49:29 AM4/9/22
to
Am 08.04.2022 um 21:57 schrieb Jens Köhler:
> soweit ich weiß, besagt der Ton, das die Eingabe unbearbeitet ans System
> zurückgekommen ist.
> Da stand glaub ich etliches in der Hilfe. Bin aber zu faul nachzulesen.

ja.
ich habe hier die alten Hilfedateien vor mir liegen.
Da die aber im alten HLP Format vorliegen, und unter Windows 11 nicht
mit dem winhelp32.exe Programm unterstützt werden, da nur noch die
auch schon etwas angestaubten CHM Dateien supported werden, musste ich
einen kleinen Umweg gehen, der mit ziemlichen gefriemmel für manchen
User oder Entwickler daher kommt.

Danke für den Hinweis !

Ich werde mal versuchen, nähere Informationen dazu im alten Format zu
bekommen.

Jens, der zweite :-)
kallup_jens.vcf

Jens Köhler

unread,
Apr 9, 2022, 10:41:38 AM4/9/22
to
Am 08.04.2022 um 17:15 schrieb Jens Kallup:
> Hallo,
>
> Hauptziel ist es, eine Alternative zu poedit zu gestalten
>

Hallo,

blöde Frage, was ist oder macht poedit?

Jens

Jens Kallup

unread,
Apr 9, 2022, 3:22:43 PM4/9/22
to
Am 09.04.2022 um 16:41 schrieb Jens Köhler:
> Am 08.04.2022 um 17:15 schrieb Jens Kallup:
>> Hallo,
>>
>> Hauptziel ist es, eine Alternative zu poedit zu gestalten

> blöde Frage, was ist oder macht poedit?

wenn Du mit den *nix Tools GNU C/C++ Compiler oder dem FPC,
dem Free Pascal Compiler (der Grundlage von Lazarus ist)
programmierst - vor allem dann in mehreren Sprachen, stehst
Du vor dem Problem, wie man denn nun verschiedene Sprachen
der verschiedensten Länder auf der Erde in einen einzigen
Programm unterbring, ohne dabei rekursiven Code zu schreiben.

Rekursive im Sinne von "Mehrdeutig" oder "Doppeltes Lottchen".
Also dem Problem, das man in den Quellcode, alle möglichen
Ländersprachen zur Lokaliesierung die unterstützt werden bzw.
sollen in eine EXE unterbringt.

Freilich kann man sagen, das dies nicht weiter schlimm ist.
Gerade in Zeiten des Überflusses an Speicher.

Man hat sich aber schon sehr früh mit diesen Problem beschäftigt,
um so den Code mit Design-Daten zu trennen.

Herausgekommen ist eine Art Protokoll, die das Programm versteht,
bzw. verstehen muss, um Locales zu nutzen.

Man schreibt also erstmal seinen Code, und überlegt sich schon
in der Planungsphase des Programmes, wo und wie Meldungen für
den Benutzer auftauchen sollen.

Als einfachstes Beispiel wäre:

if MemorySize < 1 then showmessage(LC_NoMoreMemory) else
showmessage(LC_LowMemory); ...

man setzt also Marken/Platzhalter für den Text, der angezeigt werden
soll.
Diese Marken werden dann in eine Map gespeichert.
Eine Map - oder eine TStringList Klasse - wird mit einen Key, also
der Quellsprache initiaziert.
Dann wird der Text in dieser Map als Value-Wert für die Übersetzung
festgehalten/gespeichert.

Unter C++ wäre zum Beispiel folgendes möglich:

std::map< std::string, std::string > LocaleDEU;
...
// der setter:
LocaleDEU['LC_NoMoreMemory'] = "kein Speicher vorhanden !";

// der getter:
std::cout << LocalesDEU['LC_NoMoreMemory'] << std::endl;

Da die meisten Programme sich bis in wenigen Merkmalen meist ähnlich
sind (also der Kontext auf Meldungen), hat man sich gedacht, Wörter-
bücher einzusetzen, die dann bei jeden Programm beigelegt und auch
erweitert werden können.

Diese Wörterbücher sind von einen Tool/Compiler erzeugte de_DE.mo
Dateien, die in einer Query-Sprach-Datei namens:
"original.po"
als Quellsource Text datei vorliegt.

*.mo Dateien bilden einen StringHash, also eine kleine Datenbank
mit einen Index auf Gruppen, Blöcke oder einzelne Einträge darstellt.

Hashes sind ja dafür bekannt, das sie ähnlich wie eine Map funktion-
ieren - nur halt ein klein wenig schneller.

Hat man also nun ein solches Wörterbuch angelegt und als Datei vor
sich auf den Computer zur Verfügung hat, kann man das Kommando-Zeilen
Programm "msgfmt.exe" nutzen, um binäre *.mo Dateien zu erzeugen.

Da das Programm von OpenSource Leuten programmiert wurde, ist es auch
bei Einhaltung einer kleinen Lizenz kostenlos nutzbar und auch dann
wieder distrubute-able (mit den Eigenen Programm - ob das nun in
binärer (compilierter), oder Quellcode (Textdatei) Form vorliegt spielt
hierbei erstmal keine Rolle (so lange Du kein Profit machen willst ! ).

Das *.po Dateiformat, das die Grundlage von *.mo Dateien ist hat in
etwa folgenden Aufbau:

# kommentar oder Sterungszeile
msgid "Message ID"
msgstr "Dies ist der Übersetzte Text"

...

man muss hierbei nicht unbedingt darauf achten, das man einen Datenbank
Index folgt (wie große Datenbankensysteme verlangen).
Dadurch sind diese Dateien und Tools sehr schnell.

die "msgid" gibt als String die Marke im Quelltext des Programmes an,
die übersetzt werden soll.
Der übersetzte Text wird dann eine Zeile tiefer mit "msgstr" angegeben.

Delphi 7 bietet sowas ähnliches mit "RESOURCESTRiNG".
Hierbei werden im laufenden Programmierprozeß - also letzendens im
Quellcode wieder konstante Marken als Resource Typus String in einer
sprachbezogener Länder/Locales Datei gespeichert/compiliert.

Diese Dateien haben dann zum Beispiel die Erweiterung:
*.DEU für Deutsch
*.ENG für English (British)
*.ENU für English (USA)

Ein Nachteil hierbei ist aber, das bei Änderungen des Quellcode eines
Projektes/Programms die gesamten Resourcen Dateien mit den Programm
kompiliert werden müssen.
Schon alleine das birgt hohe Gefahren, weil Delphi 7 die Eigenart hat,
manches zu verschlucken oder einfach zu löschen - kann man ja auch
schön daran sehen, wenn ein Event-Handler im Inspektor angelegt wird,
und anschließend STRG + F9 gedrückt wird - dann wird dieser Code, der
eigentlich leer ist, einfach gelöscht.

Also ich bin da meist recht pessimistisch, weil mich das mal in einer
Anwendung 2 Tage Arbeit zunichte gemacht hat.

Man hat also dann eine EXE als Hauptprogramm, und mindestenz zwei
Ressource Dateien, die dann den Speicher volldonnern.

Mit *.mo Dateien, die extern behandelt werden (ja die *nix waren und
sind ja schlaue Menschen) in den Speicher geladen und wieder aus diesen
entladen werden können.
Zudem sind *.mo Dateien dann reichlich schlanker als die Resourcen
Dateien, die Delphi anlegt.

Ich will Delphi nicht kaput schreiben oder schwätzen.
Ich nutze es ja fast jeden Tag.
Nur sind mir dabei ein paar Punkte in den Sinn gekommen, die dann sind

- wie haben die das gemacht
- wie kann man das besser machen
- wie kann man Speicher, und vor allem
- wie kann man einen großen Nutzerkreis erschließen, indem man
dem Benutzer des Programmes spezifisch auf sein Land und/oder Region
eine Sprachunterstützung hinzu gibt.

Kurz: *.mo Dateien sind einfach nur Dateien, die zuvor im Speicher als
Hashes vorgelegen haben, und dann in eine Datei gepuffert, mit
einer bestimmten (meist festen) Struktur/(beschreibender Record)
vorliegen.

Jetzt kommt POEDIT ins Spiel.
Dieses Programm kann kostenlos vom Internet bezogen werden.
Hat aber den Nachteil, das dort ein Abo gekauft werden muss, wenn man
Premium Funktionen nutzen möchte.
Man muss sich auch Registieren, um einen Key als Registrierung eingeben.
Was ich als Tool, welches ich auch kostenlos per Hand auf der Konsole
steuern kann etwas übertrieben.

Ich habe mal recherciert im Internet, und ähnliche Programme gefunden.
Allerdings wird meist auf cloud oder Google Services verwiesen, die
dann eine Kostenfalle darstellen können.

Das ist zum Beispiel einer der Gründe meiner Motivationen ein Eigenes,
und kostengünstigeres Tool zu erstellen - mit den Gedanken, das es auch
irgendwer und irgendwann auch der Eine oder Andere für sich einsetzt
und ggf. nicht entlastet (also den Geldbeutel).

Das natürlich kein kapitalistisches Manager denken...
Aber ich denke, das ich durch die Entbehrungen, die Andere mit mir haben
dadurch entgegen komme, und kostenlos Programme anbiete.
So nach dem Motto: Eine Hand wäscht die Andere.

In diesen Sinne, Jens
kallup_jens.vcf

Jens Köhler

unread,
Apr 10, 2022, 3:36:47 AM4/10/22
to
Am 09.04.2022 um 21:22 schrieb Jens Kallup:
> Am 09.04.2022 um 16:41 schrieb Jens Köhler:
>> Am 08.04.2022 um 17:15 schrieb Jens Kallup:
>>> Hallo,
>>>
>>> Hauptziel ist es, eine Alternative zu poedit zu gestalten
>
>> blöde Frage, was ist oder macht poedit?
>
> Du vor dem Problem, wie man denn nun verschiedene Sprachen
> der verschiedensten Länder auf der Erde in einen einzigen
> Programm unterbring, ohne dabei rekursiven Code zu schreiben.
>
> In diesen Sinne, Jens

Danke für die wirklich ausführliche Erklärung.
Ich hatte bis her nicht mit mehrsprachig zu tun, und ich denke, das wird
sich auch nicht ändern.
Meine 1. Idee dazu währe aber, die Sprachen einfach in Ini-artige
Dateien zu packen und je nach eingestellter Sprache die passende in eine
Stringlist oÄ. einzulesen.

Jens

Jens Kallup

unread,
Apr 10, 2022, 6:14:51 AM4/10/22
to
Am 10.04.2022 um 09:36 schrieb Jens Köhler:
> Danke für die wirklich ausführliche Erklärung.

Bitte :-)

> Ich hatte bis her nicht mit mehrsprachig zu tun, und ich denke, das wird
> sich auch nicht ändern.

Also nur deutschsprachig ?

> Meine 1. Idee dazu währe aber, die Sprachen einfach in Ini-artige
> Dateien zu packen und je nach eingestellter Sprache die passende in eine
> Stringlist oÄ. einzulesen.

ehm ja, gute Idee.
Aber ich weiß gerade nicht, inwiefern Du das Programm schon genuzt hast;
also die mopo.exe...

Im eigentlichen Programm verwende ich eine kleine dBase-formatige Datei
die da mit den Namen "default.dbf" daher kommt.
In dieser speichere ich dann die "msgid", den "msgstr", die "FILE", und
die "LINE", für die Code-Line, an der die zu übersetzende Marke zu
finden ist.

Falls Du mal den Quelltext betrachtest, kannst Du vielleicht erkennen,
das ich diese Datei im FormCreate Event-Handler erstellen lasse, falls
diese nicht existiert.
Gleiches gilt für die "default.ini", die ich dazu nutze, im sekundäre
Daten zu Speichern.

Der Quellcode schaut im Moment eventuell noch etwas aus wie Kraut und
Rüben - ist aber eine Vorstufe, f+r die Nutzung des Tools mit den Tool.
Klingt jetzt etwas komisch.

Aber es gibt ja auch Sprach-Compiler die sich selbst kompilieren, sprich
den Quellcode vom Compiler übersetzt genau der gleiche Compiler dazu.
Diese Art Tool nennt man auch "Compiler-Compiler".
Das hast Du eventuell schon von den Tools "flex, und Bison/Yacc" hören
können.

Gruß, Jens
kallup_jens.vcf

Jens Köhler

unread,
Apr 10, 2022, 9:44:12 AM4/10/22
to
Am 10.04.2022 um 12:14 schrieb Jens Kallup:
>
>> Ich hatte bis her nicht mit mehrsprachig zu tun, und ich denke, das
>> wird sich auch nicht ändern.
>
> Also nur deutschsprachig ?
> Aber ich weiß gerade nicht, inwiefern Du das Programm schon genuzt hast;
> also die mopo.exe...
>
> Im eigentlichen Programm verwende ich eine kleine dBase-formatige Datei
> die da mit den Namen "default.dbf" daher kommt.
>
> Gruß, Jens

Hallo,

ich programmiere nur als Hobby, wenn mir mal eine Funktion fehlt der ich
etwas interessant klingendes probieren will. In letzter Zeit aber wenig.
Von daher nur in deutsch und ohne Interesse an Mehrsprachigkeit. Ich
habe mal etwas über solche Sprachverwaltungssysteme gelesen, aber mich
mangels Bedarf nie weiter damit beschäftigt. ResourcStrings habe ich mir
mal interessehalber angesehen.
Mopo habe ich nie probiert, vorher noch nicht nicht mal was davon gehört :-)
Ob es sich lohnt, ein ganzes Datenbanksystem mitzuschleppen bzw. vorraus
zu setzen statt einzelner Dateien, kann ich nicht sagen.

Jens

Jens Kallup

unread,
Apr 10, 2022, 10:49:35 AM4/10/22
to
Am 10.04.2022 um 15:44 schrieb Jens Köhler:
> Ob es sich lohnt, ein ganzes Datenbanksystem mitzuschleppen bzw. vorraus
> zu setzen statt einzelner Dateien, kann ich nicht sagen.

nun.
Ich bin ja von einen Kumpel an Datenbank-Systeme gekommen.
Damals war das dBase 4 für DOS, dann für Windows 98 Visual dBase 5,
und dann später mit Visual dBase 7 für Windows 2002.

Alle Systeme haben einen magischen Bann auf mich gezogen.

Allerdings muss ich sagen, das diese Programme seit der DOS-Version
ziemlich ekelig verbuggt waren, und eher was für die Tonne waren.

Dann habe ich begonnen, mein Eigenes dBase System zu programmieren.
Das ganze Projekt ist ein wenig ins stocken gekommen, weil ich auf
andere Projekte angewiesen wurde.

Das ist dann so zu betrachten, wenn man dann an ein einen Punkt in
ein laufendes Projekt ankommt, und dann doch zusätzliche Software
benötigt, um dann schließlich weiter zu kommen.

Dabei ist dann eine Web-Oberfläche entstanden, die ich Online als
Bewerbungs-Projekt in der alpha-Version veröffentlicht habe.

Falls Du mich auch in dieser helfen möchtest, kannst Du Dich das
gerne mal ansehen - ich habe da noch keine Benutzer und Passwort-
Abfragen integriert, damit interessierte sich einfach durchklicken
können.

Die URL dahin lautet:

https://kallup.zapto.org/pub/desk

Da sollte dann ein kleiner Einführungstext stehen, den ich dann
noch ein wenig ausbauen sollte und für die AGB's nutzen sollte.
Naja, jedenfalls kann man da auf der linken Seite auf "Informatik"
klicken, und man kann sehen, das Windows XP gestartet wird.

Auch hier kommt man einfach durch einen klick auf den angezeigten
Button auf die Oberfläche.

Dort habe ich begonnen, dBase für Web zu initiazieren.
Man kann, falls ich das noch irgendwann fertigstellen kann, wie
unter Windows Formulare anlegen, Datenbank-Dateien anlegen und so
eine Internet-Anwendung unabhängig vom verwendeten Betriebssystem
nutzen.

Das was da in den kleinen Fenster zu sehen ist, kann man auch dann
später in Browser-Fenster Größe sehen - aber wie gesagt, alles noch
alpha-Status.

Was mein Windows-Programm-Projekt anbelangt, so denke ich, das es
kein ganzes Datenbank-System braucht, da ich zwar die Funktionen
der Datenbank-Funktionen in Delphi nutze, aber keinen Bezug auf die
etwas angestaubte Version der BDE (Borland Database Engine) nehme.

Selbst das Erstellen von Datenbankdateien kann man unter Window 11
mit den von Delphi 7 mitgelieferter Datenbank-Oberfläche vergessen.

Leider kann ich auf eine ältere Version von dBase nicht mehr oder
weniger zugreifen, da mein damaliger Kumpel von seinen letzten
Wohnort gewechselt ist.

Und ich nicht mein Geld für Bugsoftware ausgeben möchte.
Es gibt zwar Trial-Versionen. Aber diese laufen nur 30-Tage...

Naja, egal, ich bleib da stay tuned.

Gruß, Jens
kallup_jens.vcf

Jens Köhler

unread,
Apr 10, 2022, 11:46:19 AM4/10/22
to
Am 10.04.2022 um 16:49 schrieb Jens Kallup:
> Am 10.04.2022 um 15:44 schrieb Jens Köhler:
>> Ob es sich lohnt, ein ganzes Datenbanksystem mitzuschleppen bzw.
>> vorraus zu setzen statt einzelner Dateien, kann ich nicht sagen.
>

Ich habe jetzt mal Tante Google zu PoEdit befragt. Ich habe das Ganze
wohl etwas Mistverstanden und jetzt erst erkannt, was Du machen willst.
War wohl zu viel Erklärung für Sonntags. :-)
Damit war auch die Frage nach der Datenbank Quatsch.

Ich kann Dein Programm allerdings auch nicht probieren, mein D5 Standard
ist ohne DB-Komponenten. Deshalb habe ich da für mich auch was Eigenes
geschrieben. Aber die Exe läuft nicht und die Quellen lassen sich nicht
übersetzen.

exception class : EDBEngineError
exception message : An error occurred while attempting to initialize
the Borland Database Engine (error $2108).

Jens

Jens Kallup

unread,
Apr 10, 2022, 1:39:10 PM4/10/22
to
Am 10.04.2022 um 17:46 schrieb Jens Köhler:
>
> exception class    : EDBEngineError
> exception message  : An error occurred while attempting to initialize
> the Borland Database Engine (error $2108).

ah okay.
Da muss ich nochmals basteln.
Aber wenn Du mir helfen magst, kannst Du Dich ja an eine INI-Version
ran machen.

Die 32-Bit Version von Delphi 7 kannst Du hier kostenlos downloaden:

https://winworldpc.com/product/delphi/70

Was die verwendeten Komponenten angeht, werden ich dann für Dich eine
Site anlegen, um dann eine gemeinsame Basis zu haben.

Gruß, Jens
kallup_jens.vcf

Jens Köhler

unread,
Apr 11, 2022, 11:26:51 AM4/11/22
to
Am 10.04.2022 um 19:39 schrieb Jens Kallup:
> Aber wenn Du mir helfen magst, kannst Du Dich ja an eine INI-Version
> ran machen.
> Gruß, Jens

Ob das geht kann ich noch nicht sagen. So nebenbei muß ich noch arbeiten
gehen und im Garten ist momentan auch einiges zu tun. Ich werde mir das
aber auf alle Fälle mal genauer ansehen.
Mit Kommentaren ist es ja in Deinem Quelltext nich so weit her. :-)
Gibt es Ansätze für eine Doku, so zum besseren Verständnis?

Jens

Jens Kallup

unread,
Apr 11, 2022, 3:16:07 PM4/11/22
to
Am 11.04.2022 um 17:26 schrieb Jens Köhler:

> Ob das geht kann ich noch nicht sagen. So nebenbei muß ich noch arbeiten
> gehen und im Garten ist momentan auch einiges zu tun. Ich werde mir das
> aber auf alle Fälle mal genauer ansehen.

ja, gerne würde mich auch freuen darüber.
Es eilt ja nicht - ich verdiene meine Brötchen nicht mit Programmierung
von Computerprogrammen.
Falls es vielleicht dann noch Regentage gibt, und Du nicht die Würmchen
zählen magst, dann ist es doch okay, mal sich damit zu beschäftigen.

> Mit Kommentaren ist es ja in Deinem Quelltext nich so weit her. :-)
> Gibt es Ansätze für eine Doku, so zum besseren Verständnis?

nu.
Kennst das doch: Programmierer sind eher lazy. Und für die Dokumentation
gibt es ja für üblich Dokumentations-Schreiber, die mit ganz anderen
Programmen arbeiten.
Eines davon kann ich Dir empfehlen, da ich es auch für die (fast)
tägliche Dokumentation verwenden.
Der Name ist HelpNDoc - google mal danach für Version 7.9.

Ich habe zwar nur die Standardversion, aber für private Zwecke reicht
auch die kostenlose Version, die Du ebenfalls downloaden kannst - aber
dann mit einen kleinen Banner am Ende der Dokumentation.

Früher haber ich mal Doxygen verwendet, eine XML-Datei erstellt und auf
Grundlage dieser dann HTML Seiten geniert.

Beides hat seinen Vor- und Nachteil - also GUI Design - und Skriptsprach
dokumentieren.

Momentan arbeite ich auch daran, eine Kombination aus beiden zu strik-
ken.

Für Dokumentation für das "msgfmt" Tool ist schon gesorgt:

https://de.wikipedia.org/wiki/GNU_gettext
https://docs.transifex.com/formats/gettext
https://man7.org/linux/man-pages/man1/msgfmt.1.html
https://webtranslateit.com/docs/file_formats/gettext_po
https://itstool.org/documentation/basic-usage.html
https://www.labri.fr/perso/fleury/posts/programming/a-quick-gettext-tutorial.html

Gruß, Ich
kallup_jens.vcf

Jens Köhler

unread,
Apr 12, 2022, 11:28:07 AM4/12/22
to
Am 11.04.2022 um 21:16 schrieb Jens Kallup:

>> Mit Kommentaren ist es ja in Deinem Quelltext nich so weit her. :-)
>> Gibt es Ansätze für eine Doku, so zum besseren Verständnis?
> Kennst das doch: Programmierer sind eher lazy. Und für die Dokumentation
> Gruß, Ich

mit Doku meinte ich eher zu Deinem Programm.
den:

SpeedButton2Click(Sender: TObject);
s := Trim(Edit5.Text);
Edit10.Text := ReadString(s, '10', '');
Edit11.Text := ReadString(s, '11', '');
b1 := ReadBool(s, '13', true );

mit den nur aus Zahlen bestehenden Einträgen in Deiner Ini
sind nicht wirklich aussagekräftige Bezeichnungen und selbst für
eingeweichte vermutlich keine 2 Wochen verständlich. :-)
Für Andere ist das nicht leicht nachzuvollziehen.
Selbst als Leie mache ich zumindest Kommentare am Anfang, was eine
Funktion macht und versuche auch sonst, sinnvolle Namen zu vergeben.

Jens
0 new messages