Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Не понимаю... / 4 сообщений из 4, страница 1 из 1
24.05.2003, 16:12
    #32167914
РусланVFP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не понимаю...
Помогите пожалуйста разобраться со следующим кодом. Это было сгенерировано Fox'ом при создании проекта мастером создания проектов.
Мне теперь нужно добраться до событий, которые будут происходить при загрузке моего приложения, а видимо здесь все и происходит, но не понятно практически ничего из написаного ниже. Если Вас это не сильно затруднит приведите комментарии. Заранее благодарен.

Код: 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.
124.
* REST_APP.PRG

* This file is a generated, framework-enabling component
* created by APPBUILDER 
* (c) Microsoft Corporation


* Framework-generated application startup program
* for D:\VISUAL FOXPRO PROJECTS\REST

#INCLUDE [..\REST_APP.H]

IF TYPE([APP_GLOBAL.Class]) =  "C"  AND ;
   UPPER(APP_GLOBAL.Class) == UPPER(APP_CLASSNAME)
   MESSAGEBOX(APP_ALREADY_RUNNING_LOC, 48 , ;
              APP_GLOBAL.cCaption )
   IF VARTYPE(APP_GLOBAL.oFrame) =  "O" 
      APP_GLOBAL.oFrame.Show()
   ENDIF              
   RETURN
   
ENDIF   

RELEASE APP_GLOBAL
PUBLIC  APP_GLOBAL

LOCAL lcLastSetTalk, llAppRan, lnSeconds, loSplash
LOCAL ARRAY laCheck[ 1 ]

lcLastSetTalk=SET( "TALK" )
loSplash = .NULL.
SET TALK OFF

#IFDEF APP_SPLASHCLASS

   IF NOT EMPTY(APP_SPLASHCLASS)
      loSplash = NEWOBJECT(APP_SPLASHCLASS, APP_SPLASHCLASSLIB)
      IF VARTYPE(loSplash) =  "O"    
         lnSeconds = SECONDS()
         loSplash.Show()
      ENDIF
   ENDIF                                

#ENDIF

APP_GLOBAL = NEWOBJECT(APP_CLASSNAME, APP_CLASSLIB)

IF VARTYPE(APP_GLOBAL) =  "O"  ;
      AND ACLASS(laCheck,APP_GLOBAL) >  0  AND ;
      ASCAN(laCheck,UPPER(APP_SUPERCLASS)) >  0 

   APP_GLOBAL.cReference =[APP_GLOBAL]
   APP_GLOBAL.cFormMediatorName = APP_MEDIATOR_NAME

   #IFDEF APP_CD
      APP_CD
   #ENDIF
      
   #IFDEF APP_PATH
      APP_PATH
   #ENDIF   
   
   #IFDEF APP_INITIALIZE
       APP_INITIALIZE
   #ENDIF
   
   IF VARTYPE(loSplash) =  "O" 
   
      IF SECONDS() < lnSeconds + APP_SPLASHDELAY
         =INKEY(APP_SPLASHDELAY-(SECONDS()-lnSeconds), "MH" )
      ENDIF

      loSplash.Release()
      loSplash = .NULL.

   ENDIF
   
   RELEASE laCheck, loSplash, lnSeconds
           
   IF NOT APP_GLOBAL.Show()

      IF TYPE([APP_GLOBAL.Name]) =  "C" 
         MESSAGEBOX(APP_CANNOT_RUN_LOC, 16 , ;
                 APP_GLOBAL.cCaption )
         APP_GLOBAL.Release()
      ELSE
         MESSAGEBOX(APP_CANNOT_RUN_LOC, 16 )
      ENDIF

   ELSE
      llAppRan = .T.
   ENDIF
   
     
   IF TYPE([APP_GLOBAL.lReadEvents]) =  "L" 
   
      IF APP_GLOBAL.lReadEvents
         * the Release() method was not used
         * but we've somehow gotten out of READ EVENTS...
         APP_GLOBAL.Release()
      ENDIF
   ELSE
      RELEASE APP_GLOBAL
   ENDIF

ELSE

   MESSAGEBOX(APP_WRONG_SUPERCLASS_LOC, 16 )
   RELEASE APP_GLOBAL

ENDIF

IF lcLastSetTalk== "ON" 
   SET TALK ON
ELSE
   SET TALK OFF
ENDIF

IF TYPE([APP_GLOBAL]) =  "O" 
    non-read events app
   RETURN APP_GLOBAL
ELSE
   RETURN llAppRan
ENDIF 
...
Рейтинг: 0 / 0
24.05.2003, 17:05
    #32167937
NNN
NNN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не понимаю...
Просто все опредлено в заголовочном файле, поэтому разбираться с непривычки трудно.
#INCLUDE [..\REST_APP.H]
После компиляции (и декомпиляции) файл выглядит так:
Код: 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.
**
** rest_app_app.fxp
**
If Type('goApp.Class')= "C"  .And. Upper(GOAPP.Class)==Upper( "app_application" )
    Messagebox( "Application already running." ,  48 , GOAPP.CCAPTION)
    If Vartype(GOAPP.OFRAME)= "O" 
        GOAPP.OFRAME.Show()
    Endif
    Return
Endif
Release GOAPP
Public GOAPP
Local LCLASTSETTALK, LLAPPRAN, LNSECONDS, LOSPLASH
Local LACHECK[ 1 ]
LCLASTSETTALK = Set( "TALK" )
LOSPLASH = .Null.
Set Talk Off
If  .Not. Empty( "app_splash" )
    LOSPLASH = Newobject( "app_splash" ,  "REST_APP_APP.VCX" )
    If Vartype(LOSPLASH)= "O" 
        LNSECONDS = Seconds()
        LOSPLASH.Show()
    Endif
Endif
GOAPP = Newobject( "app_application" ,  "REST_APP_APP.VCX" )
If Vartype(GOAPP)= "O"  .And. Aclass(LACHECK, GOAPP)> 0  .And. ;
Ascan(LACHECK, Upper( "_application" ))> 0 
    GOAPP.CREFERENCE = 'goApp'
    GOAPP.CFORMMEDIATORNAME =  "app_mediator" 
    If Vartype(LOSPLASH)= "O" 
        If Seconds()<LNSECONDS+ 3 
            = Inkey( 3 -(Seconds()-LNSECONDS),  "MH" )
        Endif
        LOSPLASH.Release()
        LOSPLASH = .Null.
    Endif
    Release LACHECK, LOSPLASH, LNSECONDS
    If  .Not. GOAPP.Show()
        If Type('goApp.Name')= "C" 
            Messagebox( "Application cannot run." ,  16 , GOAPP.CCAPTION)
            GOAPP.Release()
        Else
            Messagebox( "Application cannot run." ,  16 )
        Endif
    Else
        LLAPPRAN = .T.
    Endif
    If Type('goApp.lReadEvents')= "L" 
        If GOAPP.LREADEVENTS
            GOAPP.Release()
        Endif
    Else
        Release GOAPP
    Endif
Else
    Messagebox( "Sorry -- this application must instantiate "+Chr(13)+;
 
    "an object that descends from  "+" _application "+" . ", 16 )
    Release GOAPP
Endif
If LCLASTSETTALK=="ON "
    Set Talk On
Else
    Set Talk Off
Endif
If Type('goApp')=" O"
    Return GOAPP
Else
    Return LLAPPRAN
Endif
*-eof

В общем, куча мусора и ничего интересного :-)). Главные события и действующие лица находятся в классе app_application.

ЗЫ не люблю я визарды, в данном нужно-то всего пару строк и read events.
...
Рейтинг: 0 / 0
24.05.2003, 17:50
    #32167945
РусланVFP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не понимаю...
Извините, но мне все равно ничего не понятно :).
Конкретизирую вопрос: как мне добраться до свойств _screen'a на этапе разработки? Например на загрузку, дестрой и пр.
...
Рейтинг: 0 / 0
24.05.2003, 22:05
    #32167984
NNN
NNN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не понимаю...
ИМХО легче все самому прописать, а не полагаться на визарды.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Не понимаю... / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]