Deutsch
Includes

TaskDialog.inc -- Wrapper für Taskdialoge ab Windows Vista

 

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
 $I taskdialog.inc = td.
var Int result = td.TaskDialog(pWnd, "Titel", "Überschrift", \
"Inhalt", buttonFlags, iconFlags)

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.

42 kB
Kurzbeschreibung: Vorschau
Hochgeladen:26.02.2014
Ladeanzahl191
Herunterladen
13 kB
Version:10
Kurzbeschreibung: Enthält INC- und PH-Datei sowie drei Beispiele
Hochgeladen:26.02.2014
Ladeanzahl199
Herunterladen
 
26.02.2014  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

4.800 Betrachtungen

Unbenanntvor 0 min.
Peter Max Müller29.11.2017
Tommy11.05.2017
Nico Madysa28.03.2016
Walter13.01.2016
Mehr...

Themeninformationen

Dieses Thema hat 1 Teilnehmer:

Nico Madysa (1x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie