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