Service: Visual-Basic 6.0 Tipps: Eine böse Geschichte: Common Controls Update


Ein sehr nettes Ei haben uns die Leute aus Richmond da gelegt: VB 5.0 Projekte, die ein (oder mehrere) Steuerelement(e) aus der Gruppe der Common Controls enthalten (z.B. TreeView oder ListView) und auf die neue Version umzustellen, ist an Umständlichkeiten und Falltüren kaum zu überbieten.

Der naheliegende und einfache Weg, die Referenzen in den Projekteigenschaften auszutauschen, ist nicht möglich.

  • Die alte Steuerelementreferenz kann nicht entfernt werden, weil Sie in Benutzung ist.

  • Die neue Steuerelementreferenz kann nicht in das Projekt eingebunden werden, weil sie die gleiche ID wie die alte hat und zwei gleichlautende Komponenten nicht in ein Projekt eingebunden werden können.

Also bleibt die Möglichkeit, die Projektdateien manuell zu bearbeiten. Dabei genügt es aber nicht, die vbp-Datei anzupassen:

  • Jedes Formular, auf dem ein solches Steuerelement plaziert ist, hält im Header ebenfalls eine Referenz auf das Steuerelement.
  • Zu allem Überfluss unterscheidet sich die Syntax bei der Plazierung eines Steuerelementes auf einem Formular.

Die Unterschiede sind nachstehend aufgelistet und zeigen die erforderlichen Ersetzungen (allerdings kann die genaue Syntax je nach installierten SP's leicht variieren). Am besten selbst zwei Beispielprojekte erstellen und prüfen.

VB 5.0
Projektdatei (*.vbp) Object={6B7E6392-850A-101B-AFC0-4210102A8DA7}#1.3#0; COMCTL32.OCX
Formularklassen (*.frm) Object = "{6B7E6392-850A-101B-AFC0-4210102A8DA7}#1.3#0"; "COMCTL32.OCX"
Steuerelementdeklaration in Formularmodul (*) Begin ComctlLib.TreeView tvw
...
End
VB 6.0
Projektdatei (*.vbp) Object={831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0; MSCOMCTL.OCX
Formularklassen (*.frm) Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCTL.OCX"
Steuerelementdeklaration in Formularmodul (*) Begin MSComctlLib.TreeView tvw
...
End

* Steht im verborgenen 'Kopfteil' des Formularmoduls. Ist nur sichtbar, wenn die Moduldatei (*.frm) mit einem Texteditor geöffnet wird.

Microsoft beschreibt das Problem in folgendem Artikal: Upgrade project to use new Visual Basic 6.0 controls

Seitenanfang

Kontaktaufnahme- und Terminvereinbarung:

Bei Fragen und für Terminvereinbarungen erreichen Sie uns unter:

0 63 49 99 07 38

0 151 51 95 34 00

Oder nutzen Sie das Kontaktformular




Ihr Ansprechpartner:


Hier sollte das Fahnungsfoto zu sehen sein.

Ralf Kunsmann

Spezialist für VBA-Programmierung
(alle Office-Anwendungen)
Entwickler der
VBA-Extension-Tools