Форум: "Основная";
Текущий архив: 2003.07.21;
Скачать: [xml.tar.bz2];
ВнизМеня этот 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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.009 c