DISKUSE
FP 9 (2)
11.10.2017 07:59

Chyba archivace pošty (2)
18.09.2017 14:18

chyba Rezevace prostředků * nezapíše se do adresní... (6)
15.09.2017 14:32

Jméno v poště (1)
29.08.2017 08:27

Zmizeni tabulky v rtf poli 
09.08.2017 14:37

All Users\Data aplikacÝ\ (8)
03.08.2017 10:19

Out of Office odpovídá na každý e-mail? (3)
29.07.2017 13:54

Skrytí přes vypočítané pole (14)
21.07.2017 11:19


ŠKOLENÍ


REKLAMA


KOMENTÁŘE

Dostupnosť menu príkazov v Notes klientovi.

Vytisknout článek

Notes klient je "thick". Používateľovi dáva k dispozícii množstvo funkcií, ktoré sú dostupné naprieč aplikáciami. No čo v prípade, ak je potrebné urobiť aplikáciu, v ktorej nemá byť dostupný určitý menu príkaz? Napríklad zneprístupníť v pohľade menu príkaz "File-Export"...


Nižšie uvedený kód umiestnite do tlačítka, ktoré zobrazí rozhodovacie okno s dvomi možnosťami:
/1/ Ak zvolíte Yes, menu príkaz File-Export je dostupný (enabled)
/2/ Ak zvolíte No, menu príkaz File-Export je nedostupný (disabled)

Teraz je už úplne jednoduché zneprístupniť v konkrétnej aplikácii menu File-Export. Ale pozor! Ide iba o zneprístupnenie menu príkazu, nie funkcie ako takej....

Const MF_BYPOSITION = &H00000400
Const MF_ENABLED = &H00000000
Const MF_GRAYED = &H00000001
Const MF_DISABLED = &H00000002
Declare Function WIN32_GetActiveWindow Lib {user32} Alias {GetActiveWindow} ( ) As Long
Declare Function WIN32_GetMenu Lib {user32} Alias {GetMenu} ( Byval hWnd As Long ) As Long
Declare Function WIN32_GetSubMenu Lib {user32} Alias {GetSubMenu} ( Byval hMenu As Long , Byval nPos As Long ) As Long
Declare Function WIN32_GetMenuString Lib {user32} Alias {GetMenuStringA} ( Byval hMenu As Long , Byval wIDItem As Long , Byval lpString As String , Byval nMaxCount As Long , Byval wFlag As Long ) As Long

Declare Function WIN32_ModifyMenu Lib {user32} Alias {ModifyMenuA} ( Byval hMenu As Long , Byval nPosition As Long , Byval wFlags As Long , Byval wIDNewItem As Long , Byval lpString As Any ) As Long


Function ShowHide ( Byval intFlag As Integer ) As Integer

Dim hWnd As Long
Dim hMenu As Long
Dim hSubMenuFile As Long
Dim strBuffer As String * 255
Dim strMenuItem As String
Dim lngAPIReturnValue As Long
Dim intPrintMenuItemPos As Integer

'Pozícia pre EXPORT menu príkaz
intPrintMenuItemPos = 11
hWnd = WIN32_GetActiveWindow ( ) ' Chytíť okno
hMenu = WIN32_GetMenu ( hWnd ) 'Chytiť menu
hSubMenuFile = WIN32_GetSubMenu ( hMenu , 0 ) ' Chytiť "File" - podmenu
strBuffer = Space ( Len ( strBuffer ) )

lngAPIReturnValue = WIN32_GetMenuString ( hSubMenuFile , intPrintMenuItemPos , strBuffer , Len ( strBuffer ) , MF_BYPOSITION )
If lngAPIReturnValue > 0 Then
strMenuItem = Left$ ( strBuffer , lngAPIReturnValue )
If intFlag = True Then
fnShowPrintMenuItem = WIN32_ModifyMenu ( hSubMenuFile , intPrintMenuItemPos , MF_BYPOSITION Or MF_ENABLED , 0 , strMenuItem )
Else
fnShowPrintMenuItem = WIN32_ModifyMenu ( hSubMenuFile , intPrintMenuItemPos , MF_BYPOSITION Or MF_GRAYED , 0 , strMenuItem )
End If
End If

End Function


Sub Click(Source As Button)
If Messagebox ( {Zapni Export (tlačítko Yes) alebo Vypni Export (tlačítko No)} , 36 , {Otázka} ) = 6 Then
Call ShowHide ( True )
Else
Call ShowHide ( False )
End If
End Sub


Autor: Miroslav Uhlár
Datum: 30.11.2002


Sdílet článek Seznam komentářů
 
Od
Téma
 Datum
Mira
Vyborne
11.12.2015 15:38
Miro (eD)
Doplnenie: Od R9 pribudla aj systemova volba na zabranenie exportu z pohladu....
02.10.2017 08:48