:: Visual Foxpro, Foxpro for DOS
Проблемы с первой программой
The_Immortal

Сообщений: 1
Дата регистрации: 04.12.2019
Приветствую!

Господа, помогите, пожалуйста, новичку-умственному инвалиду. Написал "хелловорлд", создав в проекте форму Form1 (маркер "Set Main" стоит), на ней кнопку и по клику на кнопку вызов
MESSAGEBOX
После сбилдил ехе, кинул все необходимые рантаймы и ... Окно FoxPro мелькает на экране и тут же закрывается. Почитал тут, но информация как-то совсем не далась*. В общем, добавил на событие Load формы Form1 следующее:
READ EVENTS
ON SHUTDOWN CLEAR EVENTS
В итоге после запуска exe каждый раз запрашивается "Ошибка в файле ресурсов. Перезаписать его новым пустым файлом? Да / Нет", далее открывается окно FoxPro (SCREEN), из которого через меню Окно можно вызывать Form1, но форма не показывается. Также при попытке закрыть окно появляется "Невозможно завершить Visual FoxPro".
Где я дурак?

Спасибо!

*Например, поплыл мозг от режимов FoxPro (SCREEN)/As Top-Level. В том же VCL я привык, что есть главная, создавая в начале форма, которая "курирует" остальные. А тут какой-то экран среды, ожидания пользователя, меню-тулбары создаваемые автоматические, формы попадающие в меню... Жесть, в общем



Исправлено 2 раз(а). Последнее : The_Immortal, 04.12.19 20:13
Ratings: 0 negative/0 positive
Re: Проблемы с первой программой
Alsim

Сообщений: 3636
Откуда: Екатеринбург
Дата регистрации: 17.11.2004
я запускаю из main.prg, который в проекте конечно "main", в которой кроме всего прочего обязательно так.
Do Form Main
Read Events
а уже в форме main в QueryUnload
If 6=Messagebox("Завершить работу с программой?",4+32,"Завершение работы")
On Shutdown
For Each oform In _vfp.Forms
oform.Release
Endfor
Close Tables All
Close Databases All
Clear Events
This.Release
If Version(2)=0
*=auto_backup()
Endif
Else
Nodefault
Endif
Есть правда одна тонкость - у меня все проекты не на Screen с менюшками (терпеть не могу такой интерфейс),
а на AsTopLevel формах работают, потому Clear Events стоит в главной форме.



Исправлено 1 раз(а). Последнее : Alsim, 05.12.19 07:55
Ratings: 0 negative/1 positive
Re: Проблемы с первой программой
Crispy

Сообщений: 18571
Дата регистрации: 16.05.2005
The_Immortal
*Например, поплыл мозг от режимов FoxPro (SCREEN)/As Top-Level. В том же VCL я привык, что есть главная, создавая в начале форма, которая "курирует" остальные. А тут какой-то экран среды, ожидания пользователя, меню-тулбары создаваемые автоматические, формы попадающие в меню... Жесть, в общем

На самом деле все просто. Просто возможно непривычно.
Суть такая.
Можно использовать "Главное окно Фокспро" (по сути IDE разработчика), разумеется отключив и/или переназначив главное меню под пльзователя.
При этом все прочие формы могут быть запущены только из этого главного окна.
Либо это главное окно отключается, и создается своя главная форма. От которой уже дальше и и пляшется.
Но что бы это стало возможным нужны такие вещи.

1) Создать новый проект разумеется.

2) Создать конфигурационный файл config.fpw (обычный текстовый ANSI-файл) и вписать в него: "SCREEN = OFF".
Лучше при этом добавить данный файл в проект в закладку "Other" как текстовый файл. Иначе придется его таскать с ехе-шником.
О возможном содержимом этого файла стоит почитать в хелпе.
Примерное же "среднее" содержимое обычно наподобие такого:
SCREEN = OFF
AUTOSAVE = Off
CODEPAGE = AUTO
HELP = OFF
SYSMENU = OFF
DATE = GERMAN
HOURS = 24
CENTURY = OFF
TALK = OFF
SAFETY = OFF
ESCAPE = OFF
EXCLUSIVE = ON
DELETED = ON
EXACT = OFF

2) Создать программный файл. Там будут все установки среды и прочее. Можно также сделать проверку на случай повторного запуска приложения. Скажем у меня обычно при такой проверке, если оно зацущено, просто активируется окно запущенного.
Но главное - запустить из него свою главную форму.
Для чего как минимум вставить код:
DO FORM NameMyForm
READ EVENTS
Обычно по умолчанию такой файл при создании помечатеся как "главный" (выделено жирым шрифтом). Либо можно изменить это мышкой через ПКМ.

3) Создать свою главную форму.
Для чего нужно установить в дизайнере в ее свойстах параметр: ShowWindow = 2.
Такой параметр запускает форму как независимое (от главного окна фокспоро и всех других фокс-окон) окно Windows (хотя, если уж докапываться, такая независмость относительная, но тем не менее, визуально выглядит все же независимым).

И все! Т.е. дальше можно уэе кидать в это окно ту же кнопку.
Затем кликнув по ней вписать в ее метод Click пусть хоть:
MESSAGEBOX("Hello World!")
Хотя думаю мир уже задолбался от этих хеллоув.

В смысле написать такого рода болванку - вообще ничего сложного. А вот все, что дальше - это уже посложнее. И чем "дальше" оно нужно будет, тем сложнее разумеется. ;) Как и везде в принципе.
Но это как бы уже совсем другая тема (точнее темы, поскольку вопросов может много возникать).


------------------
В действительности все иначе, чем на самом деле.
                                      (Антуан де Сент-Экзюпери)




Исправлено 1 раз(а). Последнее : Crispy, 05.12.19 13:34
Ratings: 0 negative/1 positive
Re: Проблемы с первой программой
akvvohinc

Сообщений: 4219
Откуда: Москва
Дата регистрации: 11.11.2008
The_Immortal
Окно FoxPro мелькает на экране и тут же закрывается. Почитал тут, но информация как-то совсем не далась*. В общем, добавил на событие Load формы Form1 следующее:

Достаточно было сделать форму модальной, то есть в ее свойствах задать:
WindowType = 1
Ratings: 0 negative/1 positive
Re: Проблемы с первой программой
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
Crispy
2) Создать программный файл. Там будут все установки среды и прочее…

А зачем нужно пихать в main.prg все что можно?
Напишите класс-загрузчик и в нем решайте все свои проблемы загрузки/выгрузки.
Глядишь, в одну тему все влезет.



Исправлено 2 раз(а). Последнее : lulgu, 06.12.19 18:06
Ratings: 0 negative/0 positive
Re: Проблемы с первой программой
of63
Автор

Сообщений: 25254
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
> *Например, поплыл мозг от режимов FoxPro (SCREEN)/As Top-Level. В том же VCL я привык, что есть главная, создавая в начале форма, которая "курирует" остальные. А тут какой-то экран среды, ожидания пользователя, меню-тулбары создаваемые автоматические, формы попадающие в меню... Жесть, в общем

Все это фигня, это все за полчаса поймешь и сделаешь первую форму в приложении, в которой будет поле ввода для хелловерд
Главное - собственно задача, которую надо решить, Внезапно на фоксе, на незнакомом языке. Что вдруг подвигло решать ее на фоксе (DBF-ы)?. То же можно сделать и на Excel/VBA, акессе (он еще жив?), ну и на современных новоязах, вероятно



Исправлено 1 раз(а). Последнее : of63, 06.12.19 22:07
Ratings: 0 negative/0 positive
Re: Проблемы с первой программой
gsaul

Сообщений: 53
Дата регистрации: 28.01.2006
"То же можно сделать и на Excel/VBA, акессе"

Не смеши людоедов
Ratings: 0 negative/0 positive
Re: Проблемы с первой программой
of63
Автор

Сообщений: 25254
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Я вам ссылок наложил, про дело Сысоева, в курилке, про чтиво. "" Делать надо дело, 20 лет, остальное приложится.
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 21 akvvohinc  (Гостей: 20)

© 2000-2024 Fox Club 
Яндекс.Метрика