VB -37: Printers-Collection

Menüs zur Laufzeit verändern

Wenn es uns nur um die Auswahl des Druckers geht, können wir dies auch ganz gut ohne den Standarddialog realisieren. VB gestattet es uns, auf die sogenannte "Printers-Collection" zu zugreifen, hier sind alle installierten Drucker aufgeführt.

Wir ändern unser Projekt ab, indem wir den Menüpunkt in "Drucker auswählen" (mnuDruckerWahl) und einen Untermenüpunkt "Drucker0" (mnuDrucker) mit dem Index 0 einfügen. Da wir zunächst nicht wissen, wieviele und welche Drucker auf dem PC des Anwenders installiert sind, können wir das endgültige Aussehen des Menüs erst zur Laufzeit bestimmen.

Wir fügen dazu in unser Form_Load-Ereignis die folgenden Zeilen hinzu:

    For i = 0 To Printers.Count - 1         'alle verfügbaren Drucker
        If i > 0 Then Load mnuDrucker(i)    'neue Drucker ins Menü laden
        mnuDrucker(i).Caption = Printers(i).DeviceName
    Next
    

Auch ein Menü ist nichts anderes als ein Control und kann - genau wie unsere Kugeln - zur Laufzeit geladen werden. Printers.Count gibt uns die Zahl der verfügbaren Drucker zurück. Printers(i).DeviceName gibt uns den Namen des jeweiligen Druckers, den wir in unser Menü schreiben.

Jetzt müssen wir nur noch auf das Click-Ereignis bei der Druckerauswahl reagieren:

     Private Sub mnuDrucker_Click(Index As Integer)
        Set Printer = Printers(Index)    'ausgewählten Drucker aktivieren
     End Sub
 

Schon können wir uns die OCX sparen.

Beispielprojekt laden

zurück Index weiter


© Copyright 1998-2000 J.Behling EMail schreiben ABC-Ware's Homepage
Weitergabe und Druck (auch in Teilen, mit Ausnahme von Privatgebrauch) ohne ausdrückliche Genehmigung der Autorin untersagt.