|
Проблема с thisform.Release()
|
|||
---|---|---|---|
#18+
Привет! Столкнулся с такой непоняткой... - мелочь, но неприятно и уже замучало. Значит есть форма с гридом и на форме есть кнопка "Редактировать", клик() которой вызывает другую форму (Do Form edit). У обоих форм есть классовая кнопка "Выход", в клик() которой прописано thisform.Release(). Теперь, если на форме с гридом нажать кнопку "Редактировать", то по нажатию в форме-редакторе кнопки "Выход" - форма-редактор уничтожается. Все как положено. Но если в гриде нажать Ентер, то в его KeyPress срабатывает такой код (на nKeyCode = 13): Код: plaintext 1. 2. 3. 4. 5. 6. 7.
Такая же картина если на DblClick() грида прописать вызов KeyPress(13), т.е. когда физически сам Ентер не нажимается. Пробовал выносить m.loCtrl.Click() за тело цикла - не помогает. Пробовал перед этим добавлять NODEFAULT - не помогает. Интересно - если в KeyPress грида жестко прописать на nKeyCode = 13 Код: plaintext
В чем мб дело? вфп9 ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2010, 13:22 |
|
Проблема с thisform.Release()
|
|||
---|---|---|---|
#18+
не учел еще одного ньюанса - KeyPress грида на самом деле выглядит немного сложнее: Код: 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.
Код: 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. 34. 35.
Но все равно вопрос остается открытым и непонятно почему раньше не работало... ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2010, 13:33 |
|
Проблема с thisform.Release()
|
|||
---|---|---|---|
#18+
нет, таки проблема осталась! просто кнопку находило по ссылке через btnEdit1, когда закаментил этот блок case, то опять та же фуйня... Я просто не хочу привязываться к названию кнопки, оно мб и btnEdit1 и btnEdit2 и btnEdit и как угодно еще... и не выходит... ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2010, 13:37 |
|
Проблема с thisform.Release()
|
|||
---|---|---|---|
#18+
Проверь что есть: Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2010, 13:40 |
|
Проблема с thisform.Release()
|
|||
---|---|---|---|
#18+
так в том-то и дело, что проверяю. оно есть ссылка на необходимую кнопку, т.е. btnEdit1, я выводил messagebox(loCtrl.Name) - все честно. Ссылку на форму не создаю, запуск формы-редактора идет через DO FORM Edit в клике кнопки btnEdit1 ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2010, 13:50 |
|
Проблема с thisform.Release()
|
|||
---|---|---|---|
#18+
аааа, допёр, нету. ща добавлю ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2010, 13:51 |
|
Проблема с thisform.Release()
|
|||
---|---|---|---|
#18+
Спасибо! добавил - все порешилось! Только непонятно все равно, ведь на стадии цикла форма еще не вызвана, соотв. ссылка на нее в loCtrl не может существовать, тем более что форма не child формы с гридом, а принадлежит среде. Видимо в чем-то другом проблема с этой переменной. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2010, 13:55 |
|
Проблема с thisform.Release()
|
|||
---|---|---|---|
#18+
Проблема стандартная. Переменная по умолчанию создается как PRIVATE и доступна во всех внутри вызванных методах и процедурах. Где-то выше в коде, например в START.PRG - ты ее поюзал, а когда твой код отработал - ссылка осталась в той самой loCtrl и пока ты ее не обнулишь - форма не закрывается. Возьми за правило в начале Каждого метода/процедуры писать LOCAL ... все локальные переменные. Из-за этого много мистических вещей в коде бывает, а отловить такие косяки потом очень сложно. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2010, 14:06 |
|
Проблема с thisform.Release()
|
|||
---|---|---|---|
#18+
Самое интересное - я такое давно взял за правило. Давно уже, прямо перед написанием любого кода юзающего какие-либо переменные я первым делом стараюсь описать их сверху как локальные. А именно тут профтыкал. Видишь, даже loBtn - прописал, а за loCtlr как-то забыл почему-то! Вот так всегда В 99 случаях из 100, я это сделал, хотя и без этого там бы проблем бы не было и так, а именно в этом, 1 из 100 - забыл и тут же грабли! ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2010, 14:58 |
|
Проблема с thisform.Release()
|
|||
---|---|---|---|
#18+
CTAC-KOСамое интересное - я такое давно взял за правило. Давно уже, прямо перед написанием любого кода юзающего какие-либо переменные я первым делом стараюсь описать их сверху как локальные. А именно тут профтыкал. Видишь, даже loBtn - прописал, а за loCtlr как-то забыл почему-то! Вот так всегда В 99 случаях из 100, я это сделал, хотя и без этого там бы проблем бы не было и так, а именно в этом, 1 из 100 - забыл и тут же грабли! в фокспро руками локалят переменные неудачники. из дома вышлю приблуду. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2010, 15:38 |
|
Проблема с thisform.Release()
|
|||
---|---|---|---|
#18+
http://sql.ru/forum/actualfile.aspx?id=3159115 ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2010, 15:42 |
|
Проблема с thisform.Release()
|
|||
---|---|---|---|
#18+
1. прогнать код из приблуды 2. modi command c:\55555 3. в окошке пишем код Код: plaintext 1. 2.
4. скачем вверх 5. тупо пишем Locals и жмем энтир 6. вуаля Код: plaintext 1. 2. 3. 4. 5.
с Вас - пузырь ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2010, 15:46 |
|
Проблема с thisform.Release()
|
|||
---|---|---|---|
#18+
+ locals6 ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2010, 15:47 |
|
Проблема с thisform.Release()
|
|||
---|---|---|---|
#18+
и не пиши м дот - портит ауру. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2010, 15:49 |
|
Проблема с thisform.Release()
|
|||
---|---|---|---|
#18+
спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2010, 22:55 |
|
Проблема с thisform.Release()
|
|||
---|---|---|---|
#18+
а какой смысл в объявлении типа lcValue AS String, lnvalue AS Number я понимаю в таких типизированных языках как там делфи, си, ява. Если б фокс хотя бы соответствующую инициализацию проводил, типа для намберов - 0, для стрингов "", для объектов - нул, а то ему в принципе пох, все равно все инициализирует как .F. Смысл чисто визуальный для чела? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2010, 22:58 |
|
Проблема с thisform.Release()
|
|||
---|---|---|---|
#18+
CTAC-KOСмысл чисто визуальный для чела?Это для Intellisence. Особенно удобно для объектов. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2010, 09:47 |
|
|
start [/forum/topic.php?fid=41&fpage=92&tid=1585056]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
97ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 216ms |
0 / 0 |