Последняя версия DataExpress 3 beta от 9 августа 2020 года.
Изображение Скачать | Изображение Что нового?
См. также: Энциклопедия DX | Форум на develop-soft | Расширения
ИзображениеИзображениеИзображение

Лаунчер для DataExpress с функционалом обновления программы.

Полезное от пользователей DataExpress
Аватара пользователя
YurAnt
Эксперт
Сообщения: 3352
Зарегистрирован: 13 апр 2017, 08:57
Поблагодарили: 6 раз
Контактная информация:

Re: Лаунчер для DataExpress с функционалом обновления программы.

Сообщение YurAnt » 08 ноя 2017, 11:07

Видно что в Вашем случае "однобазная" система. А так вообще в конфликте это:

Код: Выделить всё

FormWidth=1920
FormHeight=1080

Аватара пользователя
rausNT
Специалист
Сообщения: 742
Зарегистрирован: 24 авг 2017, 09:23
Благодарил (а): 116 раз
Поблагодарили: 8 раз

Re: Лаунчер для DataExpress с функционалом обновления программы.

Сообщение rausNT » 08 ноя 2017, 11:31

YurAnt писал(а):Видно что в Вашем случае "однобазная" система. А так вообще в конфликте это:

Код: Выделить всё

FormWidth=1920
FormHeight=1080


Это размеры монитора? На что влияют эти параметры?
Что такое "однообразная" система? Не понимаю термин.

Вообще мне кажется масштабирование окон под разное разрешение возможно только скриптами, никаких же XML с размерами окон (как в Андроиде, допустим) не прикручиваются, все захаркодено в БД, что да делает как минимум неудобным работу с разными мониторами.

Аватара пользователя
YurAnt
Эксперт
Сообщения: 3352
Зарегистрирован: 13 апр 2017, 08:57
Поблагодарили: 6 раз
Контактная информация:

Re: Лаунчер для DataExpress с функционалом обновления программы.

Сообщение YurAnt » 08 ноя 2017, 11:42

rausNT писал(а):размеры монитора? На что влияют эти параметры?

Кто последний вышел из программы, тот передал через общий конфиг своё разрешение экрана товарищу. Небольшое, но неудобство...
Что такое "однообразная" система? Не понимаю термин.

Под однобазной системой я подразумевал то, что в Вашем конфиге в принципе возможна совместная работа в одной базе ввиду общих путей (шаблоны, путь к базе). Если бы речь шла о нескольких базах - использование общей папки с программой вызвало бы проблемы.

Аватара пользователя
rausNT
Специалист
Сообщения: 742
Зарегистрирован: 24 авг 2017, 09:23
Благодарил (а): 116 раз
Поблагодарили: 8 раз

Re: Лаунчер для DataExpress с функционалом обновления программы.

Сообщение rausNT » 08 ноя 2017, 11:53

YurAnt писал(а):
rausNT писал(а): Если бы речь шла о нескольких базах - использование общей папки с программой вызвало бы проблемы.

понятно.

Nikxdrummer
Опытный
Сообщения: 257
Зарегистрирован: 16 фев 2017, 10:56
Откуда: Новосибирск
Благодарил (а): 5 раз

Re: Лаунчер для DataExpress с функционалом обновления программы.

Сообщение Nikxdrummer » 12 янв 2018, 08:21

YurAnt писал(а):В принципе довольно сносная обновлялка получилась. Код вставляется в Main, там и живет. При каждом запуске DX тихо "спрашивает" версию с сайта и в случае нахождения свежей, предлагает ее скачать:
Изображение

"Нет" - успокаивается до следующего запуска, "Да":
Изображение

В общем, да, пока на URLDownloadToFileA. В принципе у кого быстрый интернет - глазом не успеют моргнуть, ну а у кого слабенький - придется чутка подождать, пока окончание загрузки выведет программу из нирваны...
Ну и после закачки установка как обычно - "Далее"->"Далее".., соглашаемся с Борисычем, и кстати - даже не обязательно было мутить закрывачку. Стандартная установка об этом заботится:
Изображение

Жмакаем "Далее" и DX самоубивается. По окончанию установки уже стоит волшебная галка:
Изображение

Ну и до появления новой версии на сайте, тихо-мирно и беззвучно при каждом запуске проверяется ее наличие...

Код: Выделить всё

function URLDownloadToFile(pCaller: cardinal; URL: PChar;
FileName: PChar;Reserved: cardinal; lpfnCB : cardinal): cardinal;
external 'URLDownloadToFileA@urlmon.dll stdcall';

function DeleteUrlCacheEntry(lpszUrlName:PChar):cardinal;
external 'DeleteUrlCacheEntry@wininet.dll stdcall';

procedure CheckAndInstallUpdate;
var Current,New:TDateTime;
objWinHttp:variant;
begin
Current:=StrToDate(FormatDateTime('dd.mm.yyyy',FileDateToDateTime(FileAge(Application.Exename))));
try
    objWinHttp := CreateOleObject('MSXML2.XMLHTTP');
    objWinHttp.Open('GET', 'http://mydataexpress.ru/latest_version.php', false);
    objWinHttp.Send;
  if StrToDate(objWinHttp.ResponseText)<>Current then
 // MsgBox('Проверка обновлений','У вас установлена последняя версия DataExpress.')
 // else
  if MessageDlg(
  'Обновление',
  'Новая версия DataExpress (от '+objWinHttp.ResponseText+') доступна для скачивания. Загрузить?',
  mtInformation,
  [mbYes,mbNo]) = 6 then
    begin
    debug('Загрузка новой версии...');
    DeleteUrlCacheEntry('http://mydataexpress.ru/files/dx3bsetup.exe');
    Application.ProcessMessages;
    if URLDownloadToFile(0, 'http://mydataexpress.ru/files/dx3bsetup.exe',
    PChar(GetTempDir+'dx3bsetup.exe'), 0, 0)=0 then
    begin
    debug('Установка...');
    ShellExecute('',GetTempDir+'dx3bsetup.exe','','',5)
    end
    else
      begin
      debug('Ошибка. Загрузка обновления не удалась.');
      objWinHttp:=Unassigned;
      exit;
      end;
    end;
 // else exit;
finally
  objWinHttp:=Unassigned;
except;
  debug(ExceptionParam);
  objWinHttp:=Unassigned;
end;
end;

procedure Database_Open;
begin
 CheckAndInstallUpdate;
end;

P.S. Если нет желания получать ошибки в вывод при отсутствии интернета, с последним debug-ом в коде можно поступить вот так:
// debug(ExceptionParam);

Очень большая просьба, для глупых (меня), распишите подробно что и где нужно сделать и прописать чтобы добиться такого образа обновления... Устал бегал и объяснять как установить новую версию и что за ошибка перед этим выскакивает((

jurist23rus
Эксперт
Сообщения: 2706
Зарегистрирован: 30 сен 2016, 09:42
Откуда: Майкоп
Благодарил (а): 2 раза
Поблагодарили: 27 раз

Re: Лаунчер для DataExpress с функционалом обновления программы.

Сообщение jurist23rus » 12 янв 2018, 08:51

YurAnt писал(а):Код вставляется в Main, там и живет.
Destiny is a very convenient word for those who never take decisions.

Аватара пользователя
YurAnt
Эксперт
Сообщения: 3352
Зарегистрирован: 13 апр 2017, 08:57
Поблагодарили: 6 раз
Контактная информация:

Re: Лаунчер для DataExpress с функционалом обновления программы.

Сообщение YurAnt » 12 янв 2018, 09:44

А Майн - это такая река такая во Франкфурте. Вот в неё надо код вставить и все заработает...
Вот сюда сходите.

Nikxdrummer
Опытный
Сообщения: 257
Зарегистрирован: 16 фев 2017, 10:56
Откуда: Новосибирск
Благодарил (а): 5 раз

Re: Лаунчер для DataExpress с функционалом обновления программы.

Сообщение Nikxdrummer » 12 янв 2018, 11:08

YurAnt писал(а):А Майн - это такая река такая во Франкфурте. Вот в неё надо код вставить и все заработает...
Вот сюда сходите.

С одной стороны хорошо что все здесь с юмором, с другой стороны порой не хочется задавать лишний раз вопросы, дабы не получить подобный ответ... Разобрался, спасибо.

jurist23rus
Эксперт
Сообщения: 2706
Зарегистрирован: 30 сен 2016, 09:42
Откуда: Майкоп
Благодарил (а): 2 раза
Поблагодарили: 27 раз

Re: Лаунчер для DataExpress с функционалом обновления программы.

Сообщение jurist23rus » 12 янв 2018, 11:19

Я прошу прощения и за себя и за коллегу YurAnt'a за излишний сарказм. Мы просто тут давненько и уже сами забыли как задавали миллион вопросов по любому поводу. Постараемся быть помягче. Не стесняйтесь с вопросами. Ну а если кто-то где-то резковат, отнеситесь к этому с пониманием, ничего личного ;)

Продолжение
Destiny is a very convenient word for those who never take decisions.

Аватара пользователя
admin
Разработчик
Сообщения: 5054
Зарегистрирован: 14 мар 2016, 11:32
Откуда: Ленинградская
Благодарил (а): 39 раз
Поблагодарили: 310 раз

Re: Лаунчер для DataExpress с функционалом обновления программы.

Сообщение admin » 15 янв 2018, 09:11

Kort писал(а):P.P.S. А кстати, вопрос уже вроде встречался, функцию обновления в сам клиент не предполагается встроить в перспективе?

Пока не планируется.