|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
какой пункт TMainMenu выбран???
Есть компонент TMainMenu в котором меню реализованы сразу. а субменю заполняются динамически при запуске программы. Caption для них берутся из ini-файла. Эта часть вопросов не вызывает. Также естественно нормально можно привязать событие OnClick к готовым меню, но как обрабатывать это OnKlick на динамически созданых субменю, как узнать какой пункт субменю был выбран???
Код:
procedure TForm1.FormCreate(Sender: TObject); var MenuItem :TMenuItem; ParentItem :TMenuItem; Di : integer; begin sPath := 'c:\temp\test\info.ini'; //файл с настройками IniFile := TIniFile.Create(sPath); // в фале info.ini в секции "Values" данные о количестве элементов Di:=IniFile.ReadInteger('Values','marka',0); for i:=1 to Di do begin MenuItem :=TMenuItem.Create(ParentItem); mmMarka.Add(MenuItem); MenuItem.Caption :=IniFile.ReadString('marka',IntToStr(i),''); end; IniFile.Free; end; |
#2
|
|||
|
|||
Через свойство Tag. при создании устанавливаешь туда уникальные номера и в обработчике проверяешь:
Код:
procedure MenuItemClick(Sender : TObject); var ATag : Integer; begin If Sender Is TMenuItem Then Begin ATag := (Sender As TMenuItem).Tag; Case ATag Of 1 : DoMenuItem1; // Здесь вызов твоего кода 2 : DoMenuItem2; // Здесь вызов твоего кода 3 : DoMenuItem3; // Здесь вызов твоего кода Else ShowMessage('Нераспознаное меню!'); End; end; |
#3
|
|||
|
|||
спасибо за быстрый ответ... Буду пробовать.
|
#4
|
|||
|
|||
все работает... Только проверяю не по Tag а по Caption или по Name...
|