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

Einstieg in die Entwicklung für Windows Vista

Shield-Icon

Wie schon erwähnt, dürfen auch Administratoren unter Vista nicht einfach alles tun, was sie wollen, sondern müssen ihre Aktionen bestätigen. Um Benutzer einer Anwendung schon vorher darüber zu informieren, dass das Betätigen eines Buttons o.ä. eine solche Nachfrage des Betriebssystems nach sich ziehen wird, sollte das Shield-Icon, ein Schutzschild in Windows-Farben, auf dem Button oder Menüpunkt platziert werden.
Leider bietet der TButton in Delphi noch keine Property zum einfachen Einblenden dieses Bildchens. Stattdessen muss man eine Message an den Button schicken, was über folgenden Code erledigt werden kann:

const
  BCM_FIRST = $1600;
  BCM_SETSHIELD = BCM_FIRST + $000C;

procedure SetElevationRequiredState(Button: TButton; DisplayShield: Boolean);
begin
  SendMessage(Button.Handle, BCM_SETSHIELD, 0, Integer(DisplayShield));
end;

Der Aufruf für Button1 erfolgt z.B. so:

SetElevationRequiredState(Button1, true);

Und so sieht das dann aus:

Wird dieses Verhalten in einer Anwendung häufiger benötigt, lohnt es sich evtl. auch, eine eigene Button-Komponente zu erstellen, die von TButton erbt und zusätzlich eine Property anbietet, um das Shield-Icon zu setzen.
TSpeedButton und TBitBtn unterstützen dieses Icon überhaupt nicht – auch nicht mit oben dargestelltem Verfahren.