PDA

View Full Version : main menu



66masi
شنبه 15 خرداد 1389, 12:31 عصر
با سلام
من يه سوال درباره main menu دارم و اونم اينه كه چطور ميشه در main menu زير منو ها را فعال و غير فعال كرد البته نه بصورت دستي بلكه به صورت يه آرايه و با استفاده از شرطي كه شرط آن اين باشه كه اگر كسي كه وارد اين صفحه ميشود پسوردش مثلا يه عدد مشخصي بود يه سري از زير منو ها برايش فعال و بقيه غير فعال باشد.
با تشكر

Felony
شنبه 15 خرداد 1389, 12:53 عصر
فرض کنید منویی با ساختار زیر دارید :

'Test'
-- 'Sample'
-- 'Sample1'
-- 'Sample2'
-- 'Sample3'

برای غیر فعال کردن Sub Item ی که نامش Sample2 هست به صورت زیر عمل میکنیم :
MainMenu1.Items.Find('Test').Find('Sample').Find(' Sample2').Enabled:= False;
به همین ترتیب ( متد Find ) میتونید زیر منوی مورد نیازتون رو پیدا کنید و عملیات مورد نظرتون رو انجام بدید .

حسین شهریاری
شنبه 15 خرداد 1389, 13:47 عصر
هر Item از MainMenu یه نام منحصر به فرد داره که شما میتونی در حالت کدنویسی به هر کدوم دسترسی داشته باشین.نام گذاری اونا توسط دلفی بدین شکل هست که اگه کپشن شما لاتین باشه با افزودن یک عنصر مثل عدد یک اونا یکتا میکنه ولی اگه کپشن فارسی باشه از N1 تا Ni اونا را نامگذاری میکنه.
پس برای کاری که شما میخاین بکنین کافی است ابتدا تمام ایتم های منو را غیر فعال کنید و پس از چک کردن صحت اون چیزی که مد نظر تون هست اون ایتم ها را فعال کنید.

مثال:

if CONDITION then
begin
N1.enabled:=true;
N2.enabled:=true;
N10.enabled:=true;
end;

منظور از CONDITION همان برسی شرط شما هست.

موفق باشید

SAASTN
یک شنبه 16 خرداد 1389, 23:24 عصر
اگه منظورتون ایجاد یه جور محدودیت برای صطوح مختلف دسترسیه یه راه ساده استفاده از مشخصه Tag هست. مثلا اگه سه سطح دسترسی تعریف کرده باشیم tag های منوها رو با مقادیر 1 تا 3 ست می کنیم، بعد از گرفتن user/pass کدی برای ست کردن Enabled ها کدی شبیه به این می نویسیم: for i := 0 to Self.ComponentCount - 1 do
if Self.Components[I] is TMenuItem then
TMenuItem(Self.Components[I]).Enabled := Self.Components[I].Tag <= UserLevel;


که توی اون UserLevel سطح دسترسی کاربره که با توجه به user/passش و گروه کاربریش به یه مقداری بین 1 تا 3 ست شده.