Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - Помощь в написании примера

Ответить
Настройки темы
Delphi - Помощь в написании примера

Ветеран


Сообщения: 1133
Благодарности: 581


Конфигурация

Профиль | Отправить PM | Цитировать


Здравствуйте, заранее извиняюсь за возможно глупую просьбу...
Только начал изучать Delphi...
Делал в своё время для себя инссталлятор-программу для создания обычного текстового файла, но с расширением .iss (скрипт для Inno Setup), решил сделать точно такое же, но с помощью Delphi, но не могу разобраться, чего-то совсем запутался...
Если не сложно, то может кто-нибудь накидает пример...
Пример скрипта на Inno Setup
читать дальше »
Код: Выделить весь код
#define DateTime GetDateTimeString('dd/mm/yyyy года, в hh:nn:ss ', '.', ':')

[Setup]
AppName=BuildScript
AppVerName=BuildScript
VersionInfoDescription=BuildScript
DisableProgramGroupPage=yes
DisableFinishedPage=yes
DisableReadyPage=yes
CreateUninstallRegKey=no
CreateAppDir=no
Uninstallable=no
OutputBaseFilename=BuildScript
OutputDir=.
SolidCompression=yes
Compression=lzma/ultra
InternalCompressLevel=ultra

[ Code]
// пропуск страницы приветствия
procedure CurPageChanged(CurPageID: Integer);
begin
    If CurPageID=wpWelcome then
    begin
        SendMessage(WizardForm.NEXTBUTTON.Handle, 513, 0, 0)
        SendMessage(WizardForm.NEXTBUTTON.Handle, 514, 0, 0)
    end;
end;

// проверка, если файл существует, то к его имени прибавляется [1], [2] и так далее
function GetFileName(name:string;n:integer):string;
var
  s,e:string;
  p:integer;
begin
  Result:=name;
  if FileExists(name) then
  begin
    s:=ExtractFileName(name);
    e:=ExtractFileExt(name);
    s:=Copy(s,1,Length(s)-(Length(e)));
    p:=Pos('[',s);
    if p>0 then 
    s:=Copy(s,1,p-1);
    s:=AddBackslash(ExtractFileDir(name))+s+'['+IntToStr(n+1)+']'+e;
    Result:=GetFileName(s,n+1);
  end;
end;

// создание самого файла скрипта
procedure example_script;
var
  ScriptName,str,fn: string;
  ResultCode: Integer;
begin
  CreateDir(ExpandConstant('{userdocs}\Inno Setup Examples Output'));
  ScriptName:= GetFileName(ExpandConstant('{userdocs}\Inno Setup Examples Output\example.iss'),0);
  str:= str+ '; Данный скрипт создан ' + ExpandConstant('{#DateTime}') + #13 +
        str+ '' + #13 +
        str+ '[Setup]' + #13 +
        str+ 'AppName=My Program' + #13 +
        str+ 'AppVerName=My Program v 1.5' + #13 +
        str+ 'DefaultDirName={pf}\My Program' + #13 +
        str+ 'OutputDir=.' + #13 +
        str+ ';Compression=lzma/ultra' + #13 +
        str+ ';InternalCompressLevel=ultra' + #13 +
        str+ ';SolidCompression=yes' + #13#13 +
        str+ '[ Code]' + #13;
  SaveStringToFile(ScriptName, str, False);
  ShellExec('open', ScriptName,  '', '', SW_SHOWNORMAL, ewNoWait, ResultCode);
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
   if CurStep = ssDone then
   example_script;
end;

-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.


Отправлено: 14:33, 31-01-2009

 

Аватара для Dr.Dark

Старожил


Сообщения: 224
Благодарности: 15

Профиль | Отправить PM | Цитировать


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

-------
Спасение утопающих-дело рук самих утопающих.


Отправлено: 22:42, 31-01-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 1133
Благодарности: 581

Профиль | Отправить PM | Цитировать


Dr.Dark, я спрашивал, как этот код написать на Delphi...
В коде осуществляется создание текстового файла с расширением .iss, т.е. example.iss. Также есть проверка, если в папке файл с таким именем существует, то добавить к имени [1] и так далее, т.е. example[1].iss.
А писать не лень, если бы знал как, я бы здесь не спрашивал...

-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.


Отправлено: 23:06, 31-01-2009 | #3


Ветеран


Сообщения: 1133
Благодарности: 581

Профиль | Отправить PM | Цитировать


Здравствуйте, написал код, приложение консольное, всё работает нормально, но при открытии созданного файла мелькает консольное окно. Возможно ли сделать, чтоб консольное окно не мелькало? Запускаю текстовый файл, такой командой:
ShellExecute (0, PChar('open'), Pchar(Script), nil, nil, SW_HIDE);

-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.


Отправлено: 07:33, 02-02-2009 | #4


Вредитель


Сообщения: 460
Благодарности: 126

Профиль | Отправить PM | Цитировать


Serega_, удалите {$APPTYPE CONSOLE}

-------
Все сказаное является только моим личным мнением.

Это сообщение посчитали полезным следующие участники:

Отправлено: 13:28, 02-02-2009 | #5


Ветеран


Сообщения: 1133
Благодарности: 581

Профиль | Отправить PM | Цитировать


DedAlex, Огромное спасибо!!!

-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.


Отправлено: 13:35, 02-02-2009 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - Помощь в написании примера

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
MSFT SQL Server - [решено] Помощь в написании SQL запроса для базы maxon-86 Программирование и базы данных 4 20-01-2010 09:17
[решено] Ошибка при выполнении примера из справки Poliuritan AutoIt 3 01-09-2009 19:15
Любой язык - [архив] Нужна помощь в написании BAT | CMD | VBS | WSH файлов 0bject Скриптовые языки администрирования Windows 614 19-01-2009 21:58
Нужна снова ваша помощь в написании интересного скрипта Magnus Вебмастеру 2 09-06-2005 20:26
Нужна помощь в написании скрипта Magnus Вебмастеру 7 06-05-2005 10:53




 
Переход