ändern des icons der msg-box

thecooper

Mitglied
hi,

ich hab folgendes problem. wenn man ne msgbox erstellt kann man j alle eigenschaften angeben. so auch das bildchen (z.B. vbInformation). kann man auch ein selbst definiertes icon nehmen. schon mal danke.

bye, coop.
 
Eigenes Form

Wenn ich es richtig gesehen habe, gibt es bei einer MsgBox nur die vordefinierten Standard-Bilder zur Auswahl.

Wenn Du aber unbedingt ein eigenes brauchst, erstell Dir doch ein eigenes Formular mit Icon, Label und Buttons und übergib einfach den jeweiligen Hinweistext an das Formular (z. B. über eine globale Variable des Formulars, die beim Anzeigen ins Label gesetzt wird oder als Übergabeparameter einer Prozedur)
 
das mit dem eigenen formular erstellen hab ich mir auch schon gedacht. aber wie meinst du das mit der globalen variable. geht das? ich kann variablen nur innerhalb des gleichen formulars wieder abrufen. also muss ich den text der in der msgbox stehen soll immer in einer textdatei zwischenspeichern und dann in der von mir erstellten msgbox wieder abrufen. ziemlich lästig. erklär mir das mal mit der formular-übergreifenden variable.
 
Globale Variable im Formular

Es gibt zwei Möglichkeiten:
a) Du brauchst eine öffentliche Variable, um einem Formular einen Wert zu übergeben
b) Du brauchst projektumfassende Variable

Bei a) erstellst Du Dein Form und lässt Dir den Quelltext anzeigen.
Ganz oben sollte (sofern voreingestellt bie VS)
Code:
Option Explicit
stehen. Direkt darunter definierst Du dann Deine Variable als
Code:
Public strMsgText as String
Auf diese öffentliche Variable kannst Du aus einem anderen Form durch frmMsgForm.strMsgText zugreifen (Sofern Dein MessageBox-Form frmMsgForm heißt). Für Deine Zwecke müsste das reichen.

Für Möglichkeit b) erstellst Du ein neues Modul (oder verwendest eines, das evtl schon besteht) und trägst dort
Code:
Option Explicit
Global strMsgText as String
ein. (Wobei Public anstelle von Global genauso funktionieren müsste, wobei ich hier Global vorziehe)
Diese Variante erlaubt es Dir, von jedem Form im Projekt durch strMsgText auf den Inhalt der Variablen zuzugreifen. Da sich die Variable in einem Modul befindet und als "global" deklariert ist, brauchst du keinen Formular- bzw. Modulnamen voranzustellen. Das gleiche gilt übrigens auch für im Modul definierte public Funktionen oder Prozeduren.
 
guggsu...
keine ahnung, ob das klappt, hab das nur mal in der api gefunden..
bei MSGBOXPARAMS gibts nämlich was von icon.

Public Declare Function MessageBoxIndirect Lib "user32"

Alias "MessageBoxIndirectA" (lpMsgBoxParams As MSGBOXPARAMS) As Long
Public Type MSGBOXPARAMS
cbSize As Long
hwndOwner As Long
hInstance As Long
lpszText As String
lpszCaption As String
dwStyle As Long
lpszIcon As String
dwContextHelpId As Long
lpfnMsgBoxCallback As Long
dwLanguageId As Long
End Type
 
Servus!

Code:
MsgBox "Hallo", vbCritical
MsgBox "Hallo", vbExclamation
MsgBox "Hallo", vbInformation
MsgBox "Hallo", vbQuestion

Gibt zumindest einmal 4 default Icons ...

Gruß Tom
 

Neue Beiträge

Zurück