Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 

Customized About MessageBox

  Alt 19. Dez 2006, 12:46
Man kennt das ja vielleicht. Man hat ein kleines Tool geschrieben und jetzt will man noch einen About-Dialog anzeigen. Um das Programm nicht noch mit einem zusätzlichen Formular aufzublähen oder um nicht noch einen zusätzlichen Dialog in einer WinAPI-Anwendung erstellen zu müssen, benutzt man eine einfache MessageBox. Jetzt hätte man es aber gerne, dass der Benutzer doch irgendwie die Möglichkeit hat, die Homepage zu besuchen. Entweder man macht nun doch einen zusätzlichen Dialog / Form oder man bohrt die MessageBox etwas auf. Und genau das habe ich gemacht. Rausgekommen ist dabei eine einfach anzuwendende Klasse, um eine Aboutbox anzuzeigen, die eine zusätzliche Schaltfläche enthält, um eine Webseite im standard Browser aufzurufen. Wie das ganze dann aussieht, kann man sich im angehängten Screenshot angucken.
Zusätzlich wird auch noch die Beschreibung der Exe und deren Versionsnummer automatisch aus der Ressource ausgelesen. Man muss sich also nicht mehr um viel selber kümmern.

Im Anhang die Unit MpuAboutMsgBox.pas mit der About-Dialog MessageBox und ausserdem eine Demo-Anwendung.

Ein paar Worte, wie das ganze Funktioniert:
Es wird ein lokaler Hook installiert, wenn die MessageBox aufgerufen und wieder deinstalliert, wenn die MessageBox geschlossen wird. In der Hook-Prozedur werden die beiden Schaltflächen "OK" und "Cancel" einfach nur neu beschriftet und das war es auch schon.
Zu Konflikten mit anderen Messageboxen kann es dabei nicht kommen, da der Hook lokal ist, sich also nicht auf andere Prozesse auswirkt und andere MessageBox, im gleichen Prozess, können auch nicht beeinflusst werden, da der Hook erst installiert wird, wenn die MessageBox angezeigt und wieder deinstalliert wird, wenn die MessageBox geschlossen wird. Eine andere MessageBox kann nicht angezeigt werden, da die AboutMsgBox modal angezeigt wird.

Auf vielfachen Wunsch habe ich die Klasse noch etwas aufgebohrt. man kann jetzt auch ein eigenes Icon anzeigen lassen. Dies muss in der Ressource vorliegen und wird über die ID ausgewählt.

Im Screenshot noch mal alle vier Möglichkeiten die About-Messagebox anzeigen zu lassen.
Miniaturansicht angehängter Grafiken
mpuaboutmsgbox_117.jpg  
Angehängte Dateien
Dateityp: zip demo-tabout_936.zip (44,1 KB, 195x aufgerufen)
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat