Discussion:
beep Sound von Windows wenn KeyDown Event gesendet wird -.-
(zu alt für eine Antwort)
Jens Kallup
2022-04-08 08:59:12 UTC
Permalink
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;
Jens Köhler
2022-04-08 14:57:49 UTC
Permalink
Post by Jens Kallup
Hallo,
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
2022-04-08 15:15:21 UTC
Permalink
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
Post by Jens Köhler
Hallo, versuch mal key := 0; am Ende
Jens Köhler
2022-04-08 16:44:04 UTC
Permalink
Post by 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
2022-04-08 16:52:47 UTC
Permalink
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
Post by Jens Köhler
ist bei mir dann Ruhe.
Jens Köhler
2022-04-08 19:57:29 UTC
Permalink
Post by 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
2022-04-09 07:49:26 UTC
Permalink
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 :-)
Jens Köhler
2022-04-09 14:41:47 UTC
Permalink
Post by Jens Kallup
Hallo,
Hauptziel ist es, eine Alternative zu poedit zu gestalten
Hallo,

blöde Frage, was ist oder macht poedit?

Jens
Jens Kallup
2022-04-09 19:22:41 UTC
Permalink
Post by 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
Jens Köhler
2022-04-10 07:36:58 UTC
Permalink
Post by Jens Kallup
Post by Jens Köhler
Post by 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
2022-04-10 10:14:48 UTC
Permalink
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
Jens Köhler
2022-04-10 13:44:23 UTC
Permalink
Post by Jens Kallup
Post by Jens Köhler
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
2022-04-10 14:49:32 UTC
Permalink
Post by 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
Jens Köhler
2022-04-10 15:46:30 UTC
Permalink
Post by 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
2022-04-10 17:39:07 UTC
Permalink
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
Jens Köhler
2022-04-11 15:26:51 UTC
Permalink
Post by 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
2022-04-11 19:16:02 UTC
Permalink
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
Jens Köhler
2022-04-12 15:28:08 UTC
Permalink
Post by Jens Köhler
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

Loading...