|
|
|
Двойной запуск формы
|
|||
|---|---|---|---|
|
#18+
Коллеги, есть вопрос, запутался немного. Есть форма FormA с cxgrid, унаследована от FormB, далее при нажатии на грид по двойному щелчку открывается почему-то две формы на редактирование, сначала одна, потом ок нажимаешь и вторая. Хочу разобраться почему. В FormA по щелчку грида формы определено: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. В FormB также определена базовая функция по двойному щелчку Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2020, 10:03 |
|
||
|
Двойной запуск формы
|
|||
|---|---|---|---|
|
#18+
Код: pascal 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2020, 10:10 |
|
||
|
Двойной запуск формы
|
|||
|---|---|---|---|
|
#18+
Есть ли предположения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2020, 10:10 |
|
||
|
Двойной запуск формы
|
|||
|---|---|---|---|
|
#18+
wsnet Хочу разобраться почему. Очевидно, потому что сами создаёте в наследнике экземпляр родителя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2020, 10:14 |
|
||
|
Двойной запуск формы
|
|||
|---|---|---|---|
|
#18+
goldmi45, да, спасибо, это очевидно, но как подправить, неужели virtual объявить в наследнике ? Код: sql 1. 2. Верно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2020, 10:17 |
|
||
|
Двойной запуск формы
|
|||
|---|---|---|---|
|
#18+
Точнее в предке? Код: pascal 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2020, 10:18 |
|
||
|
Двойной запуск формы
|
|||
|---|---|---|---|
|
#18+
wsnet, Есть фолшебные кнопки F5, F7, F8 и F9 - можно пройтись по шагам с открытия первой формы и посмотреть где открывается вторая. Или расставить точки остановка в местах где есть всякие ShowModal() и посмотреть на call stack. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2020, 10:23 |
|
||
|
Двойной запуск формы
|
|||
|---|---|---|---|
|
#18+
alekcvp, а без этого не очевидно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2020, 10:29 |
|
||
|
Двойной запуск формы
|
|||
|---|---|---|---|
|
#18+
wsnet alekcvp, а без этого не очевидно? Если вам очевидно, то зачем тогда эта тема?.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2020, 11:38 |
|
||
|
Двойной запуск формы
|
|||
|---|---|---|---|
|
#18+
alekcvp, не очевидно, а дебагер не помогает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2020, 11:44 |
|
||
|
Двойной запуск формы
|
|||
|---|---|---|---|
|
#18+
wsnet alekcvp, не очевидно, а дебагер не помогает Стек вызовов не показывает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2020, 11:45 |
|
||
|
Двойной запуск формы
|
|||
|---|---|---|---|
|
#18+
wsnet goldmi45, да, спасибо, это очевидно, но как подправить, неужели virtual объявить в наследнике ? Код: sql 1. 2. Верно? Мне совершенно не понятно, зачем создавать экземпляр предка в наследнике. Скорее всего, вам стоит подтянуть знания по ООП, в частности что такое наследование и полиморфизм. virtual предполагает возможность, что метод будет переопределён в наследнике. У вас такого нет, поэтому совершенно не понятно, что вы хотите добиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2020, 11:52 |
|
||
|
Двойной запуск формы
|
|||
|---|---|---|---|
|
#18+
goldmi45, перепутал я, смутив Вас, нет там не в экземпляре предка создается, дважды создается форма TFormNew. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2020, 12:18 |
|
||
|
Двойной запуск формы
|
|||
|---|---|---|---|
|
#18+
Писал по памяти, коллеги извините, помогите понять причину все же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2020, 12:19 |
|
||
|
Двойной запуск формы
|
|||
|---|---|---|---|
|
#18+
wsnet, 1) у TFormB procedure EditRecord; Virtual; А у TFormA она override? 2) такой комментарий вводит в заблуждение: wsnet Код: pascal 1. 2. 3. 4. 3) Вы не привели код EditRecord для TFormB. Однако в TFormA написано inherited, что означает вызов EditRecord предка. Скорее всего, вам нужно просто убрать в EditRecord у TFormA inherited. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2020, 12:34 |
|
||
|
Двойной запуск формы
|
|||
|---|---|---|---|
|
#18+
goldmi45, 1. 1) у TFormB procedure EditRecord; Virtual; А у TFormA она override? У TFormB EditRecord Virtual так точно, а у TFormA она объявлена как override; 2) такой комментарий вводит в заблуждение: возможно, но автор не я был такового коммента 3) Вы не привели код EditRecord для TFormB. Однако в TFormA написано inherited, что означает вызов EditRecord предка. Там пусто, то есть написано: Код: pascal 1. 2. 3. 4. Как быть, не очень понимаю, все же почему вызов 2 раза формы происходит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2020, 12:44 |
|
||
|
Двойной запуск формы
|
|||
|---|---|---|---|
|
#18+
wsnet, есть очень простой способ: делаешь крошечное приложение, повторяющее "проблему", сжимаешь его севензипом и выкладываешь здесь. Без TcxGrid и проч. нестандартщины, конечно. И люди мгновенно загрузят и посмотрят, и поймут, что у тебя не так, и помогут тебе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2020, 13:02 |
|
||
|
Двойной запуск формы
|
|||
|---|---|---|---|
|
#18+
29.01.2020 13:02, ёёёёё пишет: > И люди мгновенно загрузят и посмотрят, Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2020, 13:06 |
|
||
|
Двойной запуск формы
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий 29.01.2020 13:02, ёёёёё пишет: > И люди мгновенно загрузят и посмотрят, Я - точно. Мне лишь бы не работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2020, 13:09 |
|
||
|
Двойной запуск формы
|
|||
|---|---|---|---|
|
#18+
goldmi45 wsnet, 1) у TFormB procedure EditRecord; Virtual; А у TFormA она override? 2) такой комментарий вводит в заблуждение: wsnet Код: pascal 1. 2. 3. 4. 3) Вы не привели код EditRecord для TFormB. Однако в TFormA написано inherited, что означает вызов EditRecord предка. Скорее всего, вам нужно просто убрать в EditRecord у TFormA inherited. Уберу, но ведь в EditRecord TformB просто пусто) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2020, 13:11 |
|
||
|
Двойной запуск формы
|
|||
|---|---|---|---|
|
#18+
wsnet Уберу, но ведь в EditRecord TformB просто пусто) тогда бряк на TFormA.grdDictonaryDBTableViewCellDblClick и F7, F7, F7. Смотреть, где TFormNew.Show... Или поискать таки по проекту где (и как) ещё TFormNew создаётся (или её наследники)... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2020, 14:18 |
|
||
|
Двойной запуск формы
|
|||
|---|---|---|---|
|
#18+
goldmi45 wsnet Уберу, но ведь в EditRecord TformB просто пусто) тогда бряк на TFormA.grdDictonaryDBTableViewCellDblClick и F7, F7, F7. Смотреть, где TFormNew.Show... Или поискать таки по проекту где (и как) ещё TFormNew создаётся (или её наследники)... goldmi45, а не может ли быть причиной, что в TFormB объявлен grdDictonaryDBTableViewCellDblClick без virtual? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2020, 15:11 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39919982&tid=2038655]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
150ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 481ms |

| 0 / 0 |
