Сегодня я попробую объяснить как можно сделать хорошийUpdater(Лаунчер обновлений) Для вашей программы.
Я собрал несколько разных способов и сделал очень хороший лаунчер)
И так приступим:
1) Создаём новую Form
2) Помещаем на неё:
2.1) Label1 и Label2 из вкладки Standart
2.3) Button1 и Button2(Место их можно использовать всё что вам угодно, главное чтобы в Event было событие OnClik)
2.3) IdFTP из вкладки lndy Clients
2.4) Помещаем на Form1 компонент IdHttp
2.5) Помещаем на Form1 компонент Label
3) Теперь займёмся кодами...
3.1) Код для проверки версии программы:
Вставлять в Form1 событие OnCreate.
Код:
var
version:WideString;
begin
try
version:=IdHTTP1.Get('ссылка'); //Это файл с версией который будет находится на сайте то-есть в файле Version вы должны написать текущую версию программы
if version=Label1.Caption then //В Label1 название это версия программы на данный момент... ну то-есть если вы написали в Label, что у вас клиент версии V.1.0, а в файле Version на сервере другая версия он попросит вас сделать обновление...
begin
end
else
begin
if (not Assigned(Form2)) then // проверка существования Формы (если нет, то
Form2:=TForm2.Create(Self); // создание Формы)
Form2.Show; // (или Form2.ShowModal) показ Формы
end;
except
on e:Exception do
//-//-//-//-//-//
end;
end;
3.2) Работа с формой 2(Form2)
3.2.1) Даём название Form2 я советую называть:
Менеджер Обновлений, Ланучер Обновлений Updater.. ну это на ваше усмотрение...
3.2.2) Label1 на Form2 называем:"Появилась новая версия программы.",
А Label2:"Хотите загрузить обновление?"
3.2.3) Button1 называем:"Да",
а Button2:"Нет"
И если не кто не понял должно получиться так:
Появилась новая версия программы.
Хотите загрузить обновление?
Да Нет
3.2.4) Дальше в событиях Button1(Да) в OnClik Прописываем:
Код:
idFTP1.Username:= 'Name'; //
idFTP1.Password:= 'Pass'; //
idFTP1.Host:= 'Host'; //
idFTP1.Passive:= True;
if idFTP1.Connected then
idFTP1.Disconnect
else
try
idFTP1.Connect(True);
except
on E : Exception do
ShowMessage('Ошибка подключения: '+E.Message);
end;
if idFTP1.Connected then
try
idFTP1.Get('Ссылка на обновление', 'С каким именем оно сохранится', True);
except
on E : Exception do
ShowMessage('Ошибка скачивания файла: '+E.Message);
end;
end;
3.2.5) В событиях Button2(Нет) B Onclik прописываем:
Цитата:
Form2.Close
4) Всё)) Готова)) Можно и доработать... Ну что-бы при скачивании удалялась старая версия, а новая переименовывалась... Я доработаю сам и исправлю))
Если буду вопросы пишите в тему отвечу обязательно!
________________
Глава Ордена Чёрных Рыцарей
Последний раз редактировалось 3jhlty3; 21.01.2012 в 19:15.