Standarddialoge

Standardialoge wie "Öffnen", "Speichern", "Speichern unter", "Drucken" etc. stehen in Windows auch zur Nutzung durch den Programmierer zur Verfügung. Sie sind über das Steuerelement "CommonDialog" erreichbar. Allerdings sind sie nicht völlig frei manipulierbar. Man kann aus Visual Basic z.B. keinen Einfluß auf die Lage oder Größe des Fensters nehmen. Vollen Zugriff bekommt man erst über die Windows API. Der Nachteil ist aber in der Praxis kaum von Bedeutung. Dieses sehr mächtige Steuerelement kommt leider in der VB-Hilfe so gut wie gar nicht vor.

Öffnen

Ein Beispielaufruf, das CommonDialog-Steuerelement heiße (Name-Eigenschaft) CmDialog1.
 
Sub mnuÖffnen_Click()  
   On Error GoTo ErrHandler mögliche Fehler (wozu bequemerweise auch der Abbruch gehört) auffangen
   CmDialog1.Filter = "Potentiale(*.pot)|*.pot"  Voreinstellung der Dateiart
   CmDialog1.Flags = &H1000& vgl. obige Flag-Tabelle
   CmDialog1.Action = 1 Aufruf des Dialogfensters. Es ist nur noch dieses ansprechbar, bis es mit Abbruch oder OK geschlossen wird.
   Pot_Filename = CmDialog1.Filename Das Fenster ist wieder geschlossen, die ausgewählte Datei wird an eine Variable übergeben
   Open Pot_Filename For Input As 100 Öffnen der ausgewählten Datei, es folgt die selbst zu gestaltende Leseroutine
   Input #100, tZeile  hier nur eine Textzeile, die in die Variable des Namens tZeile eingelesen wird.
   Close #100 Datei schließen
Nixwieweg: Marke für Ansprung Resume
      Exit Sub Unterprogramm verlassen
ErrHandler: Sprungmarke Fehlerbehandlung
   MsgBox ("Abbruch oder Laden mißlungen, Daten überprüfen") Messagebox wartet auf OK
   Resume Nixwieweg Fehler ist erledigt, springe zur Marke und beende die Routine
End Sub  
 Das mit dem obigen Code aufgerufene Fenster :


Speichern (unter)

Wieder ein Beispielaufruf, das CommonDialog-Steuerelement heiße (Name-Eigenschaft) CmDialog1.
 
Private Sub mnuSpeichernUnter_Click()  
   On Error GoTo ErrH Fehler auffangen
   CmDialog1.Flags = &H2& Flags setzen
   CmDialog1.Filter = "Dateien (*.dat)|*.dat" voreingestellte Dateikennung
   CmDialog1.Action = 2 Aufruf des Speicherdialogs, er dient der Vergabe des Dateinamens und der Wahl des Speicherpfades; unter dem Schlüsselwort "FileName" wird Pfad und Name zurückgegeben
   Daten_Speichern (CmDialog1.Filename) eigentliche Speicherroutine
Ausgang: Sprungmarke
   Exit Sub reguläres Ende der Routine
ErrH: Fehlerbehandlung
   MsgBox "So ein Mist", 33, "evtl. Laufwerk nicht vhd." Mitteilung über den Fehler
   Restore Ausgang Fehler ist erledigt, raus aus der Routine 
End Sub Ende 

es öffnet sich dieses Fenster:


Farbe

Wieder ein Beispielaufruf, das CommonDialog-Steuerelement heiße (Name-Eigenschaft) CmDialog1. Der Aufruf erfolgt mit .Action = 3. Mit .Color wird eine gewählte Farbe zurückgegeben und kann einem Steuerelement zugewiesen werden.


Schriftart

Wieder ein Beispielaufruf, das CommonDialog-Steuerelement heiße (Name-Eigenschaft) CmDialog1.
 
Private Sub mnuSchriftwahl_Click()  
   On Error GoTo Ente Fehler auffangen
   CmDialog1.Flags = &H8000& Or &H200000 Or &H4000& Or &H3& Flags setzen
   CmDialog1.CancelError = True Bedienung der Abbruchtaste soll einen Fehler erzeugen, der dann wie sonstige Fehler abgefangen wird
   CmDialog1.FontName = Schriftname '"Courier New" vorgewählte Schriftart
   CmDialog1.Action = 4 Aufruf des Dialogfensters
   Schriftname = CmDialog1.FontName neu gewählte Schriftart wird übernommen (Name übernommen in die Variable Schriftname)
   Schriftgroesse = CInt(stdDialog1.FontSize) neu eingestellte Schriftgröße wird übernommen 
   Exit Sub Alles ist klar!
Ente:  
   Resume Raus Fehler ist zu vergessen, raus aus der Routine 
Raus:  
End Sub  


Druckerauswahl / Drucken

Das CommonDialog-Steuerelement heißt hier (Name-Eigenschaft) CmDialog1.
 
Private Sub mnuDatDruck_Click()  
   CmDialog1.Flags = &H80000 Or &H8& Or &H4& Flags nach Tabelle der Druckerflags setzen
   CmDialog1.Copies = 1 ergänzende Voreinstellung: nur ein Exemplar
   CmDialog1.CancelError = True wenn Abbruch, dann melde Fehler
   On Error GoTo ErrHandler Wenn Abbruch oder Druckerwahl schief geht, versuche nicht, zu drucken
   CmDialog1.Action = 5 Druckerdialog aufrufen, er regelt die Druckerauswahl, das Fenster wird mit Abbruch oder OK geschlossen.
   Printer.Print "Dies ist die Überschrift" Da kein Abbruch oder sonstiger Fehler geschehen ist: 'Beginn der Druckbefehle
   Printer.Print ..... Folge der Druckbefehle
   Printer.EndDoc Dokument abschließen und drucken
hierher: Sprungmarke
   Exit Sub Routine verlassen
ErrHandler: Fehlerroutine
   Resume hierher mach gar nichts, melde Fehler als erledigt und setze bei der Marke hierher fort, beende also die Routine
End Sub  

das bekannte Fenster:


Hilfe

Das Dialogfeld wird von den üblicherweise eingesetzten API-Routinen zum Aufruf der Hilfe eigenständig verwaltet. Hilfe-Aufrufe werden im Hilfekapitel beschrieben, das sich in Überarbeitung befindet und deshalb im Moment fehlt.