Home » Tutorials » VCL » Einstieg in die Entwicklung für Windows Vista

Einstieg in die Entwicklung für Windows Vista

Neue Dialoge

Unter Vista stehen – sofern man das Vista-Manifest verwendet – einige neue Komponenten und Dialoge zur Verfügung. Hier ist zu beachten, dass einige ausschließlich unter Vista zur Verfügung stehen. Führt man eine Anwendung, die von den neuen Möglichkeiten Gebrauch macht, unter älteren Windows-Versionen aus, erhält man eine Fehlermeldung.

TFileOpenDialog, TFileSaveDialog

Insbesondere gilt dies für TFileOpenDialog und TFileSaveDialog. Es bleibt einem die Möglichkeit, selbst zu prüfen, unter welcher Windows-Version man sich befindet, und daraufhin den einen oder anderen Dialog zu verwenden. Oder man bleibt in diesem Fall einfach bei den alt bekannten TOpenDialog und TSaveDialog. Denn diese erkennen automatisch die Windows-Version und passen ihr Aussehen entsprechend an.
Weshalb gibt es denn dann neue Dialoge, wenn die alten ihr Aussehen an Vista anpassen können? Die neuen Dialoge bieten einfach mehr Möglichkeiten als die alten. So lassen sich die Linkfavoriten den eigenen Wünschen anpassen, die Beschriftung des Buttons kann geändert werden und anderes.

Message-Dialoge

Auch an den normalen Textdialogen hat Microsoft gearbeitet. Um einen solchen anzuzeigen, verwendet man in Delphi traditionsgemäß die Funktion MessageDlg:

MessageDlg('Hallo Delphi-Treff!', mtInformation, [mbOk], 0);

Unter Windows XP (und unter Vista ohne Manifest wie im Screenshot) führte das zu folgendem Ergebnis:

In der ComCtrl32.dll (ab Vista mit Manifest) werden Buttons rechtsbündig ausgerichtet und sind optisch vom Textbereich getrennt:

Was unter Vista ebenfalls neu ist, von der Funktion MessageDlg aber nicht unterstützt wird, sind Überschriften über dem Textbereich des Dialogs. CodeGear hat die VCL entsprechend erweitert, um diese Möglichkeit auch nutzbar zu machen. Die neue Funktion heißt TaskMessageDlg:

TaskMessageDlg('Überschrift', 'Hallo Delphi-Treff!', mtInformation, [mbOk], 0);

Das Tolle daran ist, dass sie abwärtskompatibel ist. D.h. wer TaskMessageDlg verwendet, muss unter Windows XP nicht mehr Fehlermeldungen rechnen. Die Implementierung in der VCL ist so gestaltet, dass der neue Dialogtyp mit Überschrift nur unter Vista mit Manifest verwendet wird. In allen anderen Fällen wird einfach die alte Funktion MessageDlg aufgerufen – hier fehlt dann die Überschrift zwangsläufig.

Nur in Vista: TTaskDialog

Wer Vista verwendet, dem werden sie bereits zwangsläufig über den Weg gelaufen sein: die Task-Dialoge. Hierbei handelt es sich im Prinzip um Standarddialoge wie die oben beschriebenen. Allerdings beinhalten sie weitere Komponenten wie Fortschrittsbalken, Buttons oder lassen eine Detail-Ansicht ausklappen. In Delphi 2007 ist eine Komponente mit dem Namen „TTaskDialog“ in der Toolpalette zu finden. Der Haken hieran ist, dass dieser Dialog nur unter Windows Vista funktioniert. Unter älteren Windows-Versionen wird eine Fehlermeldung angezeigt.
Über den Objektinspektor lässt sich der Dialog konfigurieren. Klickt man mit der rechten Maustaste auf die Komponente, lasst sich über „Testdialog“ eine Vorschau anzeigen. Außerdem bietet die Komponente einige Ereignisse an, auf die man im Code reagieren kann, z.B. auch ein OnTimer, über den sich eine Progressbar steuern ließe.