// вы читаете...

Новости

Заметки о installer. Часть 1



У SpeedButton1 сделай поле Tag равным 1 (это понадобится в дальнейшем). Теперь можно занятся
дизайном нашего пакера (это не должно вызвать особых проблем :)). Не забудь только загрузить
рисунки в SpeedButton’ы. Отличные пикчурсы можно взять (если у тебя стоит полная версия Delphi)
из \Program Files\Common Files\Borland Shared\Images\Buttons. Я нацепил на SpeedButton1 и
SpeedButton2 Fileopen.bmp, а на SpeedButton3 — Filesave.bmp.
А теперь переходим к самому интересному — к кодингу. Для начала сделаем обработчик
SpeedButton1’а OnClick и укажем его же в SpeedButton2. В нем напишем следующий код:

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
if (Sender as TSpeedButton).Tag=1 then Edit1.Text:=OpenDialog1.FileName
else Edit2.Text:=OpenDialog1.FileName;
end;

Если пользователь в OpenDialog’е что-то выбрал, то посмотрим какой из SpeedButton’ов он
нажал и присвоим соответствующему Edit’у новое значение. Можно было бы сделать два OnClick’a
(у каждого SpeedButton’а свой) и написать что-то типа:

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
if OpenDialog1.Execute then Edit1.Text:=OpenDialog1.FileName;
end;

procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
if OpenDialog1.Execute then Edit2.Text:=OpenDialog1.FileName;
end;

Но мне это кажется неспортивным. Да и откомпилированная прога будет жирнее на пару байт :).
Далее обратим свой взор на SpeedButton3. Сделаем обработчик OnClick в котором:

procedure TForm1.SpeedButton3Click(Sender: TObject);
begin
if SaveDialog1.Execute then Edit3.Text:=SaveDialog1.FileName;
end;

Ну а теперь перейдём к самой интересной кнопке — «GO!». В её OnClick’е будет сам упаковщик:

procedure TForm1.Button1Click(Sender: TObject);
var f,f2:file;
buf:array[1..1024] of byte;
done:integer;
begin
if not((FileExists(Edit1.Text))or(FileExists(Edit2.Text))) then begin
ShowMessage(‘Неправильно указан путь к файлу’);
Exit;
end;
if not FileExists(ExtractFilePath((Application.ExeName))+’Unpacker.exe’) then begin
ShowMessage(‘Не могу найти Unpacker.exe’);
Exit;
end;
AssignFile(f,ExtractFilePath((Application.ExeName))+’Unpacker.exe’);

Страницы: 1 2 3

Обсуждене

Отзывов нет на «Заметки о installer. Часть 1»

Ваш отзыв

Рубрики