Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.07.2008, 14:09   #1
A114U
Пользователь
 
Регистрация: 28.09.2007
Сообщений: 10
По умолчанию Написание инсталлятора

Прошу знающих людей помочь в написании инсталлятора, работающего в качестве патча.
  1. Есть, например, архив 2.zip, в котором 3 папки с файлами, нужно чтобы этот архив был в ресурсах програмки и уже оттуда распаковывался по указанной пользователем папке, т.е. без архива, просто папки.
  2. Также не могу сделать ProgressBar, чтоб было видно что ставится патч...
  3. Как сделать чтоб по завершению установки появлялась форма "Установка завершена"?
Исходник примера программки ТУТ. Без вирусов =)
A114U вне форума Ответить с цитированием
Старый 18.07.2008, 14:11   #2
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Как насчёт готовых решений типа InnoSetup?
пыщь
JTG вне форума Ответить с цитированием
Старый 18.07.2008, 14:28   #3
A114U
Пользователь
 
Регистрация: 28.09.2007
Сообщений: 10
По умолчанию

Готовые решения, всякие программы для создания инсталляторов не подходят, всётаки лабораторка - надо всё в делфи.....
A114U вне форума Ответить с цитированием
Старый 18.07.2008, 16:27   #4
zetrix
Delphi/C++/C#
Участник клуба
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
По умолчанию

Извините, бесплатно не смогу.

Самый простой вариант: используем винрар. через консоль создаём ехе-файл с нужными параметрами.

Более сложный, но зато всё сами: пишем джоинер.
zetrix вне форума Ответить с цитированием
Старый 18.07.2008, 18:04   #5
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Компонент (скачаешь под свою версию делфи)
http://www.componentace.com/download...p?editionid=12
(это некоммерческая версия, так что при запуске делфи будет показывать окно с напоминанием, но в самой программе всё ок)

- архивируешь в payload.zip нужные файлы (вместе с папками)
- делаешь файл ресурсов payload.rc с содержимым 1 RCDATA "payload.zip"
- скармливаешь его brcc32.exe в папке delphi\bin
- получаешь payload.res
- закидываешь payload.res в папку с проектом и компилишь.

в аттаче простой пример, чего будет нужно - допиши
Вложения
Тип файла: rar ZipFile.rar (549.7 Кб, 31 просмотров)
пыщь
JTG вне форума Ответить с цитированием
Старый 20.07.2008, 14:09   #6
A114U
Пользователь
 
Регистрация: 28.09.2007
Сообщений: 10
По умолчанию

JTG Спасибо за помощь, попробую сделать
A114U вне форума Ответить с цитированием
Старый 04.08.2008, 11:12   #7
A114U
Пользователь
 
Регистрация: 28.09.2007
Сообщений: 10
По умолчанию

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

Код:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, jpeg, ExtCtrls, StdCtrls, FileCtrl, ComCtrls, ZipForge, XPMan,
  Gauges;

type
  TForm2 = class(TForm)
    Image1: TImage;
    Edit1: TEdit;
    Image2: TImage;
    Image3: TImage;
    Image4: TImage;
    ProgressBar1: TProgressBar;
    XPManifest1: TXPManifest;
    ZipForge1: TZipForge;
    procedure Image2Click(Sender: TObject);
    procedure Image4Click(Sender: TObject);
    procedure ZipForge1OverallProgress(Sender: TObject; Progress: Double;
      Operation: TZFProcessOperation; ProgressPhase: TZFProgressPhase;
      var Cancel: Boolean);
    procedure Image3Click(Sender: TObject);
  protected
    procedure CreateParams(var Params: TCreateParams); override;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}
{$R PAYLOAD.RES}

procedure TForm2.CreateParams(var Params: TCreateParams);
const
  CS_DROPSHADOW = $00020000;
begin
  inherited;
  Params.WindowClass.Style := Params.WindowClass.Style or CS_DROPSHADOW;
end;

procedure TForm2.Image2Click(Sender: TObject);
var
s:string;
begin
SelectDirectory('Укажите путь к папке','d:\ , c:\',s);
Edit1.Text:=s+'\';
end;

procedure TForm2.Image4Click(Sender: TObject);
begin
close;
end;

procedure TForm2.Image3Click(Sender: TObject);
var archive: TResourceStream;
begin
  archive:=TResourceStream.Create(hinstance,'#1',RT_RCDATA);

  ZipForge1.OpenArchive(archive,false);
  ZipForge1.BaseDir:=Edit1.Text;
  Zipforge1.ExtractFiles('*.*');
  ZipForge1.CloseArchive;

  archive.Free;
end;

procedure TForm2.ZipForge1OverallProgress(Sender: TObject;
  Progress: Double; Operation: TZFProcessOperation;
  ProgressPhase: TZFProgressPhase; var Cancel: Boolean);
begin
  ProgressBar1.Position:=round(progress);
end;

end.
A114U вне форума Ответить с цитированием
Старый 04.08.2008, 11:27   #8
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Проверь назначен ли обработчик события OnOverallProgress в ZipForge1, или процедура ZipForge1OverallProgress просто так висит
пыщь
JTG вне форума Ответить с цитированием
Старый 04.08.2008, 13:29   #9
A114U
Пользователь
 
Регистрация: 28.09.2007
Сообщений: 10
По умолчанию

Цитата:
Сообщение от JTG Посмотреть сообщение
Проверь назначен ли обработчик события OnOverallProgress в ZipForge1, или процедура ZipForge1OverallProgress просто так висит
Спасибо) действительно висело просто так))) теперь всё нормально
Остался открытым ещё 1 вопрос) как всёже сделать чтобы при окончании установки появлялась форма "Установка завершена"?) Или хотяб чтобы программка просто закрывалась.
A114U вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написание сервисов Domovoy Свободное общение 4 17.07.2008 12:26
Написание *.bat .. как? Stema Общие вопросы по программированию, компьютерный форум 6 09.04.2008 15:26
Написание формулы на C++ Noor Общие вопросы C/C++ 11 08.01.2007 14:15
написание формулы vladi Microsoft Office Excel 6 31.12.2006 18:16
Написание лабораторных Vladimir Фриланс 3 24.12.2006 18:43