Процедура SetEnableCommand |
Процедура разрешает или запрещает команду.
procedure SetEnableCommand (aCommand : word;
bEnable : boolean );
aCommand : word - имя команды.
bEnable : boolean - разрешить команду (true) или запретить (false).
Метод SetEnableCommand доступен в Атлантис 5.1 и выше.
#commands start at 7700 // константы const scTest = 7500; CountCmd = 7; cmMyIfc = 3123; cmMyDialog = 3124; cmMyMenu = 3130; cmValue1 = 3126; cmValue2 = 3127; cmValue3 = 3128; cmMyTest = 3129; end; // строка статуса commandExampleStLine statusLine { (scTest..scTest) { '~F2~ Интерфейс', cmMyIfc , kbF2; '~F3~ cmDialog', cmMyDialog , kbF3; '~F5~ cmValue1', cmValue1 , kbF5; '~F6~ cmValue2', cmValue2 , kbF6; '~F7~ cmValue3', cmValue3 , kbF7; '~F8~ Разрешить/Запретить 1,2,3', cmMyTest , kbF8; '~F9~ Лок. меню', cmMyMenu , kbF9; } } // Основной интерфейс interface commandExample 'Пример управления командами' (,,scTest); show at (5,5,45,16); var allCommands : array[0..6] of word; commands : array[1..2] of word; #if #__TOOLVERSION__ < 5001.00 procedure SetEnableCommand (aCommand : word; bEnable : boolean); { if bEnable EnableCommand (aCommand) else DisableCommand (aCommand); } #end // получить маску команд по их состоянию function GetCommandMask : longInt; var res, i : longInt; { res := 0; for (i := 0; i < countCmd; i := i + 1) if CommandEnabled(allCommands[i]) res := res or (1 shl i); GetCommandMask := res; } // установить состояние команд по маске procedure SetCommandMask ( aMask : longInt ); var i : longInt; { for (i := 0; i < countCmd; i := i + 1) SetEnableCommand (allCommands[i], (aMask and (1 shl i)) <> 0); } create view; screen scrEmpty; noTableNavigation; buttons cmMyIfc ; cmMyDialog ; cmValue1 ; cmValue2 ; cmValue3 ; cmMyTest ; cmMyMenu ; fields GetCommandMask : noProtect; << Загрузите StatusLine "CommandExampleStLine" `&Команды` [.] cmMyIfc `<. Интерфейс .> [.] cmMyDialog `<. cmMyDialog.> [.] cmValue1 `<. cmValue1 .> [.] cmValue2 `<. cmValue2 .> [.] cmValue3 `<. cmValue3 .> [.] cmMyTest `<. cmMyTest .> [.] cmMyMenu `<. cmMyMenu .> ` ` >> end; handleEvent cmInit : { DisableCommand(cmValue1); commands[1] := cmValue2; commands[2] := cmValue3; allCommands[0] := cmMyIfc ; allCommands[1] := cmMyDialog ; allCommands[2] := cmValue1 ; allCommands[3] := cmValue2 ; allCommands[4] := cmValue3 ; allCommands[5] := cmMyTest ; allCommands[6] := cmMyMenu ; DisableCommands(commands); } cmMyIfc : RunInterface(commandExampleInh); cmMyDialog : Message ('Команда cmDialog'); cmMyMenu : { DisableCommand(cmSaveDataBase); RunMenu('vspom'); } cmMyTest : { if CommandEnabled(cmValue1) { DisableCommand(cmValue1); DisableCommands(commands); } else { EnableCommand(cmValue1); EnableCommands(commands); } RereadRecord (tnNoTable); } cmCheckField : PackFields; cmExprFieldChanged : SetCommandMask (LongInt (exprFieldValue)); end; end. interface commandExampleInh 'Интерфейс, наследующий множество команд' (,,scTest) inheritCommands; show at (10,10,55,12); create view; screen scrEmpty; noTableNavigation; << >> end; end.
EnableCommand, EnableCommands, DisableCommand, DisableCommands, CommandEnabled.