|
|
|
OnClick у динамически созданного пункта MainMenu.
|
|||
|---|---|---|---|
|
#18+
Всем привет! Ранее я спрашивал как удалять динамически созданные пункты в MainMenu, это я сделал, спасибо добрым людям. Теперь у меня не получается сделать OnClick у каждого созданного пункта свой . Процедура дабавления: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2007, 11:05 |
|
||
|
OnClick у динамически созданного пункта MainMenu.
|
|||
|---|---|---|---|
|
#18+
y> Она работает, но какой бы пункт меню я не выбрал, выполняются одни и y> теже действия, а хотелось бы чтоб разные, пробовал условие сообразить, y> но чёт не получилось. Что можно придумать? Заранее благодарен! какое условие то надо? sender.name на пойдет? -- С уважением Кочмин Александр Firebird Foundation associate member #257 Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2007, 11:09 |
|
||
|
OnClick у динамически созданного пункта MainMenu.
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2007, 11:10 |
|
||
|
OnClick у динамически созданного пункта MainMenu.
|
|||
|---|---|---|---|
|
#18+
Условие самое обычное, если выбран пункт такой-то, то так-то и всё! сейчас вот так попробую: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2007, 11:42 |
|
||
|
OnClick у динамически созданного пункта MainMenu.
|
|||
|---|---|---|---|
|
#18+
Если действия однотипные, разумнее импользовать Tag, или присвоение имени итемам с последующим мх чтением в событии TComponent(Sender).Name --- aka VIR. No pity. No mercy. No remorse. No Regret ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2007, 12:28 |
|
||
|
OnClick у динамически созданного пункта MainMenu.
|
|||
|---|---|---|---|
|
#18+
Что-то никак не получается сделать этот OnClick. автор Infernal V. Raven Если действия однотипные, разумнее импользовать Tag, или присвоение имени итемам с последующим мх чтением в событии TComponent(Sender).Name Действия однотипные, моя прога запускается и в меню создаются пункты по такому принципу: while not DataModule8.Table1.Eof do begin Kniga:=DataModule8.Table1.fieldbyname('N_Knigi').AsInteger; Form2.addsubitem('Книга №'+ inttostr(Kniga), Kniga); DataModule8.Table1.Next; end; т.е. из БД читается запись, создаётся пункт меню с именем ‘Книга №’+номер из БД. А OnClick, у каждого пункта, нужен чтоб открыть в БД запись с этим номером. Например: меню с Caption Книга №1, должна открыть в БД запись N_Knigi=1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2007, 13:12 |
|
||
|
OnClick у динамически созданного пункта MainMenu.
|
|||
|---|---|---|---|
|
#18+
Пиши в TMenuItem.Tag номер книги, а в едином обработчике OnClick считывай Tag кликнутого пункта меню. Для этого нужно все-таки понять суть и назначение Sender'а в обработчиках событий: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2007, 13:57 |
|
||
|
OnClick у динамически созданного пункта MainMenu.
|
|||
|---|---|---|---|
|
#18+
A.K.Пиши в TMenuItem.Tag номер книги, а в едином обработчике OnClick считывай Tag кликнутого пункта меню. Для этого нужно все-таки понять суть и назначение Sender'а в обработчиках событий: Код: plaintext 1. ОК, спасибо за совет! Буду разбираться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2007, 15:47 |
|
||
|
OnClick у динамически созданного пункта MainMenu.
|
|||
|---|---|---|---|
|
#18+
Спасибо!! Fedor_71 Чего только не придумают с этим Sender и Self весь день голову ломал, как выловить имя нажатой кнопки в MDI приложении. Label1.Caption := (Sender as TMenuItem).Name; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2007, 15:47 |
|
||
|
OnClick у динамически созданного пункта MainMenu.
|
|||
|---|---|---|---|
|
#18+
Fedor_71Спасибо!! Fedor_71 Чего только не придумают с этим Sender и Self весь день голову ломал, как выловить имя нажатой кнопки в MDI приложении. Label1.Caption := (Sender as TMenuItem).Name; Был какой-то нюанс с этими меню. Я сейчас не вспомню точно, но как-то нарвался, что в качестве Sender приходил TAction. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2007, 16:10 |
|
||
|
OnClick у динамически созданного пункта MainMenu.
|
|||
|---|---|---|---|
|
#18+
Всем, добрый день! сталкнулась с такой же проблемой... не могу присвоить OnClick у каждого созданного пункта свой. у меня проблема в том что надо читать имя процедури из ини файла: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. в файле main.ini: [Menu1] Item0=N1;Название Item1=N2;Сумма [Menu2] Item0=N3;ФИО Item1=N4;Адрес пожалуйста, очень надо!!помогите разобраться!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2009, 17:55 |
|
||
|
OnClick у динамически созданного пункта MainMenu.
|
|||
|---|---|---|---|
|
#18+
konffetkA, Вот это? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2009, 21:21 |
|
||
|
OnClick у динамически созданного пункта MainMenu.
|
|||
|---|---|---|---|
|
#18+
2 konffetkA Предлагаю создать таблицу записнй из 2 полей вида: имя процедуры, ссылка на процедуру При присваивании искать ссылку в этой таблице. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2009, 08:32 |
|
||
|
OnClick у динамически созданного пункта MainMenu.
|
|||
|---|---|---|---|
|
#18+
GatorkonffetkA, Вот это? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. так я пробывала...но в MyClick тоже надо указать что за имя процедуры ведь для каждого пункта в меню действия абсолютно разные.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2009, 09:55 |
|
||
|
OnClick у динамически созданного пункта MainMenu.
|
|||
|---|---|---|---|
|
#18+
Green2 2 konffetkA Предлагаю создать таблицу записнй из 2 полей вида: имя процедуры, ссылка на процедуру т.е. просто создать табл. stringGrid куда это и указывать? а это: Green2 При присваивании искать ссылку в этой таблице. как правильно организовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2009, 10:00 |
|
||
|
OnClick у динамически созданного пункта MainMenu.
|
|||
|---|---|---|---|
|
#18+
а можно как то определить, когда я вытаскиваю из ини-файла название процедуры,чтоб процедура опредилялась как процедура, а не как просто вытащенная строка из файла??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2009, 11:08 |
|
||
|
OnClick у динамически созданного пункта MainMenu.
|
|||
|---|---|---|---|
|
#18+
konffetkAа можно как то определить, когда я вытаскиваю из ини-файла название процедуры,чтоб процедура опредилялась как процедура, а не как просто вытащенная строка из файла??? Можно. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2009, 11:57 |
|
||
|
OnClick у динамически созданного пункта MainMenu.
|
|||
|---|---|---|---|
|
#18+
riliokonffetkAа можно как то определить, когда я вытаскиваю из ини-файла название процедуры,чтоб процедура опредилялась как процедура, а не как просто вытащенная строка из файла??? Можно. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. ооооооооо то что НАДО!!!!!!! спасибо огромное!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2009, 12:27 |
|
||
|
OnClick у динамически созданного пункта MainMenu.
|
|||
|---|---|---|---|
|
#18+
автор M.Data:=Pointer(Self); M.Code:=Self.MethodAddress('Dummy'); Proc := TProc(M); Proc; Истинная жесть. Не надо так делать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2009, 12:30 |
|
||
|
OnClick у динамически созданного пункта MainMenu.
|
|||
|---|---|---|---|
|
#18+
Michael Longneckавтор M.Data:=Pointer(Self); M.Code:=Self.MethodAddress('Dummy'); Proc := TProc(M); Proc; Истинная жесть. Не надо так делать. почему? оно так работает единственное что у меня все клики сразу вылазят а не только для выбранного пункта меню...: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2009, 13:18 |
|
||
|
OnClick у динамически созданного пункта MainMenu.
|
|||
|---|---|---|---|
|
#18+
EgaFedor_71Спасибо!! Fedor_71 Чего только не придумают с этим Sender и Self весь день голову ломал, как выловить имя нажатой кнопки в MDI приложении. Label1.Caption := (Sender as TMenuItem).Name; Был какой-то нюанс с этими меню. Я сейчас не вспомню точно, но как-то нарвался, что в качестве Sender приходил TAction. Возможно по клику на меню висел ActionList, который и вызывал Action.Execute? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2009, 13:21 |
|
||
|
OnClick у динамически созданного пункта MainMenu.
|
|||
|---|---|---|---|
|
#18+
тут опять проблемка возникла.. у меня TMenuItem(Sender).Name (имя пункта меню) теряется при переходе на процедуру. а в некоторых процедурах нужно как раз это имя.почему оно теряется? и как можно исправить? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2009, 14:10 |
|
||
|
OnClick у динамически созданного пункта MainMenu.
|
|||
|---|---|---|---|
|
#18+
Вам надо объявить TProc как Код: plaintext 1. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2009, 14:21 |
|
||
|
OnClick у динамически созданного пункта MainMenu.
|
|||
|---|---|---|---|
|
#18+
rilioВам надо объявить TProc как Код: plaintext 1. Код: plaintext точно! получилось!! СПАСИБО!!!!!!!!!!! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2009, 14:27 |
|
||
|
OnClick у динамически созданного пункта MainMenu.
|
|||
|---|---|---|---|
|
#18+
При создании динамического события для TMenuItem, чтобы узнать номер выбранного динамического пункта, надо обратиться к его полю MenuIndex. Пример для OnClick динамического элемента: procedure TForm1.OnClickPunktMenu(Sender: TObject); Var punkt:TMenuItem; begin punkt:=(Sender as TMenuItem); x:=punkt.MenuIndex; ... end; x - это выбранный пункт меню, его порядковый номер, независимо от поля Tag. Дальше обрабатываете полученное значение как вам надо по типу "если х=..., то выполнить то-то и то-то". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2018, 22:57 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=35875287&tid=2040693]: |
0ms |
get settings: |
10ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
176ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
76ms |
get tp. blocked users: |
1ms |
| others: | 246ms |
| total: | 551ms |

| 0 / 0 |
