PDA

View Full Version : درخواست کمک در خصوص منو



Mah6447
شنبه 06 مرداد 1386, 12:50 عصر
لطفا راهنمایی کنید
می خواهم یکی از آیتم های منو اصلی شامل محتویات پوشه ای خاص باشد

mzjahromi
شنبه 06 مرداد 1386, 12:56 عصر
منظورتون اینه که میخواید لیست فایلهای یک دایرکتوری رو درون SubMenu بیارید؟
اونوقت توی رویداد این SubMenu میخواهید چه اتفاقی بیافته؟
فقط فایلها یا دایرکتوریها هم؟
هدفتون از این کار چیه؟

hossein taghi zadeh
شنبه 06 مرداد 1386, 13:27 عصر
با سلام

یک شی از نوع TFileListBox با نام FileList و یک شی از نوع TMainMenu یا TPopupMenu با نام Language1 روی فرم قرار بده و از کدهای زیر در برنامه‌ات استفاده کن.



Procedure CreateLangMenu(Const Menu: TMenuItem; Const MenuClick: TNotifyEvent; Const Caption: ShortString);
Var
NewItem: TMenuItem;
Begin
NewItem := TMenuItem.Create(Menu);
NewItem.Caption := Caption;
NewItem.Name := 'Lang_' + IntToStr(Menu.Count);
NewItem.OnClick := MenuClick;
Menu.Add(NewItem);
End;

این ثوابت رو هم تعریف کن


Const
LangDir = 'MyDir\';
MTLExt = '*.lng';

این کد رو در OnCreate مربوط به فرم اصلیت بنویس

Var Index: Integer;
BasePath: String;
Begin
BasePath := ExtractFilePath(ParamStr(0));

If DirectoryExists(BasePath + LangDir) Then
Begin
FileList.Mask := MTLExt;
FileList.Directory := BasePath + LangDir;

For Index := 0 To FileList.Items.Count - 1 Do
CreateLangMenu(Language1, SelectLangClick, ChangeFileExt(FileList.Items[Index], ''));
End;
End;

و در نهایت این پروسیجر رو در قسمت Private فرم اصلیت معرفی کن، که وقتی روی منوی مربوطه کلیک کردی فراخوانی بشه


Procedure SelectLangClick(Sender: TObject);
Begin
If FileExists(BasePath + LangDir + (Sender As TMenuItem).Caption + '.lng') Then
Begin
Showmessage(BasePath + LangDir + (Sender As TMenuItem).Caption + '.lng');
End;
End;

Mah6447
شنبه 06 مرداد 1386, 13:34 عصر
در حقیقت می خواهم تمامی گزارشات برنامه که با استفاده از Report Builder و یا FastReport در داخل پوشه ای به نام Reports قرار گیرد و دسته بندی شود و در هنگام اجرای برنامه تمامی آنها
در یکی از آیتم های منوی اصلی که نام آن هم report هست نمایش داده شود.

Mah6447
پنج شنبه 11 مرداد 1386, 15:31 عصر
آقای hossein taghi zadeh تشکر ولی با کد ها نتوانستم مشکل را حل کنم اگر امکان دارد
یک مثال بیاورید .
پیشاپیش متشکرم

hossein taghi zadeh
پنج شنبه 11 مرداد 1386, 19:00 عصر
با سلام

مثال ضمیمه شده است.