Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.21;
Скачать: CL | DM;

Вниз

Меня этот Popup Добьет   Найти похожие ветки 

 
AndrewVolkov ©   (2003-07-07 21:17) [0]

Только разберешься с одним, возникает трабла с другим.


pmItemList := TMenuItem.Create(Self);
pmItemList.Caption :=sCaption;
pmItemList.Checked:=True;
PMPeople.Items.Add(pmItemList);
i:=pmPeople.Items.IndexOf(pmItemList);

pmItemList:=TMenuItem.Create(Self);
pmItemList.Caption:="Select";
pmItemList.OnClick:=aChoiceExecute;
pmPeople.Items[i].Add(pmItemList);
pmItemList:=TMenuItem.Create(Self);
pmItemList.Caption:="Unselect";
pmPeople.Items[i].Add(pmItemList);


procedure TfmMain.aChoiceExecute(Sender: TObject);
Var i:integer;
begin
if pmPeople.Items[(Sender as TMenuItem).MenuIndex].Caption="Select" then begin

end;
end;


Трабла в том, что (Sender as TMenuItem).MenuIndex для всех SubMenu=0, даже если я pmItemList.menuIndex:=10 к примеру он все равно будет 0. Можно ли как-нибудь в Sender узнать MenuIndex???


 
Spawn ©   (2003-07-07 21:40) [1]

Я вот так проверил индексы итемов:

procedure TForm1.dfhdfh1Click(Sender: TObject);
begin
if (Sender as TMenuItem).Count=0 then
ShowMessage(IntToStr((Sender as TMenuItem).MenuIndex));
end;


И все они были нормальными. Как и у простых итемов, так и у Субитемов. Кстати ты уверен, что текст в итеме равен "Select"? Если ты не отключил одно свойство(не помню какое), то менюха автоматически генерит хоткей и изменяет капшены(только этого не видно при редактировании компонента)


 
AndrewVolkov ©   (2003-07-07 21:43) [2]

Не знал про хоткей, написал процедуру, которая мочила эти добавления. Так что Селект - действительно - селект.


 
Spawn ©   (2003-07-07 21:43) [3]

Во посмотрел. Свойство AutoHotKeys попробуй поставить в maManual. Я попробовал создать такой Caption у меня и AutoHotKeys поменяла его на &Select ))))


 
AndrewVolkov ©   (2003-07-07 21:45) [4]

Проверил твой код - показывает 0 и все тут


 
AndrewVolkov ©   (2003-07-07 21:49) [5]

Даже если они не в рантайме созданы - у них 0 MenuIndex


 
Spawn ©   (2003-07-07 21:52) [6]

Если у тебя первый субитем, то и должен 0 показываться))
Зачем так мучаться пиши вот так:

if (Sender as TMenuItem).Caption="Select" then



Только не забудб поставить AutoHotKeys в maManual


 
AndrewVolkov ©   (2003-07-07 21:55) [7]

Трабла в том, что у меня может быть больше одного Селекта.
Да блин,
Если у тебя первый субитем, то и должен 0 показываться))
а как я их тогда различать могу? у меня ж тогда куча 0 будет ???

Я могу как-то узнать индексы их родителей?


 
Spawn ©   (2003-07-07 21:57) [8]

Sender as TMenuItem).Parent.MenuIndex Но эти индексы для каждого подменю будут идти с 0


 
Spawn ©   (2003-07-07 21:59) [9]

Ты можешь хранить какое-либо уникальное значение в свойтсе Tag MenuItem-а. И при клике на итем сверяться с ним.


 
AndrewVolkov ©   (2003-07-07 22:01) [10]

Спасибо :)))
Еще немного и я их добью.
А я их точно добью, гадов.


 
AndrewVolkov ©   (2003-07-07 22:03) [11]

С тагами, помойму не очень удобно для меня будет. Потому что значения генеряться по правилу и мне легче привязаться используя МенюИндексы - теперь то я знаю как их получить.



Страницы: 1 вся ветка

Текущий архив: 2003.07.21;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.013 c
7-68090
OpoloXAI
2003-05-12 17:49
2003.07.21
Как переключить ракладку клавиатуры на Украинский язык?


1-67890
mao
2003-07-08 08:58
2003.07.21
Юникод


14-67984
VDen
2003-07-03 17:44
2003.07.21
Выполнить код из ресурса


1-67788
bobr12
2003-07-09 11:57
2003.07.21
Обработка нажатия правой кнопкой мыши на визуальный компонент


7-68088
Deep
2003-04-19 05:02
2003.07.21
Проблема поиска файлов из сервиса