|
Меню для As Top-Level форм
|
|||
---|---|---|---|
#18+
Возможно ли добавить меню для As Top-Level формы? P.S. Основного окна уже нет (_Screen.Visible=.F.) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2003, 15:46 |
|
Меню для As Top-Level форм
|
|||
---|---|---|---|
#18+
1 при востроении меню - View - General options TOP LEVEL form галочку поставь. 2. потом после генерации этого меню открой сгенерированый MPR-файл и тама найдешь такое: * To attach this menu to your Top-Level form, * call it from the Init event of the form: * Syntax: DO <mprname> WITH <oFormRef> [,<cMenuname>|<lRename>] * oFormRef - form object reference (THIS) * cMenuname - name for menu * lRename - renames Name property of your form * example: * PROCEDURE Init * DO mymenu.mpr WITH THIS,.T. * ENDPROC перевод думаю не нужен... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2003, 15:58 |
|
Меню для As Top-Level форм
|
|||
---|---|---|---|
#18+
Работает. :) Thanks!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2003, 16:16 |
|
Меню для As Top-Level форм
|
|||
---|---|---|---|
#18+
А как на счет StatusBar? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2003, 16:48 |
|
Меню для As Top-Level форм
|
|||
---|---|---|---|
#18+
* Это чтоб ты в любом месте проги мог пихать в менюшки все что хочешь Public MyMainForm MyMainForm = (thisform) * А это в любом месте после инита или в ините твоей формы для примера. Лучше вообще создай какой нить Custom там менюхи и прописывай в ините, а в ините формы просто создавай объект свой на основе твоего класса Custom_Menu. Create class Custom_Menu as Custom Porcedure Init define menu (MyMainForm.Name) in (MyMainForm.Name) bar DEFINE PAD Main OF (MyMainForm.name) PROMPT 'Система' COLOR SCHEME 3 ON PAD Main OF (MyMainForm.name) ACTIVATE POPUP SubPud DEFINE POPUP SubPud MARGIN RELATIVE COLOR SCHEME 7 DEFINE BAR 1 OF SubPud PROMPT '\<Выход' AFTER _MLAST ON SELECTION BAR 1 OF SubPud m.MyMainForm.DoExit() acti menu (MyMainForm.name) nowait Endif enddefine А стутус-бар ты как юзаешь, ручками делаешь как контрол или хочешь использовать ActiveX? хотя, разницы нет. Я делаю из ToolBar"а. В ините формы with thisform .Addproperty("statusbar",createobject("_status")) && - старт твоего статус -бара где _status - твой статус и не важно как ты его сделал. .Addproperty("oMenu",createobject("Custom_Menu")) && - старт твоего * А это менюха стартовала endwith Ясное дело что путь к библиотекам VCX или прогам должен быть определен чтоб она все это добро нашла. Все. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2003, 16:52 |
|
Меню для As Top-Level форм
|
|||
---|---|---|---|
#18+
А, пардоньте, первый вариант не правильный, не так вырезал. :) Вот правильный: Это чтоб ты в любом месте проги мог пихать в менюшки все что хочешь Public MyMainForm MyMainForm = (thisform) * А это в любом месте после инита или в ините твоей формы для примера. Лучше вообще создай какой нить Custom там менюхи прописывай в ините, а в ините формы просто создавай объект свой на основе твоего класса Custom_Menu. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
А стутус-бар ты как юзаешь, ручками делаешь как контрол или хочешь использовать ActiveX? хотя, разницы нет. Я делаю из ToolBar"а. В ините формы Код: plaintext 1. 2. 3. 4.
Ясное дело что путь к библиотекам VCX или прогам должен быть определен чтоб она все это добро нашла. Вот теперь все. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2003, 17:03 |
|
Меню для As Top-Level форм
|
|||
---|---|---|---|
#18+
Только, Фокс делать этого не хочет. Говорит, что "Methods and events cannot contain nested procedures or class definitions". ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2003, 12:05 |
|
Меню для As Top-Level форм
|
|||
---|---|---|---|
#18+
ты пишешь определение класса в уже определенном классе. Делай так: 1. Создай файл с раширением PRG. В этом файле напиши класс который будет у тебя собержать описание меню: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
2. При страте своего приложения(можешь в Load формы) пропиши пути к этому файлу с помощью SET PATH TO или явно укажи место где он валяется в config.fpw. 3. Определи этот файл в Код: plaintext
где CMenu - имя твоего файла с определнным классом меню. 4. В Init формы определи Код: plaintext 1.
а после этого в Init формы создавай объект на основании определнного твоего класса: Код: plaintext 1. 2. 3.
Если у тебя определение класса лежит в другом APP , то вместо createobject используй newobject. Если в метод Init при создании объекта нужно пихать параметры, то createobject и newobject это позволяют сделать. Тоже относится и к созданию стутус-бара. Соответственно, доступ к статус - бару и объекту меню можешь осущесвить из любого места программулины: Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2003, 13:54 |
|
|
start [/forum/topic.php?fid=41&fpage=418&tid=1598103]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
57ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
2ms |
others: | 272ms |
total: | 418ms |
0 / 0 |