Visual Basic 6

10 kleine Helferlein

Hilfsfunktionen, die das Leben erleichtern

In fast jedem VB-Projekt gibt es ein Modul "Tools" o.ä., das kleine Hilfsfunktionen enthält, die meist nur wenige Zeilen lang sind, aber das abdecken, was Microsoft "vergessen" hat oder was unter das Thema "Code-Redundanz" fällt.

Ein Beispiel hierfür ist die dann doch so nützliche Funktion nz, die zwar im VBA-Sprachumfang vorhanden ist, aber eben nicht in Visual Basic 6. In diesem Artikel habe ich mal 10 solcher Mini-Funktionen zusammengefasst.

Nz

Diese Funktion gibt bei positiver Prüfung der Eingangsvariable auf NULL oder <leer> die Ersetzunsgvariable zurück.

Public Function nz(varValue As Variant, varReplace As Variant)
As Variant

   If IsNull(varValue) Or varValue = "" Then
      nz = varReplace
   Else
      nz = varValue
   End If

End Function

SleepAWhile

Diese Funktion nötigt das System, eine Anzahl von Sekunden die Arbeit einzustellen, um zum Beispiel sicherzustellen, dass eine SQL-Transaktion abgearbeitet wurde.

Deklarationen:

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Funktion:

Public Function SleepAWhile(intSeconds As Integer)
   Call Sleep(intSeconds * 1000)
End Function

SelectText

Benutzer sind es gewohnt, dass der Text in einem Textfeld komplett markiert ist, wenn das Textfeld den Focus erhält. Mit VB-Bordmitteln ist dies nicht zu bewerkstelligen, aber mit dieser Funktion, wenn Sie in das GotFocus-Ereignis des Textfelds eingestellt wird.

Public Function SelectText()

   On Error Resume Next

   Screen.ActiveControl.SelStart = 0
   Screen.ActiveControl.SelLength = Len(Screen.ActiveControl.Text)

End Function

IsFormLoaded

Diese Funktion überprüft, ob ein bestimmtes Formular bereits geladen wurde.

Public Function IsFormLoaded(ByVal strFormName As String) As Boolean

   Dim i As Integer

   For i = 0 To Forms.Count
      IsFormLoaded = Forms(i).Name = strFormName
      Exit Function
   Next

End Function

IsInIDE

Diese Funktion überprüft, ob das Programm über die VB6-IDE oder als kompilierte EXE gestartet wurde.

Deklaration:

Private Declare Function GetModuleFileName Lib "kernel32" _
   Alias "GetModuleFileNameA" ( _
   ByVal hModule As Long, _
   ByVal lpFileName As String, _
   ByVal nSize As Long) As Long

Funktion:

Public Function IsInIDE() As Boolean

   Dim strFileName As String
   Dim lngCount As Long

   strFileName = String(255, 0)
   lngCount = GetModuleFileName(App.hInstance, strFileName, 255)
   strFileName = Left(strFileName, lngCount)

   If UCase(Right(strFileName, 7)) = "VB6.EXE" Then
      IsInIDE = True
   End If

End Function

SplitEx

Die normale Split-Funktion zerlegt einen String anhand eines Delimiters. Diese Funktion hier zerlegt ihn anhand einer Schrittweite. Der Rückgabewert ist, wie beim Original, ein Array.

Public Function SplitEx( _
   ByVal strIn As String, _
   ByVal intCharCount As Integer) As String()

   Dim arr() As String
   Dim i As Integer
   Dim j As Integer

   ReDim arr(0)

   For i = 1 To Len(strIn) Step intCharCount
      arr(j) = Mid(strIn, i, intCharCount)
      ReDim Preserve arr(UBound(arr) + 1)
      j = j + 1
   Next

   ReDim Preserve arr(UBound(arr) - 1)

   SplitEx = arr

End Function

TrimNull

Viele API-Funktionen geben Strings fester Länge zurück, wobei der nicht benötigte Platz mit NullChars aufgefüllt sind. Diese Funktion schneidet diese NullChars wieder ab.

Public Function TrimNull(strValue As String) As String

   Dim arr() As String

   arr = Split(strValue, vbNullChar)
   TrimNull = arr(0)

End Function

String2Date

Manchmal kann es vorkommen, gerade im Umgang mit Datenbanken, dass ein Datum ohne Trennzeichen zurückgeliefert wird. Diese Funktion setzt sie wieder ein.

Public Function String2Date(ByVal strIn As String) As String

   If Len(strIn) = 6 Then
      String2Date = Left(strIn, 2) & "." & Mid(strIn, 3,2) & "." & Right(strIn, 2)
   ElseIf Len(strIn) = 8 Then
      String2Date = Left(strIn, 2) & "." & Mid(strIn, 3,2) & "." & Right(strIn, 4)
   ElseIf Len(strIn) = 10 Then
      String2Date = strIn
   End If

End Function

AscEx

Die ASC-Funktion schlägt fehl, wenn der übergebene String leer ist. Diese Funktion behebt das Problem.

Public Function AscEx(ByVal strChar As String)

   If strChar = "" Then
      AscEx = 0
   Else
      AscEx = Asc(strChar)
   End If

End Function

ValueGreaterNull

Verstecken sich Zahlen in String-Variablen, kann man mit dieser Funktion überprüfen, ob der Wert numerisch größer Null ist.

Public Function ValueGreaterNull(ByVal strValue As String) As
Boolean

   If Len(Trim$(strValue)) > 0 Then
      If IsNumeric(strValue) Then
         If CDbl(strValue) > 0 Then
             ValueGreaterNull = True
         End If
      End If
   End If

End Function
kick it on dotnet-kicks.de AddThis Trackback-Url...

Verwandte Artikel

VB-Programm als Dienst starten

Schlagworte

Keine Kommentare bislang...

Dein Kommentar hierzu...


Kommentar-Feed für diesen Beitrag
Gravatare werden unterstützt .:. eMail-Adressen werden nicht veröffentlicht
 

RSS-Feed

Die URL des Standard-Newsfeed von zerbit.de lautet:

http://www.zerbit.de/rssfeed.aspx

Login


 

 

Statistik



kürzlich kommentiert

  • Roland : 06.09.2010 13:15 @ OutlookSignature
    in der Facebook-Gruppe gibt es zumindest...
  • Roland : 06.09.2010 11:48 @ OutlookSignature
    Hallo, wir verwalten unsere Signaturen a...
  • Helmut : 05.09.2010 15:08 @ OutlookSignature
    Mir wird bei Outlook 2010 auch die Stand...
  • S. Doberstein : 31.08.2010 22:59 @ Der Ordner "MSOCache"
    Fortsetzung meines gestrigen Kommentares...
  • Steffen Doberstein : 30.08.2010 20:50 @ Der Ordner "MSOCache"
    Hallo! Ich fand die Idee mit dem Partiti...

Artikel 10

  • Datum: 16.02.2005
    Kategorie: Visual Basic 6
    Zugriffe: 1.929
    Kommentare: 0
    Trackbacks: 0

Letzte Beiträge

Kategorien

Buttons & More

Blog-Roll

Banner Piraten-Partei