Форум: "Основная";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];
ВнизВключение/отключение компонента Найти похожие ветки
← →
neat (2005-12-14 11:44) [0]Здравствуйте Все!
Есть меню в программе. Требуется отключать/включать некоторые пункты в зависимости от прав пользователя. Хотел это сделать по циклу перебирая компоненты, но в этом случае свойство Enable отсутсвует :
var s : set of 1..25;
i : integer;
begin
s := [6,7,8,9,10,12,15,16,17,19,20,21];
for i := 0 to MenuKPP2.ComponentCount - 1 do
if Menu.Components[i].Tag in s then
Menu.Components[i]. ???
Как быть?
← →
Игорь Шевченко © (2005-12-14 11:48) [1]TAction.OnUpdate
← →
Сайбель Алексей © (2005-12-14 12:50) [2]
> Menu.Components[i]. ???
TMenuItem(Menu.Components[i]).Enabled:=false;
← →
Сайбель Алексей © (2005-12-14 13:02) [3]Да кстати, ваш код не правильный:
var s : set of 1..25;
i : integer;
begin
s := [6,7,8,9,10,12,15,16,17,19,20,21];
for i := 0 to ComponentCount - 1 do
if Components[i] is TMenuItem then
if TMenuItem(Components[i]).Tag in s then
TMenuItem(Components[i]).Enabled:=false;
А MenuKPP2.ComponentCount возвращает 1.
← →
evvcom © (2005-12-14 13:13) [4]
> if Components[i] is TMenuItem then
> if TMenuItem(Components[i]).Tag in s then
тоже можно короче:if (Components[i] is TMenuItem) and (TMenuItem(Components[i]).Tag in s) then
← →
evvcom © (2005-12-14 13:16) [5]
> тоже можно короче
Я имел ввиду, чтобы избежать многоэтажность if там, где ее можно избежать. Но удобнее все же [1], потому я и не стал писать подобное [2] и [3].
← →
Сайбель Алексей © (2005-12-14 18:39) [6]somebody киньте из хеплы/или свой пример использования OnUpdate. У меня у меня вместо гиперссылок на примеры:
Delphi example!ALink(taction_onupdate_example_d,1,,main) C++ example!ALink(_Example_C,1,,Example)
Заранее благодарю.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.035 c