| |
|
|
Nico Madysa |
Wenn ich nach Taskdialogen für XProfan suche, stolpre ich bestenfalls über Jacs DLL [...] , die meiner Meinung nach ein bisschen sperrig in der Benutzung ist.
Hier ist ein kleines Paar von Include- plus Header-Datei, die den Umgang mit Taskdialogen hoffentlich ein bisschen vereinfachen.
Ein kleiner Überblick:
1. Die Include bietet eine kleine handliche Funktion namens TaskDialog, die im Prinzip wie ein erweitertes MessageBox funktioniert. KompilierenMarkierenSeparieren 2. Umfangreichere Taskdialoge können mit einer taskdialog.TConfig-Struktur und zahlreichen Funktionen zur flexiblen Befüllung erstellt werden. Die Übersichtlichkeit des Codes könnte durch einen Übergang von einer Struktur zu einer Klasse deutlich erhöht werden, aber das war mir dann zu viel Aufwand. KompilierenMarkierenSeparieren 3. Während der Dialog läuft, kann man flexibel auf verschiedene Ereignisse mithilfe eines Callbacks reagieren. (Die Callbackfunktion funktioniert im Wesentlichen wie eine SubclassProc ) Wird so etwas nicht benötigt, so muss auch kein Callback verwendet werden.
4. Innerhalb eines Callbacks kann der Dialog mit zahlreichen Messages beeinflusst werden. Für die nützlicheren habe ich noch ein paar Wrapper hinzugefügt.
5. Die Include ist im Vergleich zu manch anderem Profan-Code relativ modern gehalten. Sie ist zur Verwendung von Namensräumen angelegt, nutzt keine Postfixe, verwendet den neuen Handle/Pointer-Typ durchgänging, nutzt ImportDLL, etc. So, wie sie hier angeboten wird, läuft wie nur mit XProfan X2.1 und Windows Vista oder höher. Wer sie für ältere Profan-Versionen anpassen will, kann das gerne tun und seine Version hier posten.
6. Die TaskDialog.inc vermeidet globale Deklarationen, wo es geht, aber ein paar sind trotzdem drin: Die Init -Funktion lädt die Kernel32- und die ComCtl32-DLLs und stellt ihre Funktionen mit den Präfixen "kernel." bzw. "comctl." global zur Verfügung.
7. Damit die Include funktioniert, müssen die Windows.ph, die Messages.ph und die CommCtrl.ph sowie die eigens mitgelieferte taskdialog.ph auffindbar sein. Letztere enthält Definitionen aus der windowseigenen CommCtrl.h, die in Rolands Headerdateien fehlen.
So.
Download ist hier: Download
Ich hoffe inständig, dass ich mir diesen Quelltext nie, nie wieder ansehen muss.
PS: Es gibt keine Hilfe/Dokumentation. Die Include is kommentiert, wo es sinnvoll ist, und mögliche Werte für Konstanten, Flags, etc. können in der (übersichtlichen) Headerdatei abgelesen werden. |
|
|
| |
|
|