An dieser Stelle finden Sie einige Tips und Tricks speziell für VB. Für manche ist dies "Schnee von Gestern" für andere können sie das eine oder andere Problem lösen.
Sollten Sie ebenfalls noch Tricks auf Lager haben und der Ansicht sind diese müssten unbedingt hier erscheinen, wäre ich Ihnen dankbar, wenn Sie mir eine Mail schicken würden mit einer kurzen Beschreibung und evtl. Sourcecode.
Es muss sich hierbei nicht ausschlieslich um VB handeln, denn wir möchten auch noch andere "Tips und Tricks"-Seiten anbieten. Sie sollten lediglich aus dem Gebiet der EDV sein.
Windows 95, Windows NT oder was ?
Es ist oftmals nicht unwesentlich zu wissen, auf welcher Plattform meine Anwendung gerade abläuft. GetPlatformID findet es heraus.
Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * 128
End Type
Declare Function GetVersionEx Lib "KERNEL32" Alias "GetVersionExA" _
(ByRef lpVersionInformation As OSVERSIONINFO) As Long
Function GetPlatformID() As String
Dim luOSInfo As OSVERSIONINFO
Dim llReturnValue As Long
llReturnValue = GetVersionEx(luOSInfo)
luOSInfo.dwOSVersionInfoSize = 148
luOSInfo.szCSDVersion = Space(128)
llReturnValue = GetVersionEx(luOSInfo)
Select Case luOSInfo.dwPlatformId
Case 1
GetPlatformID = "WIN95"
Case 2
GetPlatformID = "WINNT"
Case Else
GetPlatformID = "WIN32"
End Select
End Function
Das höherwerige und niederwertige Byte
Diese Funktionen liefern das höherwertige (HiByte) und das niederwertige (LoByte) Byte
Public Function HiByte(ByVal piParam As Integer)
HiByte = piParam \ &H100 And &HFF&
End Function
Public Function LoByte(ByVal piParam As Integer)
LoByte = piParam And &HFF&
End Function
Wer schon einmal einen Kalender programmieren mußte weiß, daß hierzu auch die Abbildung der Feiertage nützlich sein kann. Bei solchen, die auf ein festes Datum fallen (z.B. der Maifeiertag am 1.5.) ist es kein Problem und die anderen leiten sich allesamt vom Ostersonntag ab. Die folgende Funktion liefert den Ostersonntag bis in das Jahr 2099 (das sollte wohl auch reichen).
Public Function GetOstersonntag(ByVal psJahr As Single) As Date
Dim lsYearPart As Single
Dim lsMondPhase As Single
Dim lsDayPart As Single
Dim lsDummy1 As Single
Dim lsDummy2 As Single
Dim lsOsterTag As Single
Dim lsOsterMonat As Single
lsYearPart = psJahr Mod 19
lsMondPhase = psJahr Mod 4
lsDayPart = psJahr Mod 7
lsDummy1 = (19 * lsYearPart + 24) Mod 30
lsDummy2 = (2 * lsMondPhase + 4 * lsDayPart + 6 * lsDummy1 + 5) Mod 7
lsOsterTag = 22 + lsDummy1 + lsDummy2
lsOsterMonat = 3
If lsOsterTag > 31 Then
lsOsterTag = lsDummy1 + lsDummy2 - 9
lsOsterMonat = 4
End If
If lsOsterTag = 26 And lsOsterMonat = 4 Then
lsOsterTag = 19
End If
If lsOsterTag = 25 _
And lsOsterMonat = 4 _
And lsDummy1 = 28 _
And lsDummy2 = 6 _
And lsYearPart > 10 Then
lsOsterTag = 18
End If
GetOstersonntag = CDate(lsOsterTag & "." & lsOsterMonat & "." & psJahr)
End Function
last modified 28.09.99, Burre-Computerservice