Difference between revisions of "Hints and Recipes for VB6"
From Free Knowledge Base- The DUCK Project: information for everyone
(New page: == Date and Time examples with formatting options == strTimeStamp = Date & " " & Format(Time, "HH:mm:ss") strMsg = strMsg & "date/time of request: " & Date & " " & Time & vbCrLf str...) |
|||
Line 61: | Line 61: | ||
End Sub | End Sub | ||
+ | == Determine is a form has been loaded == | ||
+ | |||
+ | The wrong way: | ||
+ | if form1.visible = true then | ||
+ | The reason: | ||
+ | |||
+ | Due to the way the intrinsic variable instance works in VB, the line above will actually cause form1 to load. Forms are loaded automatically whenever referenced in code, whether loaded visibly or not. | ||
+ | |||
+ | Special thanks to a gentleman named Steve Gerrard who posted a correct sample script on another forum. His example works by going through a list of loaded forms and matching by the form name you are looking for. | ||
+ | |||
+ | Public Function FormIsLoaded(FormName As String) As Boolean | ||
+ | Dim oFrm As Form | ||
+ | For Each oFrm In Forms | ||
+ | If oFrm.Name = FormName Then | ||
+ | FormIsLoaded = True | ||
+ | Exit For | ||
+ | End If | ||
+ | Next oFrm | ||
+ | End Function | ||
+ | |||
+ | lovely! | ||
| |
Revision as of 16:35, 18 January 2008
Contents
Date and Time examples with formatting options
strTimeStamp = Date & " " & Format(Time, "HH:mm:ss") strMsg = strMsg & "date/time of request: " & Date & " " & Time & vbCrLf strSQLdate = Format(Date, "M/d/yyyy")
Combobox
With cboDelimiter .AddItem "TAB" .AddItem "PIPE" .AddItem "SPACE" .AddItem "fancy!" End With cboDelimiter = "TAB"
Write/Create a new file using FileSystemObject
- must add 'reference' to "Microsoft Scripting Runtime"
Dim fso As New FileSystemObject, fsoStream As TextStream Dim rec1, strLine, strFileSpec Dim cnt0 As Integer, tag1 As Integer strFileSpec = Environ("HOMEPATH") & "\My Documents\kaching.log" strLine = "kaching incident " & Date & " " & Format(time, "HH:mm:ss") & vbCrLf Set fsoStream = fso.CreateTextFile(strFileSpec, True) fsoStream.Write strLine fsoStream.Close Set fsoStream = Nothing: Set fso = Nothing
Write if exists, create if doesn't exist using FileSystemObject
If fso.FileExists(strFileSpec) Then Set fsoStream = fso.OpenTextFile(strFileSpec, 2) Else Set fsoStream = fso.CreateTextFile(strFileSpec, True) End If fsoStream.Write strLine fsoStream.Close Set fsoStream = Nothing: Set fso = Nothing
' strFileSpec, 1 : ForReading 2 : ForWriting 8 : ForAppending
Write to control on another form and display
Dim lblCaught As Label Set lblCaught = frmKaching.lblCaught frmKaching.WindowState = vbNormal lblCaught = "You've Been Naughty!" frmKaching.Show
Delay without using a Timer control
Public Sub LongDelay(intSeconds As Long) Dim cnt As Double cnt = Timer + intSeconds Do While Timer < cnt DoEvents Loop End Sub
Determine is a form has been loaded
The wrong way:
if form1.visible = true then
The reason:
Due to the way the intrinsic variable instance works in VB, the line above will actually cause form1 to load. Forms are loaded automatically whenever referenced in code, whether loaded visibly or not.
Special thanks to a gentleman named Steve Gerrard who posted a correct sample script on another forum. His example works by going through a list of loaded forms and matching by the form name you are looking for.
Public Function FormIsLoaded(FormName As String) As Boolean Dim oFrm As Form For Each oFrm In Forms If oFrm.Name = FormName Then FormIsLoaded = True Exit For End If Next oFrm End Function
lovely!