powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / помогите с формами
7 сообщений из 7, страница 1 из 1
помогите с формами
    #32318059
МаксимВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет.
Всех с прошедшим праздником.
Понимаю, что выходные, но в рабочие дни нет свободного времени заниматься своими
делами. На работе загружают на полную.

Полистал форум и решил переделать свое приложение. Т.е. убрать с экрана главное
окно FoxPro.
_SCREEN.Visible=.F.
Создал класс на базе Form.
form1.ShowWindow=2 && As Top-Level Form
form1.WindowState=2 && Maximized
form1.WindowType=0 && Modeless
Добавил Menu, ToolBar, StatusBar. Все работает.

Дальше создаю второй класс, тоже на базе Form.
form2.ShowWindow=1 && In Top-Level Form
form2.WindowState=0 && Normal
form2.WindowType=0 && Modeless

Не вижу на экране вторую форму. Что делать?
Свойство DeskTop уже пробовал менять.

Максим.
...
Рейтинг: 0 / 0
помогите с формами
    #32318062
Фотография NNN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет, Максим.

А ты как вторую форму отображаешь?
Вроде все просто:
Код: 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.
PUBLIC x
PUBLIC y
x=CREATEOBJECT('Form1')
x.Show()
READ EVENTS 
RELEASE x
RELEASE y

DEFINE CLASS Form1 as Form 
Name= "Form1" 
ShowWindow= 2  && As Top-Level Form
WindowState= 2  && Maximized
PROCEDURE Unload
	CLEAR EVENTS
ENDPROC 
PROCEDURE Click
	y=CREATEOBJECT('Form2')
	y.Show()
ENDPROC 
ENDDEFINE 

DEFINE CLASS Form2 as Form 
Name= "Form2" 
ShowWindow= 1  && In Top-Level Form 
ENDDEFINE
...
Рейтинг: 0 / 0
помогите с формами
    #32318068
МаксимВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет NNN.
Хочу сделать так, чтобы внутри формы As Top-Level Form можно было открывать другие формы(как-бы дочерние).
Мой main.prg:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
#INCLUDE \INCLUDE\MAIN.H

PUBLIC oStartUp, oMainTree, oYesNo, oCboMain, oStatBar,;
		oProgress, oToolBar, oimlToolBar

_SCREEN.Visible = .F.

SET PATH TO DATA, FORMS, PROGS, HELP, INCLUDE, CLASS, OTHER
SET SAFETY OFF
SET CLASSLIB TO _MAIN, _BASE
SET PROCEDURE TO UTILITY.PRG

oStartUp = CREATEOBJECT('StartUp')
oCboMain = CREATEOBJECT('CboMain')
oStartUp.Show
oCboMain.Show

Пока _SCREEN не уберал все формы были In Top-Level Form. На экране отображал несколько форм. Все работало.

Максим.
...
Рейтинг: 0 / 0
помогите с формами
    #32318150
МаксимВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нашел пример.(А как привильно писать:'нашел' или 'нашол'?)
Добаляем новое свойство формы oWindows[1,0].
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
*  -- Создаем новый объект:
 
thisform.oWindows = CreateObject('form')
thisform.oWindows[i].NAME = 'child'+ALLTRIM(STR(i))
thisform.Top= .....

*  [i]-- Открываем новое окно
 
ACTIVATE WINDOW (thisform.oWindows[i].NAME) IN WINDOW (thisform.name)


Для NNN: Подскажи как форму созданную через Designer можно в виде кода переписать? Или это нельзя?

Максим.
...
Рейтинг: 0 / 0
помогите с формами
    #32318176
Фотография NNN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм, интересно, а куда мой предыдущий пост делся? :( Ну да ладно
В общем, перед созданием дочерней формы, родительская форма должна быть активна, иначе новая форма отображится в невидимом _SCREEN. Вот так должно работать:
Код: plaintext
1.
2.
3.
oStartUp = CREATEOBJECT('StartUp')
oStartUp.Show
oCboMain = CREATEOBJECT('CboMain')
oCboMain.Show


> А как привильно писать:'нашел' или 'нашол'?

Правильно нашёл :)

> Подскажи как форму созданную через Designer можно в виде кода переписать? Или это нельзя?

Запускаешь Class Browser, открываешь в нем форму и ждешь кнопку View Class Code.
...
Рейтинг: 0 / 0
помогите с формами
    #32318180
Гость_777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Делается примерно так:
1. Создается объект приложение, в рамках фокса это класс типа Custom, назови его к примеру App.
В App своем перегружаешь метод Init в нем прописываешь:

*INIT

SET DELETED ON
this.Run()
Clear EVENTS
RETURN .F.


Протом создаешь RUN и в нем прописывешь:
*RUN
Declare Integer FindWindow in Win32Api;
String @ lpClassName, ;
String @ lpWindowName

Declare Integer ShowWindow in Win32Api;
Integer hWnd,;
Integer nCmdShow

#define SW_HIDE 0
#define SW_SHOWNORMAL 1
#define SW_NORMAL 1
#define SW_SHOWMINIMIZED 2
#define SW_SHOWMAXIMIZED 3
#define SW_MAXIMIZE 3
#define SW_SHOWNOACTIVATE 4
#define SW_SHOW 5
#define SW_MINIMIZE 6
#define SW_SHOWMINNOACTIVE 7
#define SW_SHOWNA 8
#define SW_RESTORE 9
#define SW_SHOWDEFAULT 10
#define SW_MAX 10


Declare Integer LockWindowUpdate in Win32Api;
Integer hWndLock

Declare Integer UpdateWindow in Win32Api;
Integer hWnd


#define LockTrayUpdate LockWindowUpdate(FindWindow("Shell_TrayWnd",0))

Declare Integer Sleep in Win32Api Integer ln_Milliseconds

_VFP.autoyield=.f.
IF !_screen.visible
_SCREEN.move(-5000,-5000,100,100)
_SCREEN.caption=sys(2015)
i=FindWindow(0,_screen.caption)
LockTrayUpdate
ShowWindow(i,SW_RESTORE)
_SCREEN.show
_SCREEN.alwaysontop=.t.
ShowWindow(i,SW_HIDE)
LockWindowUpdate(0)
ENDIF

PUBLIC lo_obj
lo_obj = newobject("skk_frm","skk")
IF VARTYPE(lo_obj)='O' .AND. !ISNULL(lo_obj)
with lo_obj
.autocenter=.t.
.Show()
endwith
ENDIF

with _screen
do while .t.
ll_sdi=.f.
for i=1 to .formcount
if .forms(i).showwindow =2 .and..forms(i).visible
ll_sdi=.t.
exit
endif
endfor


if ll_sdi
read events
else
exit
endif
enddo
endwith


skk_frm - это твой класс формы MDI. Она должна быть Top Level 2.
на нее нужно повесить меню и дергать из нее формы Top Level 1.
Запуск делается так :

PUBLIC oApp
oApp = newobject("_app","skk")
release oApp
close data all
Quit


_app -это твой объект приложение
И всеИдея-то в том что Init объекта APP никогда не выполнится.
Работает все от 6 версии до 8.
...
Рейтинг: 0 / 0
помогите с формами
    #32318183
МаксимВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо.

Мои сообщения сегодня тоже почему-то публикуются не с первого раза! Не понятно.

Максим.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / помогите с формами
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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