Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как в программе сохранить константу с датой компиляции / 13 сообщений из 13, страница 1 из 1
30.10.2008, 12:27
    #35625200
psv73
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в программе сохранить константу с датой компиляции
Добрый день!

Возникла необходимость иметь в программе константу, в которой бы хранилась дата компиляции проекта. Каким образом в программе можно сохранять такую константу?

Пока делаю это вручную... а хотелось бы автоматизировать, потому как часто приходится компилить проект...

Спасибо!
...
Рейтинг: 0 / 0
30.10.2008, 12:57
    #35625291
homik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в программе сохранить константу с датой компиляции
Сам никогда не пользовал, но думаю обязательно должно быть событие BeforBuild или AfterBuild , где можно создать ini-файл и записать дату.

Объект типа ProjectHook является базовым классом Visual FoxPro, который позволяет определить Значения Свойств Проекта всякий раз, когда данный Проект Открывается. (Вы можете использовать опциональный параметр NOPROJECTHOOK для команды CREATE PROJECT или команды MODIFY PROJECT, которая обеспечивает блокировку создания и подсоединения описываемого Объекта ProjectHook.)

Рассматриваемый объект ProjectHook обеспечивает программный доступ к Событиям, пороисходящим в рассматриваемом Проекте. Например, вы можете контролировать (или выполнять некоторый программный код) в том случае, когда в Проект добавляется новый Программный файл. Обратите внимание, что вы можете определить некоторый класс типа ProjectHook для каждого нового, создаваемого Проекта, для этого рекомендуется использовать Закладка Projects, которая находится в диалоговом боксе Options, или можно определить рассматриваемый Класс для конкретного, нового Проекта, для этого рекомендуется использовать Диалоговый Бокс Project Information. При выполнении программного Модуля, вы можете определить требуемый объект класса ProjectHook как показано в следующем Фрагменте Программного Кода:

Копировать Код
MODIFY PROJECT MyProject_VFP.Projects('MyProject.pjx').ProjectHook = ; NewObject('MyProjectHook', 'MyClass.vcx')
...
Рейтинг: 0 / 0
30.10.2008, 13:02
    #35625307
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в программе сохранить константу с датой компиляции
psv73Добрый день!

Возникла необходимость иметь в программе константу, в которой бы хранилась дата компиляции проекта. Каким образом в программе можно сохранять такую константу?

Пока делаю это вручную... а хотелось бы автоматизировать, потому как часто приходится компилить проект...

Спасибо!
Использую для этого класс ProjectHook, в событии которого AfterBuild можно считать свойтство из Application.ActiveProject.BuildDateTime и сохранить куда тебе надо.
С уважением, Алексей
...
Рейтинг: 0 / 0
30.10.2008, 13:07
    #35625324
stoopper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в программе сохранить константу с датой компиляции
psv73Добрый день!

Возникла необходимость иметь в программе константу, в которой бы хранилась дата компиляции проекта. Каким образом в программе можно сохранять такую константу?

Пока делаю это вручную... а хотелось бы автоматизировать, потому как часто приходится компилить проект...

Спасибо!


А вариант Date_of_project=fdate("MyEXE") не подойдет?
...
Рейтинг: 0 / 0
30.10.2008, 13:09
    #35625331
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в программе сохранить константу с датой компиляции
stoopperpsv73Добрый день!

Возникла необходимость иметь в программе константу, в которой бы хранилась дата компиляции проекта. Каким образом в программе можно сохранять такую константу?

Пока делаю это вручную... а хотелось бы автоматизировать, потому как часто приходится компилить проект...

Спасибо!


А вариант Date_of_project=fdate("MyEXE") не подойдет?
При компиляции проекта не обязательно генерится EXE-файл.
С уважением, Алексей
...
Рейтинг: 0 / 0
30.10.2008, 13:13
    #35625346
stoopper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в программе сохранить константу с датой компиляции
Aleksey-Kstoopperpsv73Добрый день!

Возникла необходимость иметь в программе константу, в которой бы хранилась дата компиляции проекта. Каким образом в программе можно сохранять такую константу?

Пока делаю это вручную... а хотелось бы автоматизировать, потому как часто приходится компилить проект...

Спасибо!


А вариант Date_of_project=fdate("MyEXE") не подойдет?
При компиляции проекта не обязательно генерится EXE-файл.
С уважением, Алексей

Хорошо, тогда любой файл проекта, который явно меняется вместо MyEXE
...
Рейтинг: 0 / 0
30.10.2008, 13:14
    #35625351
psv73
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в программе сохранить константу с датой компиляции
stoopperА вариант Date_of_project=fdate("MyEXE") не подойдет?

Важно, чтобы это был не атрибут файла!!!
...
Рейтинг: 0 / 0
30.10.2008, 14:46
    #35625672
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в программе сохранить константу с датой компиляции
Нужна именно дата? Или достаточно просто некоего уникального идентификатора, по которому можно отличить одну версию от другой?

Если нужен всего-лишь идентификатор, то когда выбираешь компиляцию файла Exe становится доступна кнопочка Version. Там можно задать значения 3 частей Version Number. Причем, если поставить птичку "Auto Increment", то значение последней (третьей) части номера будет автоматически увеличиваться на 1 при каждой последующей компиляции.

Ну, а прочитать номер версии можно при помощи функции AGetVersion()
...
Рейтинг: 0 / 0
30.10.2008, 15:03
    #35625749
psv73
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в программе сохранить константу с датой компиляции
ВладимирМНужна именно дата? Или достаточно просто некоего уникального идентификатора, по которому можно отличить одну версию от другой?

Если нужен всего-лишь идентификатор, то когда выбираешь компиляцию файла Exe становится доступна кнопочка Version. Там можно задать значения 3 частей Version Number. Причем, если поставить птичку "Auto Increment", то значение последней (третьей) части номера будет автоматически увеличиваться на 1 при каждой последующей компиляции.

Ну, а прочитать номер версии можно при помощи функции AGetVersion()

Нужна именно дата!!!!

А можно пример, как это все (ProjectHook) использовать в скомпилином проекте? что-то никак не пойму... как к этому добру обратится из VFP понятно, а из скопилинного проекта никак нераздуплюсь...
...
Рейтинг: 0 / 0
30.10.2008, 15:30
    #35625846
XAndy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в программе сохранить константу с датой компиляции
Далеко не при всякой компиляции проекта нужно приращивать номер версии, поэтому просто в главном меню фокса есть несколько пунктов: "Прирастить номер версии", компилирую exe, "Установить новую версию программы",... Хранить константы в проекте можно включив в проект какой-нибудь файл (в том числе dbf), у меня const.ini

[App]
Name =
Title =
Copyright =
Version =
Release =
DBVersion =
DBRelease =
Icon =
...
...
Рейтинг: 0 / 0
30.10.2008, 15:40
    #35625879
12345зайчик
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в программе сохранить константу с датой компиляции
авторНужна именно дата!!!!

ну хозяин - барин

Вам необходим пример?
мне рисовать лень, но принцип таков
и поищите примеры по ProjectHook я когда-то рисовал

на событие до сборки вешаете
код генерации доп.модуля
к примеру так

text to lcStr
#define tttt <<dtoc(date())>>
return .....)
endte

strtofile(lcStr,"getExeBuildData.prg")

файлик getExeBuildData.prg должен быть включен
при сборке он скомпилится при включенной опции рекомпайл

в проекте в нужны местах Вы можете звать свою дату так
messagebox(getExeBuildData())

ну и т.д., вариаций может быть много на эту тему, до подмены
какой-то строки в каком-то модуле


+ к вышесказанному.
для сложных сценариев сборки
в фокспро возможно написание дополнительных модулей-сборщиков,
которые собирают приложения со сложной архитектурой.
...
Рейтинг: 0 / 0
30.10.2008, 15:40
    #35625880
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в программе сохранить константу с датой компиляции
psv73ВладимирМНужна именно дата? Или достаточно просто некоего уникального идентификатора, по которому можно отличить одну версию от другой?

Если нужен всего-лишь идентификатор, то когда выбираешь компиляцию файла Exe становится доступна кнопочка Version. Там можно задать значения 3 частей Version Number. Причем, если поставить птичку "Auto Increment", то значение последней (третьей) части номера будет автоматически увеличиваться на 1 при каждой последующей компиляции.

Ну, а прочитать номер версии можно при помощи функции AGetVersion()

Нужна именно дата!!!!

А можно пример, как это все (ProjectHook) использовать в скомпилином проекте? что-то никак не пойму... как к этому добру обратится из VFP понятно, а из скопилинного проекта никак нераздуплюсь...
Вот пример использования ProjectHook немного для других целей (обновления файлов отчетов при компиляции проекта в версии VFP 8), но думаю разберешься - http://www.caws.atnet.ru/vfox/vfoxpro4.html
С уважением, Алексей
...
Рейтинг: 0 / 0
30.10.2008, 16:57
    #35626118
psv73
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в программе сохранить константу с датой компиляции
Aleksey-KВот пример использования ProjectHook немного для других целей (обновления файлов отчетов при компиляции проекта в версии VFP 8), но думаю разберешься - http://www.caws.atnet.ru/vfox/vfoxpro4.html
С уважением, Алексей

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


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