Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.07.21;
Скачать: [xml.tar.bz2];

Вниз

опять PopupMenu   Найти похожие ветки 

 
AndrewVolkov   (2003-07-07 16:21) [0]

Опять ступор.

pmItemList := TMenuItem.Create(Self);
pmItemList.Name:="pmChoice";
pmItemList.Caption := fmList.dbGrid.Columns[fmList.dbGrid.SelectedIndex].Title.Caption+ " "+fmList.dbGrid.SelectedField.Text;
pmItemList.Checked:=True;
pmItemList.OnClick:=aChoiceExecute;
PMPeople.Items.Add(pmItemList);


procedure TfmMain.aChoiceExecute(Sender: TObject);
begin
case pmPeople.Items[???].Checked of




end;

end;


Как узнать Индекс нажатого итема. Я его в рантайме создаю - он может быть любым.
Плиз...хелп ми..


 
Poirot   (2003-07-07 16:24) [1]

А ты по имени его смотри, а лучше Tag используй!


 
AndrewVolkov   (2003-07-07 16:27) [2]

А вот как его по имени то найти??


 
Smashich   (2003-07-07 16:28) [3]

AndrewVolkov © (07.07.03 16:27)
перебирая Iтемы


 
Smashich   (2003-07-07 16:29) [4]

а Sender можно тебе использовать?


 
NickBat   (2003-07-07 16:29) [5]

(Sender as TMenuItem).MenuIndex


 
Poirot   (2003-07-07 16:31) [6]

pmItemList.Name:="pmChoice";
Это имя - типа значит перебором..
А на вашем месте я бы всётаки таг юзал и при клике проверял этот номер... Конечно это зависит от задачи!!!
Хотя по имени помоему еть какойто метод, или кто-то функцию делал - но это сложнее и долше!!! Сделайте чучше через таг...
Да кстати - имя должно быть универсальным!

> TfmMain.aChoiceExecute(Sender: TObject);

(Sender as TMenuItem).tag!!!
.name


 
Семен Сорокин   (2003-07-07 16:31) [7]

NickBat © (07.07.03 16:29)
Sender - TAction


 
Семен Сорокин   (2003-07-07 16:33) [8]

Если у для каждого Item"а - свой Action, то можно приравнять их по Tag"ам - иначе - хранить в какой-то таблице совместимости(массиве, структуре)


 
Digitman   (2003-07-07 16:34) [9]

ты себе усложнил задачу.

достаточно было после создания объекта pmItemList присвоить
pmItemList.Action := aChoice;

значения св-в объекта aChoice (в т.ч. - Checked) автоматически станут значениями одноименных св-в объекта pmItemList, а событию pmItemList.OnClick() будет автоматически назначен обработчик aChoice.OnExecute()

в обработчике же

procedure TfmMain.aChoiceExecute(Sender: TObject);
begin

if TBasicAction(Sender).Checked then
...

end;


 
NickBat   (2003-07-07 16:34) [10]

> Семен Сорокин © (07.07.03 16:31)
Не понял. :))


 
Семен Сорокин   (2003-07-07 16:38) [11]

NickBat © (07.07.03 16:34)
в качестве Sender"а выступает TBasicAction (см. Digitman © (07.07.03 16:34))


 
NickBat   (2003-07-07 16:42) [12]

Не знаю, не знаю. Вопрос был:

Как узнать Индекс нажатого итема. Я его в рантайме создаю - он может быть любым.

По моему мой ответ рабочий.


 
Digitman   (2003-07-07 16:49) [13]


> NickBat


Если у эл-та меню (неважно когда созданного - в ран-тайм или дизайн-тайм) не назначено св-во Action, то твой ответ - рабочий. В противном случае - нет : источником события будет TBasicAction.


 
AndrewVolkov   (2003-07-07 17:03) [14]

Спасибо всем огроменное

(Sender as TMenuItem).MenuIndex

в принципе я думаю мне этого решения хватает


 
NickBat   (2003-07-07 17:50) [15]

> Digitman © (07.07.03 16:49)
По-моему у вопрошающего не было Action.



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

Форум: "Основная";
Текущий архив: 2003.07.21;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.315 c
1-67910
VVV
2003-07-08 15:42
2003.07.21
(D6) Ошибка компиляции


1-67844
Man
2003-07-07 18:51
2003.07.21
использование форм-шаблонов


11-67747
SPeller
2002-11-17 13:36
2003.07.21
DesignTime отрисовка


14-67976
Феликс
2003-07-06 16:17
2003.07.21
Опять пугают


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





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский