vb-Zentrum
Entwicklung (IDE)
http://www.vb-zentrum.de/tip_entwicklung.html

© 2017 vb-Zentrum

0001 Codeabsätze einrücken

Na - auch schon mal erlebt? Da hat man eine riesige Funktion geschrieben, echt raffiniert und doch: es fehlt noch eine if-Anweisung! Also muss der ganze Code eingerückt werden und schon beginnt ein lustiges Tastatur-Solo! Dabei ist nur ein einziger Tastendruck nötig:

- einzurückenden Quellcode mit der Maus markieren
- TAB-Taste drücken zum Einrücken (oder Shift-TAB zum Linksrücken)


Übrigens: wer seinen Quellcode nur um 2 Zeichen einrückt (statt standardmäßig 4) kann die Funktion auch nutzen: wählen Sie aus dem 'Extras'-Menü Ihrer Entwicklungsumgebung den Eintrag 'Optionen...' und stellen Sie in der Registerkarte 'Editor' die 'Tab-Schrittweite:' auf 2.

Autor: ralf schlegel
Stand: 02/2005

Nach oben

0002 Steuerelemente genau positionieren

Relativ unbekannt ist die Möglichkeit einzelne Objekte per Tastaturbefehle rastergenau in einer Form zu positionieren, doch mit ein bisschen Übung ist man mit diesen Befehlen viel schneller und exakter als mit der Maus. Das Verschieben pro Tastendruck ist hierbei abhängig von der Rastereinstellung, die Sie unter dem Menüpunkt 'Extras' - 'Optionen' - Registerkarte 'Allgemein' gemacht haben:

Strg + Cursor-rechts   Steuerelement um eine Rastereinheit nach rechts verschieben
Strg + Cursor-links Steuerelement um eine Rastereinheit nach links verschieben
Strg + Cursor-oben Steuerelement um eine Rastereinheit nach oben verschieben
Strg + Cursor-unten Steuerelement um eine Rastereinheit nach unten verschieben
Shift + Cursor-rechts Steuerelement um eine Rastereinheit vergrößern
Shift + Cursor-links Steuerelement um eine Rastereinheit verkleinern
Shift + Cursor-oben Steuerelement um eine Rastereinheit verkleinern
Shift + Cursor-unten Steuerelement um eine Rastereinheit vergrößern

Autor: ralf schlegel
Stand: 08/2005

Nach oben

0003 XP-Style bereits in der Entwicklungsumgebung

Um VB6-Programme im XP-Syle erscheinen zu lassen, gibt es diverse Möglichkeiten: entweder erstellen Sie eine externe Manifest-Datei oder Sie nutzen in der IDE eine XP-Style-AddIn wie zum Beispiel das von F. J. Wechselberger.
Leider sehen Sie den XP-Effect erst in der kompilierten Anwendung. Um den Style bereits in der IDE zu sehen gehen Sie folgendermaßen vor:

  1. Kopieren Sie die hier zum Download bereitgestellte Datei vb6_exe_manifest.zip in das Programmverzeichnis von Visual Basic (vb6.exe) und entpacken Sie diese.
  2. Öffnen Sie die entpackte Datei 'vb6.exe.manifest' mit einem Texteditor und passen gegebenenfalls die Zeile 4 (version="6.0.97.82") mit Ihrer tatsächlichen Versionsnummer der VB6.exe an.
  3. Starten Sie Ihr Projekt in der Entwicklungsumgebung...

Autor: ralf schlegel
Stand: 02/2008

Nach oben

0004 Formgestaltung unter VISTA und Windows 7

Wenn Sie VB6 unter MS-Vista / Win7 einsetzen (entgegen aller Diskussionen im Netz: es funktioniert!!!), kennen Sie vielleicht das Problem bei der Gestaltung von Formen: wenn Sie Objekte auf einer Form verschieben, so dauert die Bildschirmaktualisierung extrem lange. Nahezu unmöglich wird es, wenn Sie mehrere Objekte gleichzeitig neu positionieren wollen...

Ursache ist der Aero-Desktop, den die MS-Entwicker von VB6 vor ca. 12 Jahren einfach nicht berücksichtigt haben :-)

Lösung: schalten Sie den Aero-Desktop bei VB6-Entwicklung automatisch ab!

  1. Öffnen Sie den Explorer und wechseln Sie in das Verzeichnis "...\Microsoft Visual Studio\VB98\"
  2. Markieren Sie die VB6.EXE mit der rechten Maustaste und wählen aus dem Kontextmenü den Eintrag 'Eigenschaften'
  3. Wechseln Sie auf die Registerkarte 'Kompatibilität'
  4. Setzen Sie unter 'Einstellungen' im Eintrag 'Desktopgestaltung deaktivieren' einen Haken
  5. Bestätigen Sie den Dialog mit [OK]

Wenn Sie nun VB6 starten, wird der Aero-Desktop abgeschaltet, das Formenzeichnen funktioniert wie gewohnt und nach Beendigung der VB6-Sitzung wird der Aero-Desktop wieder aktiviert.

Autor: ralf schlegel
Stand: 12/2008

Nach oben

0005 Codeabsätze auskommentieren

Kommentare im Code werden bekanntlich durch das Schlüsselwort REM oder ein Hochkomma (') einleiten. Beim Austesten von Programmcode kommt es immer wieder vor, dass man komplette Code-Abschnitte auskommentieren möchte. Lästig ist es, wenn dazu Zeile für Zeile mit einem Hochkomma versehen werden muss. Das hat sich auch Microsoft gedacht und 2 Buttons in die IDE eingebaut.


Diese Buttons finden Sie in der Toolbar "Bearbeiten", die in den Standardeinstellungen nicht eingeschaltet ist. Klicken Sie einfach in den Toolbar- oder Menübereich mit der rechten Maustaste und setzen Sie einen Haken in das Kontextmenü "Bearbeiten". Alternativ können Sie auch das Hauptmenü Ansicht > Symbolleisten > Bearbeiten auswählen. Der Kreis in der Abbildung zeigt die Button "Block auskommentieren" und "Auskommentierung zurücknehmen". Nun müssen Sie nur noch den gewünschten Bereich in Ihrem Quellcode markieren und die Buttons betätigen...

Autor: ralf schlegel
Stand: 03/2011

Nach oben

0006 VB6-Restriktionen beim Einsatz unter VISTA und Windows 7

Wenn Sie mit VB6 Programme entwickeln, die unter MS-Vista / Win7 einsetzen werden sollen, müssen Sie einige Einschränkungen beachten, bzw. alternativ programmieren.

Ich habe hier eine Liste der wichtigsten Restriktionen zusammengestellt:

  1. Der Befehl "SendKeys" funktioniert nicht mehr! Ersetzen Sie diesen durch entsprechenden API-Code.
  2. Registry: Verwenden Sie beim Zugriff auf die Registry ausschließlich HKEY_CURRENT_USER
    Ein Zugriff auf HKEY_LOCAL_MACHINE wird vom UAC geblockt!
    Die Funktionen "GetSetting" und "SaveSetting" können weiterhin genutzt werden,
    bei "DeleteSetting" gilt zu beachten, dass die Funktion nicht mehr zum Löschen von ganzen Abschnitten eingesetzt werden kann! Löschen Sie bei Bedarf jeden Key einzeln! Das heißt:

    DeleteSetting "MyAppl", "Settings" ' führt ab Vista zum Fehler

    DeleteSetting "MyAppl", "Settings", "Resolution" ' funktioniert einwandfrei
  3. Drucken: bei Verwendung des Drucker-Setups (egal ob über Common Dialog Control, oder eigenem API Aufruf) wird als Anzahl der Druck-Kopien immer "1" zurückgegeben! Benötigen Sie in Ihrer Anwendung die Option von Druckkopien, so müssen Sie einen eigenen Druckerdialog erstellen und den gewünschten Ausdruck mehrmals anstoßen.
  4. PlaySound: die beliebte API-Funktion "PlaySound" kann grundsätzlich weiterhin zur Wiedergabe von Wavedateien genutzt werden. Beim Abspielen von MPEG Layer-3 Dateien ist es aber zwingend erforderlich, dass es sich um eine Stereo-Datei handelt!
  5. Wenn Sie in Ihrer Applikation ADO nutzen, dann verwenden Sie Version 2.8 oder höher
  6. Wenn Sie in Ihrer Applikation XML verwenden, dann bitte nur Version 3.0 oder höher.

Diese Liste enthält Restriktionen, die mir bei meiner täglichen Programmierarbeit aufgefallen sind. Sie erhebt keinen Anspruch auf Vollständigkeit! Ich würde mich freuen Ihre eigenen Erfahrungen in diese Liste mit aufnehmen zu können...

Autor: ralf schlegel
Stand: 04/2011

Nach oben

0007 Paket- und Weitergabe-Assistent: Workshop

Der Paket- und Weitergabe-Assistent von VB6 ist nach nunmehr 13 Jahren Lebenszeit nicht mehr auf dem aktuellen Stand! Konnte er seinerzeit doch noch nichts ahnen von Betriebssystemen und Benutzerkontensteuerungen, die in Windows XP, Vista und Windows 7 zum Einsatz kommen. Wer weiterhin mit diesem Tool seine Anwendungen verteilen möchte, der sollte sich mit 2 Dingen beschäftigen:

  1. Die Datei 'VB6DEP.INI' (im Verzeichins: ..\Microsoft Visual Studio\VB98\Wizards\PDWizard\)
  2. Das VB-Projekt 'Setup1.vbp' (im Verzeichnis ..\Microsoft Visual Studio\VB98\Wizards\PDWizard\Setup1\)

Bevor Sie nun beginnen fertigen Sie bitte eine Sicherung der Verzeichnis 'PDWizard' an, damit Sie im Fall des Falles wieder auf das Original zurückkommen!!!

zu 1.) Die Datei VB6DEP.INI enthält die Abhängigkeits-Informationen der DLLs und OCXs und bestimmt somit, welche Dateien zusätzlich zu Ihrer Anwendung installiert werden müssen. Da es sich hierbei um eine INI- also Textdatei handelt, kann diese mit einem einfachen Editor bearbeitet werden. Interessant sind nun die Abschnitte [Non Dependents] und [Do Not Redistribute]:

Sicher kennen Sie die Abfrage des Assistenten: "Für die Datei xyz.dll wurde keine Abhängigkeitsinformation gefunden..." Wenn Sie eine Datei dauerhaft ohne Abhängigkeit verwenden möchten, können Sie die Datei nun entsprechend markieren. Dabei wird sie in den Abschnitt [Non Dependents] aufgenommen. Sie können also hier auch direkt die Dateien eintragen, um zukünftige Abfragen zu vermeiden!
Im Original sieht der Abschnitt in etwa so aus, wie in der folgenden Tabelle links dargestellt.
Ersparen Sie sich die Abfrage bei Dateien, die Sie (ab Windows 98SE) ohnehin nicht mehr mitliefern und prüfen müssen, weil sie fester Bestandteil des Betriebssystems sind und fügen Sie folgende, fett markierte Einträge wie in der rechten Spalte dargestellt hinzu:

Original   Erweiterung
; These are files which do not have any dependencies
[Non Dependents]
ST6Unst.exe=
VB6StKit.dll=
_MSRSTRT.exe=
mdac_typ.exe=
 

; These are files which do not have any dependencies
[Non Dependents]
ST6Unst.exe=
VB6StKit.dll=
_MSRSTRT.exe=
mdac_typ.exe=
advpack.dll=
imagehlp.dll=
shlwapi.dll=
msimg32.dll=
comctl32.dll=
olepro32.dll=
uxtheme.dll=
OLEAUT32.DLL=
EXCEL.EXE=

Desgleichen erweitern Sie den Abschnitt [Do Not Redistribute] um folgende fett markierte Einträge...

Original   Erweiterung

; These are files which will be ignored when
; referenced by a VB project.
[Do Not Redistribute]
shdocvw.dll=
mshtml.dll=
mshtml.tlb=
asp.dll=
asp.tlb=
msaddndr.tlb=
msaddndr.dll=
msdatsrc.tlb=
vb6ext.olb=

 

; These are files which will be ignored when
; referenced by a VB project.
[Do Not Redistribute]
shdocvw.dll=
mshtml.dll=
mshtml.tlb=
asp.dll=
asp.tlb=
msaddndr.tlb=
msaddndr.dll=
msdatsrc.tlb=
vb6ext.olb=
advpack.dll=
hh.exe=
hhctrl.ocx=
itctl.dll=
itirlc.dll=
itss.dll=
imagehlp.dll=
olepro32.dll=
oleaut32.dll=

shlwapi.dll=
urlmon.dll=
uxtheme.dll=
wininet.dll=
msimg32.dll=
EXCEL.EXE=

... und speichern die Datei so ab.

  • Falls Sie sich über den Eintrag EXCEL wundern: viele Programmierer binden die 'Formularverwaltung' von MS Excel in ihr VB-Programm ein. Dazu wird in der Entwicklungsumgebung gerne ein Projekt-Verweis auf die Object Context.Scope.Library von EXCEL gesetzt, damit mit den Objekten einfacher gearbeitet werden kann. Natürlich dürfen Sie MS Excel NICHT in Ihr Setup integrieren. Die Einträge von oben sorgen dafür, dass das erst garnicht passiert. Gleiches gilt natürlich auch für MS Word, oder die Office Context.Scope.Library! Passen Sie das Beispiel aus der Tabelle entsprechend an...

zu 2.) Kommen wir nun zum eigentlichen Setup-Programm: der guten, alten Setup1.exe aus dem PDWizard-Verzeichnis. Das schöne an diesem Tool ist, dass Microsoft den Quellcode diese VB6-Programms mitgeliefert hat und somit eine Anpassung an die heutigen Verhältnisse durchgeführt werden kann. Sie finden das Projekt im Verzeichnis:

..\Microsoft Visual Studio\VB98\Wizards\PDWizard\Setup1\

Öffnen Sie dort die Projekt-Datei Setup.vbp. Der Quellcode ist gut dokumentiert, so dass sich für fortgeschrittene Programmierer leicht Anpassungen durchführen lassen.
Ich selbst habe hier einige Veränderungen durchgeführt: u.a. erkennt das Setup die Ländereinstellungen des Systems und presentiert sich entsprechend in Deutsch oder Englisch. Leider hat mir Mircosoft Deutschland auf meine Anfrage hin verboten, diesen modifizierten Quellcode zu veröffentlichen oder die fertige Setup1.exe separat zum Download anzubieten! Falls Sie also eines meiner Programme (ProFiler oder AnyStart) herunterladen, möchte ich Sie bitten, die darin enthaltene Setup1.exe nicht in Ihr PDWizard Verzeichnis zu kopieren um von den neuen Möglichkeiten zu profitieren...

 

Autor: ralf schlegel
Stand: 06/2011

Nach oben