|
Ну помогите, блин, отловить событие OnShutDown, пожалуйста
|
|||
---|---|---|---|
#18+
Проблема достала. В проекте нужно дописать массу кода на завершение работы программы, но вся проблема в том, что не получается найти это самое место для кода на событие OnShutdown. Все из-за того, что когда проект создавался, то по неопытности его создали при помощи визарда. К данному моменту уже многое написано и не хотелось бы перетаскивать все на новую базу(голый проект), так как многое было привязано к созданному визардом. Помогите отыскать это проклятое место для обработки OnShutDown. При нажатии на кнопку с крестиком в правом верхнем углу экрана выскакивает сообщение типа "Are you realy want to quit?". Начал искать эту строку и нашел только в директории, где лежит Фокспро. Решил дописать свой код прямо туда. Пробую компилировать проект - фокс говорит, что этот файл не является объектным. Посоветуйте, что делать. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2003, 17:22 |
|
Ну помогите, блин, отловить событие OnShutDown, пожалуйста
|
|||
---|---|---|---|
#18+
На ON SHUTDOWN DO <name proc>. Вам нужно искать процедуру с таким именем. Она может бить в библиотеке (команда SET PROCEDURE TO <name file>) или в отдельном prg(fxp) файле. Привожу пример: Начало програмы: Код: plaintext
В этой же проге в конце: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2003, 17:55 |
|
Ну помогите, блин, отловить событие OnShutDown, пожалуйста
|
|||
---|---|---|---|
#18+
Можеш посмотреть http://nsvisual.com/ph/read.php3?f=5&pnn=1&i=54973&t=54973 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2003, 17:59 |
|
Ну помогите, блин, отловить событие OnShutDown, пожалуйста
|
|||
---|---|---|---|
#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. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123.
Если искать текст "SHUTDOWN" в файлах проекта, в результате такой текст есть только в исполняемой *.ехе. Ничего не понимаю.... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2003, 18:20 |
|
Ну помогите, блин, отловить событие OnShutDown, пожалуйста
|
|||
---|---|---|---|
#18+
Да Визард постарался, лучше уж ручками. Ну да ладно. Посмотри #INCLUDE [..\REST_APP.H] Найди "Are you realy want to quit?". Возможно это значение константа (DEFINE). Потом по значению константы найдёшь, где он находится. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2003, 18:55 |
|
Ну помогите, блин, отловить событие OnShutDown, пожалуйста
|
|||
---|---|---|---|
#18+
Нет, к сожалению там ничего подобного нету, только следующее: [/src] #DEFINE APP_SUPERCLASS "_application" * developer can change this one * to use a different global reference * if desired -- a BUILD ALL/RECOMPILE * is required afterwards to synch up * references in generated menus and PRGs. #DEFINE APP_GLOBAL goApp * This one indicates the member name of the object * placed on "framework-enabled" forms: #DEFINE APP_MEDIATOR_NAME "app_mediator" * developer can change these to a different subclass * of APP_SUPERCLASS if desired: #DEFINE APP_CLASSLIB "REST_APP.VCX" #DEFINE APP_CLASSNAME "app_application" * the splash class can be anything you want: * #DEFINE APP_SPLASHCLASS "app_splash" #DEFINE APP_SPLASHCLASSLIB "REST_APP.VCX" * how long should the splash screen stay up if * no key is pressed and if the app object initializes * too quickly? (this figure is in seconds) #DEFINE APP_SPLASHDELAY 3 * the following are localization strings for the wrapper program: #DEFINE APP_CANNOT_RUN_LOC "Application cannot run." #DEFINE APP_ALREADY_RUNNING_LOC "Application already running." #DEFINE APP_WRONG_SUPERCLASS_LOC "Sorry -- this application must instantiate "+ CHR(13)+ ; "an object that descends from "+APP_SUPERCLASS+"." * this is a localization string for the menus: #DEFINE APP_FEATURE_NOT_AVAILABLE_LOC "Feature not available." * this one is a hook in the startup program, not * needed by the framework: * #DEFINE APP_INITIALIZE *<Initialize>* * strictly speaking the 6.0 framework does not * need the following, but the 5.0 template apps may, * if they are adapted for the new framework: * #DEFINE APP_CD *<CD>* * #DEFINE APP_PATH *<PATH>* [/src] Такую строку я нашел в директории, где установлен Фокс, в файле _framewk.h Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Беру ищу строку APP_READY_TO_SHUTDOWN_LOC. И опять же нахожу ее только в исполняемом *.ехе файле. Кстати почему в нем (в исполняемом *.ехе) код совсем не машинный? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2003, 19:37 |
|
Ну помогите, блин, отловить событие OnShutDown, пожалуйста
|
|||
---|---|---|---|
#18+
Поищи переменную в REST_APP.VCX. Там находится главнный класс приложения. Он запускается на пиполнение. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2003, 20:28 |
|
Ну помогите, блин, отловить событие OnShutDown, пожалуйста
|
|||
---|---|---|---|
#18+
Кажется, нашёл. Посмотри в каталог VFP7\WIZARDS\ там находится библиотека класов _framewk.vct. В описании класса _application есть метод onshutdown. Измини его и посмотри. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2003, 20:59 |
|
Ну помогите, блин, отловить событие OnShutDown, пожалуйста
|
|||
---|---|---|---|
#18+
СПАСИБО БОЛЬШОЕ, Alex Antipenko Я уже исправлял этот файл, но только не из под Фокса, т.к. не мог найти ы описании класса _application метод onshutdown. А нашел это место при помощи поиска текста из под DOS Navigatora, из под которого все и менял. После чего компилю проект в Фоксе - он говорит, что файл _framewk.vct не является объектным. :) Еще раз большое спасибо. Удачи. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2003, 21:13 |
|
Ну помогите, блин, отловить событие OnShutDown, пожалуйста
|
|||
---|---|---|---|
#18+
PUBLIC goApp goApp=CREATEOBJECT("cApplication") ... ... ... FUNCTION ShutDown IF TYPE("goApp")=="O" AND NOT ISNULL(goApp) *** МОЖНО НАСОВАТЬ ЧЕ ХОЧЕШЬ!!!! RETURN goApp.OnShutDown() && Собщение "Хотите выйти ?" ENDIF Cleanup() QUIT ENDFUNC Это строки из *.prg которая "set main" в проекте постоенном построителем т.е. как я демаю OnShutDown() метод обекта "aplication" скорее всего зашито очень глубоко (appwiz, _framewk.vcx и т.п ) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2003, 15:56 |
|
Ну помогите, блин, отловить событие OnShutDown, пожалуйста
|
|||
---|---|---|---|
#18+
Вроде Нашел !!! appwiz.vcx метод OnShutDown попробуй засунуть свой messagebox #DEFINE EXIT_LOC "Are you sure you want to exit?" IF MESSAGEBOX(EXIT_LOC,36,_screen.Caption)=6 QUIT ENDIF ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2003, 16:35 |
|
Ну помогите, блин, отловить событие OnShutDown, пожалуйста
|
|||
---|---|---|---|
#18+
_FrameWk.h - здесь находится строка "Are you sure you want to quit?" Процедура On ShutDonw находится здесь Class _FrameWk Object _Application Procedure _SetEnvironment Procedure _RestoreEnvironment ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2003, 09:47 |
|
|
start [/forum/topic.php?fid=41&fpage=421&tid=1598222]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
76ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
others: | 10ms |
total: | 186ms |
0 / 0 |