Ok...ora posto tutto,spero possiate aiutarmi.
Questo è il mio MDIForm_Load:
codice:
Private Sub MDIForm_Load()
trasparenza = 255 ' Imposto la trasparenza al massimo
ImpostaToolBar tbTop, iml16a ',iml16, Non usare in quanto cambia le immagini inserite con quelle di iml16!
Dim rs As ADODB.Recordset
Dim sSQL As String
CIni.FinestraLeggiPosizione Me
' così posso usare l'Imagelist in tutto il progetto
' riferendomi solamente alla varibali oggetto 'IML'
Set IML = iml16
sb.Panels("user").Tag = gsUserName
sb.Refresh
InitTrayIcon picTray, picTray.Picture, Me.Caption
'---Sto provando ad attivare un panello di comando.
'---Pannello attivo,ora aggionare ad ogni cambio utente.
'---Problema Risolto.
Me.sb.Panels(1).Text = gsUserName
If gsUserName = "Administrator" Then
ElseIf gsUserName = "administrator" Then
frmMain.Smmodifica.Visible = True
Else
frmMain.Smmodifica.Visible = False
End If
End Sub
Questo è invece il mio modulo.bas con la funzione:
codice:
Public Type NOTIFYICONDATA
cbsize As Long
hwnd As Long
uid As Long
uflags As Long
ucallbackmessage As Long
hicon As Long
sztip As String * 64
End Type
Public GestPwd As NOTIFYICONDATA
Public Const NIM_ADD = &H0
Public Const NIM_MODIFY = &H1
Public Const NIM_DELETE = &H2
Public Const WM_MOUSEMOVE = &H200
Public Const NIF_MESSAGE = &H1
Public Const NIF_ICON = &H2
Public Const NIF_TIP = &H4
Public Const WM_LBUTTONDOWN = &H201 'Button down
Public Const WM_LBUTTONUP = &H202 'Button up
Public Const WM_LBUTTONDBLCLK = &H203 'Double-click
Public Const WM_RBUTTONDOWN = &H204 'Button down
Public Const WM_RBUTTONUP = &H205 'Button up
Public Const WM_RBUTTONDBLCLK = &H206 'Double-click
Public Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long
Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Public Function HyperJump(ByVal URL As String) As Long
HyperJump = ShellExecute(0&, vbNullString, URL, vbNullString, vbNullString, vbNormalFocus)
End Function
Public Sub InitTrayIcon(callback As Object, icon As IPictureDisp, testo As String, f As Form)
Rem Il form DEVE essere visibile prima di chiamare la Shell_NotifyIcon
With GestPwd
.cbsize = Len(GestPwd)
.hwnd = callback.hwnd
.uid = vbNull
.uflags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
.ucallbackmessage = WM_MOUSEMOVE
.hicon = icon.Handle
.sztip = testo & vbNullChar
End With
gbIconInTray = True
Shell_NotifyIcon NIM_ADD, GestPwd
End Sub
Ok.Ora se lo lascio così mi da questi errori:
in MDIForm_Load() quando arriva a "InitTrayIcon..." mi dice argomento non facoltativo.
Allora ho provato a fare così:
codice:
Call InitTrayIcon(callback, icon, testo, f)
E mi dice che callback è una variabile non definita.
se la dichiaro con
Dim callback as object
dim t as string
dim f as form
alla fine mi da l'errore "91" che sarebbe quello che ho fatto vedere prima in figura.
Mi sai aiutare?penso di aver fatto un casino!!
l'errore 91 si riferisce alla funzione InitTrayIcon ed esattamente a
.hwnd = callback.hwnd
Cosa devo fare?