Die 2 Pieces MTools
Diese Seiten auch auf GitHub ansehen.

Die ›2 Pieces MTools‹ waren ursprünglich vier kleine Stücke 64 Bit-Software, die die Möglichkeiten der Programmentwicklung mit der freien Software Lazarus und FreePascal ausloten sollten.
Ein herausragendes Merkmal von Lazarus und FreePascal ist, dass sie nicht nur unter MS Windows X, sondern auch unter anderen Betriebssystemen laufen oder dass man mit ihnen per Cross-Compiling Code für andere Betriebssysteme erzeugen kann. In Anwendung wurde hier allerdings nur die Möglichkeit gebracht, den selben Quelltext sowohl unter MS Windows X und Linux — in diesem Fall seit Fedora 31 — sowie in verschiedenen Monitor-Auflösungen (Stichwort HiDPI) einzusetzen und zum Laufen zu bringen.
Seit Anfang 2022 liegt der Schwerpunkt der Entwicklung auf Linux — WinX läuft nur noch so nebenher. Meist kompiliere ich die WinX-Version einfach aus den eins zu eins übertragenen Linux-Sources. Die ehemaligen ›4 Pieces MTools‹ bestehen daher auch nur noch aus den Programmen:
Seit den Versionen ›mkal 0.9.17.04‹ und ›mcbl 0.9.4.8‹ sind in beiden Programmen Routinen eingebaut, die einen Mehrfachstart der Programme verhindern — ein Zugeständnis an meine Arbeitsweise mit den vielen Fedora Desktops, bei denen ich manchmal eines der Programm versehentlich zweimal starte und mich dann über zumindest unangenehme Seiteneffekte wundere … Die Routinen, die ich hierzu verwende, haben die User msvanred und hubblec4 im deutschen Lazarus-Forum vorgestellt.
Außerdem wurden beide Programme in den letzten Wochen für das DPI scaling fast vollständig mit den neuen Lazarus-Icons ausgestattet, die zum größten Teil von Roland Hahn (aka ›ally‹) gezeichnet wurden.
MCmpBack

Compare & Backup, kurz MCmpBack, ist ein kleines Backup-Programm, das in einer Zwei-Fenster-Ansicht Files halbautomatisch auf externe Festplatten, SDcards oder USBsticks, aber auch umgekehrt speichern kann. Basis dafür sind Profile, in denen Quell- und Ziel-Pfad sowie ein File-Filter als Regulärer Ausdruck vorab festgelegt werden. Ich benutze MCmpBack ausschließlich als schnelles Backup-Programm für die (fast) tägliche Sicherung meiner Daten von meinen PCs sowohl unter MS Windows X als auch Fedora 36 Linux.
Das Programm sucht mit einem ButtonClick — vorzugsweise natürlich auf der Seite, die gesichert werden soll — nach geänderten und neuen Files, die dann mit einem weiteren ButtonClick in den anderen Ordner kopiert werden können. Aber auch die Auswahl der zu kopierenden Files per Maus ist möglich. Sie können dann auch mit einem RechtsClick kopiert — oder gelöscht — werden. Die jeweiligen Files werden dabei zur Unterstützung des Nutzers in verschiedenen Farben angezeigt:
- Grün sind neuere Files, die ihre Partner, die roten Files, überschreiben werden.
- Rot sind ältere Files, die von den neueren, grünen überschrieben werden.
- Blau sind neue Files, auch Waisen genannt, die noch keinen Partner auf der anderen Seite haben.
- Grau sind die Platzhalter für die blauen, neuen Files.
- Files, die gleich sind, werden nicht angezeigt.
Im Moment bedeutet ›gleiche Files‹ noch lediglich Gleichheit von Datum und Zeit der letzten Änderung. Geplant ist hier noch ein zusätzlicher Vergleich mit Hashes. Nicht vorhandene Ordner werden beim Kopieren automatisch erzeugt. Es ist aber auch möglich, ganze Ordner zu löschen — aus Sicherheitsgründen jedoch immer nur einen und auch nur per RechtsClick.
Nach einer Kopier- oder Löschaktion werden beide Ordner automatisch neu eingelesen. Falls man zwischendurch selbst etwas außerhalb von MCmpBack im Explorer oder in Files verändert hat, muss man nach Rückkehr zu MCmpBack zuerst mit dem Button ›Neu einlesen‹ die Ansicht selbst aktualisieren — eine automatische Überwachung beider Ordner ist (noch?) nicht vorhanden.
Mit der Einführung der WinX-spezifischen Funktion SHFileOperationW
in der WinX-Version ist der Schreibschutzschalter dort leider ohne Wirkung: WinX überschreibt und löscht readonly
Files gnadenlos, auch wenn der Schalter nicht gesetzt ist. Unter Linux ist der Schreibschutz ebenfalls ein Problem: Überschreiben kann man schreibgeschützte Files nicht — wohl aber löschen … Hier funktioniert der besagte Schalter beim Überschreiben (falls der User das Recht dazu hat), hat aber beim Löschen keine Wirkung.
Ein weiteres Sicherheitsnetz ist, dass Files und Ordner — wann immer möglich — nur in den Papierkorb ›gelöscht‹ werden. Das funktioniert auch unter Linux und wird ermöglicht durch die Unit t4a_trashcan.pas
von Hans Luijten, die auf tweaking4all.com zu finden ist.
Mit dem Schalter ›Neuere Dateien mit älteren überschreiben‹ kann man genau das, muss dann allerdings in reiner Handarbeit die entsprechenden roten Files mit der Maus zusammenklicken und per RechtsClick kopieren.
Seit dem 09. Juli 2022 ist MCmpBack im Rahmen erneuter Weiterentwicklung auch international (i18n) geworden: Z.Zt. ist neben Deutsch auch Englisch verfügbar.
Download des Programms
MCmpBack wird nicht installiert, es läuft in jedem Ordner, legt aber Konfigurations-Files an, unter Linux im HOME
unter ›.config/mtools/MCmpBack
‹, unter WinX im USER
unter ›AppData\Roaming\mtools\MCmpBack
‹.
Zusätzlich ist darauf zu achten, dass der mitgelieferte Ordner ›languages‹ mit dem englischen ›*.mo‹-File im selben Ordner steht, in dem sich auch das Programm befindet.
- mcblinx.7z (
v 0.9.5.2
vom 16. Juli 2022) für Fedora 36, 64 Bit-Version - mcbwinx.7z (
v 0.9.5.2
vom 23. Juli 2022) für MS Windows X, 64 Bit-Version
MKalender mit Datenbank

Der Kalender mit Datenbank, kurz MKalender, ist ein kleines Kalender-Tool mit Datenbank-Anbindung. Damit wurde die SQLite-Unterstützung von Lazarus erprobt. Für das Programm wurde bereits 2016 eine eigene Kalender-Komponente entwickelt, die aber inzwischen beim HiDPI scaling Probleme bereitete. Daher befindet sie sich im Moment wieder im Status RunTime, um sie an das HiDPI scaling anzupassen. In das Programm wurden Feiertagsberechnungen implementiert, umfangreiche Suchmöglichkeiten eingebaut sowie eine einfache Kontakte-Tabelle.
Ab der Version ›v0.9.16.44
‹ vom 10. Juni 2020 ist es möglich, den Standort der SQLite3-Library in beiden Betriebssystem-Versionen per Hand zu ändern. Dazu muss man das (erstmalig installierte) Programm starten und wieder beenden. In der Programmkonfiguration MKalender.xml (siehe weiter unten) kann man dann unter ›libSqlite‹ den Pfad der SQLite3 per Hand den Gegebenheiten auf dem Ziel-System anpassen. Damit dürfte MKalender auch auf anderen Linux-Versionen laufen. Und auch unter WinX kann das Programm profitieren, wenn auf dem System anderweitig schon eine SQLite3 installiert ist.
Über ›Export‹ und ›Import‹ kann die gesamte MKalender-Datenbank als SQLDump gesichert und auch wieder geladen werden. Bei diesem Vorgang wird gleich der Index bereinigt. Vor dem Import muss zuerst eine neue Datenbank angelegt werden. Inzwischen gibt es für die Feier- und Gedenktage auch eine ziemlich einfache Druckfunktion.
Rein oberflächlich betrachtet, ist das Programm international geworden (i18n). Das ist aber z.Zt. nur reine Kosmetik. Daher ist der nächste Schritt auch, die Kategorien und die (gesetzlichen) Feiertage editierbar zu machen. Die beweglichen (christlichen) Feiertage werden jedoch erst beim Programmstart berechnet. Für sie ist der Ostersonntag maßgeblich. Die Grundlagen dafür wurden im Jahr 325 auf dem Konzil von Nicaea festgelegt und im Jahr 1582 durch Papst Gregor noch einmal angepasst. Da aber etliche Länder diese Anpassungen nicht oder nicht zeitnah übernommen haben, ist die Gültigkeit von MKalender in der Vergangenheit auch davon abhängig, wann die einzelnen Länder die Gregorianische Reform übernommen haben. Abgewiesen werden im FeiertagDialog aber nur Jahre vor 1583. In Ländern, die die Reform später übernommen haben, sind diese Berechnungen dann bis zum Jahr der Übernahme schlicht falsch. Nachzulesen — und speziell für Programmierer interessant — ist die komplexe Materie in dem umfangreichen Kalenderprojekt GNU gcal.
Download
MKalender muss nicht installiert werden, es läuft in jedem Ordner, benötigt aber dazu eine SQLite3-Library und legt ein Konfigurations-File an, unter Linux im HOME
unter ›.config/mtools/MKalender
‹, unter WinX im USER
unter ›AppData\Roaming\mtools\MKalender
‹. Die MKalender-Datenbank selbst kann in einem beliebigen Ordner gespeichert werden.
Zusätzlich ist darauf zu achten, dass der mitgelieferte Ordner ›languages‹ mit dem englischen ›*.mo‹-File im selben Ordner steht, in dem sich auch das Programm befindet.
- mkalinx.7z (
v 0.9.17.22
vom 21. Juli 2022) für Fedora 36, 64 Bit-Version - mkawinx.7z (
v 0.9.17.22
vom 23. Juli 2022) für MS Windows X, 64 Bit-Version