Newsgroup: it.comp.appl.access
Titolo: Routine presenti sul sito comune

Ciao a tutto il NG,
spulciando sul sito comune ho notato che ci sono delle routine che
utilizzano le chiamate API di Windows. Ne ho viste due in particolare che,
secondo me, dichiarano male le API che utilizzano; queste sono 'Rimuovere il
pulsante di chiusura (X), il menu e i pulsanti di ridimensionamento di
Access' e 'Cambiare il titolo della finestra di MSAccess, usando le API'.
Dichiarano variabili di tipo integer al posto di quelle long e, se si
effettua un cut&paste su un modulo ci si accorge che questi non funzionano.
Ciao
LaLo
P.S.: ho scritto anche al Webmaster ma siccome non ho visto nessun
cambiamento ho pensato che il Webmaster non risponde alle e-mail e che forse
c'è una ragione perchè le routine sono state scritte in quel modo.

 c'è una ragione perchè le routine sono state scritte in quel modo.
Purtroppo la posta non viene controllata giornalmente,
questo per ovvi motivi di tempo, quindi in realta' la tua
mail non e' ancora stata letta, mi spiace.
-- 
Federico
--------------------------------------
Sito Comune di it.comp.appl.access
http://members.xoom.it/it_db_access
--------------------------------------
Tutte le richieste che mi arrivano
in privato, vengono cestinate.
--------------------------------------
Rimuovi paperino. per e-mail
--------------------------------------





La rutine del Pulsante di Chiusura se utilizzata su 
win 2000


da un errore di "overflow"


Non si puo fare nulla ?


Grazie



 ha scritto nel messaggio
news:007d01c08d5c$5cb24af0$81161497@Dany...

======
Risposta
======
Ciao Daniela,
se vuoi farla funzionare su W2K devi modificare le variabili integer (quelle
che terminano in %) in long (sostituire con &). In questo modo funziona.
Ciao
LaLo

 LaLo
Ho controllato, effettivamente, su win98 funzionano.
Evidentemente in win00 non c'e' piu' la compatibilita'.
Vi posto le versioni corrette (spero) delle routine,
saranno in linea al prossimo aggiornamento del sito.
Grazie per la segnalazione.
Federico
-----------------------------------------------------------------------------
Rimuovere il pulsante di chiusura (X), il menu e i pulsanti
di ridimensionamento di Access. (Antogal)
-----------------------------------------------------------------------------
Private Const GWL_STYLE = -16
Private Const WS_SYSMENU = &H80000
Private Const WS_MINIMIZEBOX = &H20000
Private Const WS_MAXIMIZEBOX = &H10000
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
    (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
    (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function GetParent Lib "user32" (ByVal hwnd As Long) As Long
 
Public Sub LockAppWindow(fForm As Form)
    ModifyAppWind fForm.hwnd
    MsgBox "Ciao ciao pulsantini!"
End Sub
Private Sub ModifyAppWind(wChildWnd)
    Dim wParentWnd%
    wParentWnd = GetParent(GetParent(wChildWnd))
    Dim PrevWinStyle As Long, NewWinStyle As Long
    PrevWinStyle = GetWindowLong(wParentWnd, GWL_STYLE)
    NewWinStyle = PrevWinStyle And Not WS_SYSMENU And _
       Not WS_MINIMIZEBOX And _
       Not WS_MAXIMIZEBOX
    PrevWinStyle = SetWindowLong(wParentWnd, GWL_STYLE, NewWinStyle)
End Sub
'La funzione va richiamata cosě:
'LockAppWindow Screen.ActiveForm
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
Cambiare il titolo della finestra di MSAccess, usando le API (Antonio Biso)
-----------------------------------------------------------------------------
 Private Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" _
    (ByVal hwnd As Long, ByVal lpString As String) As Long
 Private Declare Function GetActiveWindow Lib "user32" () As Long
 Private Declare Function GetParent Lib "user32" (ByVal hwnd As Long) As Long
 Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" _
    (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long)
As Long
 Public Sub ChangeAccessTitle()
     Dim myhwnd%
     Const ACCWIN = "Omain"
     myhwnd% = GetActiveWindow()
     If myhwnd% <> 0 Then
         While ((CheckWindowClass(myhwnd%) <> ACCWIN) And (myhwnd% <> 0))
             myhwnd% = GetParent(myhwnd%)
         Wend
     Else
         Exit Sub
     End If
     If myhwnd% <> 0 Then
         SetWindowText myhwnd%, "TITOLO APPLICAZIONE - RELEASE - DATA"
     End If
 End Sub
 Private Function CheckWindowClass(hwnd%)
     Dim stringlength%
     Const maxstringsize = 255
     Dim safemembuffer As String * maxstringsize
     If hwnd% <> 0 Then
         stringlength% = GetClassName(hwnd%, safemembuffer, maxstringsize)
         CheckWindowClass = Left$(safemembuffer, stringlength%)
     End If
 End Function
 Public Sub ResetTitle()
     Dim myhwnd%
     Const ACCWIN = "Omain"
     myhwnd% = GetActiveWindow()
     If myhwnd% <> 0 Then
         While ((CheckWindowClass(myhwnd%) <> ACCWIN) And (myhwnd% <> 0))
             myhwnd% = GetParent(myhwnd%)
         Wend
         Else
             Exit Sub
     End If
     If myhwnd% <> 0 Then
         SetWindowText myhwnd%, "Microsoft Access"
     End If
 End Sub
-----------------------------------------------------------------------------
----------------------------------
Rimuovi paperino. per e-mail
----------------------------------
Tutte le richieste che arrivano
in privato, vengono cestinate.
----------------------------------
Sito Comune di it.comp.appl.access
http://www.sitocomune.com
mailto:
webm...@sitocomune.com
----------------------------------

 che terminano in %) in long (sostituire con &). In questo modo funziona.
Infatti questo è necessario anche con WIN NT
Con '98 invece funzionano, in quanto ha un gestore anche per le chiamate a
16 Bit migliore di NT e 2000

 libreria.
Se serve ho creato anche la versione a 32 bit di quella...
Antonio

 ha scritto nel messaggio
news:Cwtf6.106825$ew1.6...@news.infostrada.it...

Ti ringrazio, ma ho già modificato quella presente sul sito per adattarla
alle chiamate a 32 bit.
Grazie lo stesso.
LaLo

 Antonio
in questo stesso thread ho postato la versione corretta, magari dacci uno
sguardo.
al prossimo aggiornamento, modifichero' anche quella sul sito.
grazie
-- 
Federico
----------------------------------
Rimuovi paperino. per e-mail
----------------------------------
Tutte le richieste che arrivano
in privato, vengono cestinate.
----------------------------------
Sito Comune di it.comp.appl.access
http://www.sitocomune.com
mailto:
webm...@sitocomune.com
----------------------------------