Jump to content
Korean Random
EvilAlex

Создание инсталляторов для модпаков на базе Inno Setup

Recommended Posts

 

Можно.

 

Покажи как создан этот лейбл.

 

 

Никак. Я.Диск с некоторых пор перестал поддерживать прямой доступ к серверу.

 

только прямая ссылка 

файлообменики не помогут 

 

спс. И ещё вот например я зашёл на сайт. мне нужно кинуть просто ссылку или что то сделать что бы скачивался тот файл который нужен. Например зашёл на сайт , а там несколько ссылок на программу, но они сделаны в виде надписи (для примера вот этот сайт http://qiqer.ru/emulyatory-java-dlya-zapuska-na-kompyutere.html)

Edited by Prost

Share this post


Link to post

Short link
Share on other sites

Например зашёл на сайт , а там 5 ссылок на программу, но они сделаны в виде надписи

Хз, как в других браузерах, но в мозилле есть удобный инспектор, в котором можно легко вытащить ссылки:

post-16412-0-94180800-1418488715_thumb.jpg

post-16412-0-39512800-1418488723_thumb.jpg

 

 

файлообменики не помогут
Помогут, но не все. Edited by Kotyarko_O

Share this post


Link to post

Short link
Share on other sites

Хз, как в других браузерах, но в мозилле есть удобный инспектор, в котором можно легко вытащить ссылки:

у меня яндекс браузер. здесь есть что то типа этого но "Просмотреть код элемента". Нужно посмотреть код(ссылку) из той кнопки которая сделана ссылкой? 

Share this post


Link to post

Short link
Share on other sites

Нужно посмотреть код(ссылку) из той кнопки которая сделана ссылкой? 

Ну а что ещё?

Share this post


Link to post

Short link
Share on other sites

Покажи как создан этот лейбл.

 

лейбл создан так

MainLabel:= TLabel.Create(WizardForm);
with MainLabel do
begin
Left:= ScaleX(100);
Top:= ScaleY(120);
Width:= ScaleX(800);
Height:= ScaleY(100);
AutoSize:= false;
Transparent:= true;
WordWrap:= true;
Font.Name:='Micra';
Font.Size:= 18;
Font.Color:=1244407;
Font.Style := [fsBold];
Parent:= WizardForm;
OnMouseDown:=@LabelOnMouseDown;
Caption:= ExpandConstant('{cm:Welcome1}');
end; 

 

и сама надпись здесь

[CustomMessages]
rus.Welcome1=Вас приветствует мастер установки «MEDNIKs MODPACK» для патча 0.9.5

Share this post


Link to post

Short link
Share on other sites
Что за ошибка? вроде ссылка правильная

А с чего ты взял, что ругается на ссылку?

Ресурс (idp.iss) вообще подключён?

Edited by Kotyarko_O

Share this post


Link to post

Short link
Share on other sites

А с чего ты взял, что ругается на ссылку?

Ресурс (idp.iss) вообще подключён?

вот это?

procedure ITD_Cancel;

external 'itd_cancel@files:itdownload.dll stdcall';

 

procedure ITD_ClearFiles;

external 'itd_clearfiles@files:itdownload.dll stdcall';

 

function ITD_DownloadFile(url: PChar; destfilename: PChar): integer;

external 'itd_downloadfile@files:itdownload.dll stdcall';

 

function ITD_GetResultLen: integer;

external 'itd_getresultlen@files:itdownload.dll stdcall';

 

procedure ITD_GetResultString(buffer: pchar; maxlen: integer);

external 'itd_getresultstring@files:itdownload.dll stdcall';

 

procedure ITD_Internal_InitUI(HostHwnd: dword);

external 'itd_initui@files:itdownload.dll stdcall';

 

function ITD_Internal_LoadStrings(filename: PChar): boolean;

external 'itd_loadstrings@files:itdownload.dll stdcall';

 

procedure ITD_Internal_SetOption(option, value: PChar);

external 'itd_setoption@files:itdownload.dll stdcall';

 

function ITD_Internal_GetFileSize(url: pchar; var size: Cardinal): boolean;

external 'itd_getfilesize@files:itdownload.dll stdcall';

 

function ITD_Internal_GetString(index: integer): boolean;

external 'itd_getstring@files:itdownload.dll stdcall';

 

function ITD_Internal_GetOption(option: PChar; buffer: PChar; length: integer): integer;

external 'itd_getoption@files:itdownload.dll stdcall';

 

procedure ITD_Internal_SetString(index: integer; value: PChar);

external 'itd_setstring@files:itdownload.dll stdcall';

 

procedure ITD_Internal_AddFile(url: PChar; destfilename: PChar);

external 'itd_addfile@files:itdownload.dll stdcall';

 

procedure ITD_Internal_AddMirror(url: PChar; destfilename: PChar);

external 'itd_addmirror@files:itdownload.dll stdcall';

 

procedure ITD_Internal_AddFileSize(url: PChar; destfilename: PChar; size: integer);

external 'itd_addfilesize@files:itdownload.dll stdcall';

 

function ITD_Internal_DownloadFiles(surface: hwnd): integer;

external 'itd_downloadfiles@files:itdownload.dll stdcall';

 

function ITD_FileCount: integer;

external 'itd_filecount@files:itdownload.dll stdcall';

 

function ITD_Internal_PostPage(url, buffer: PChar; length: integer): boolean;

external 'itd_postpage@files:itdownload.dll stdcall';

 

 

const

ITDERR_SUCCESS = 0;

ITDERR_USERCANCEL = 1;

ITDERR_ERROR = 3;

 

{Constants for Language String indexes:}

ITDS_DownloadFailed = 104;

 

ITDS_TitleCaption = 200;

ITDS_TitleDescription = 201;

 

ITDS_MessageFailRetryContinue = 250;

ITDS_MessageFailRetry = 251;

 

ITDS_Retry = 502;

 

{Constants for language strings of updater example}

ITDS_Update_Caption = 600;

ITDS_Update_Description = 601;

ITDS_Update_Checking = 602;

ITDS_Update_NewAvailable = 603;

ITDS_Update_NoNewAvailable = 604;

ITDS_Update_WantToCheck = 605;

ITDS_Update_Failed = 606;

ITDS_Update_WillLaunch = 607;

ITDS_Update_WillLaunchWithPath = 608;

 

ITD_Event_DownloadPageEntered = 1;

ITD_Event_DownloadPageLeft = 2;

ITD_Event_DownloadFailed = 3;

 

var

itd_allowcontinue: boolean;

itd_retryonback: boolean;

 

ITD_AfterSuccess: procedure(downloadPage: TWizardPage);

ITD_EventHandler: procedure(event: integer);

 

procedure ITD_DownloadFiles();

begin

ITD_Internal_DownloadFiles(0);

end;

 

procedure ITD_AddFile(const URL, filename: string);

begin

ITD_Internal_AddFile(URL, filename);

end;

 

procedure ITD_AddMirror(const URL, filename: string);

begin

ITD_Internal_AddMirror(URL, filename);

end;

 

procedure ITD_AddFileSize(const URL, filename: string; size: integer);

begin

ITD_Internal_AddFileSize(URL, filename, size);

end;

 

function ITD_HandleSkipPage(sender: TWizardPage): boolean;

begin

result := (itd_filecount = 0);

end;

 

procedure ITD_SetString(index: integer; value: string);

begin

itd_internal_setstring(index, value);

end;

 

function ITD_GetFileSize(const url: string; var size: cardinal): boolean;

begin

result := itd_internal_getfilesize(PChar(url), size);

end;

 

function ITD_LoadStrings(const filename: string): boolean;

begin

result := itd_internal_loadstrings(filename);

end;

 

function ITD_GetString(index: integer): string;

begin

itd_internal_getstring(index);

setlength(result, ITD_GetResultLen);

ITD_GetResultString(PChar(result), length(result));

end;

 

procedure ITD_NowDoDownload(sender: TWizardPage);

var err: integer;

begin

wizardform.backbutton.enabled := false;

wizardform.nextbutton.enabled := false;

 

sender.caption := ITD_GetString(ITDS_TitleCaption);

sender.description := ITD_GetString(ITDS_TitleDescription);

 

err := ITD_Internal_DownloadFiles(sender.surface.handle);

 

case err of

ITDERR_SUCCESS: begin

wizardform.nextbutton.enabled := true;

wizardform.nextbutton.onclick(nil);

 

if itd_aftersuccess <> nil then

itd_aftersuccess(sender);

end;

ITDERR_USERCANCEL: ; //Don't show a message, this happens on setup close and cancel click

else begin

//Some unexpected error, like connection interrupted

wizardform.backbutton.caption := ITD_GetString(ITDS_Retry);

wizardform.backbutton.enabled := true;

wizardform.backbutton.show();

itd_retryonback := true;

 

wizardform.nextbutton.enabled := itd_allowcontinue;

 

if ITD_EventHandler <> nil then

ITD_EventHandler(ITD_Event_DownloadFailed);

 

if itd_allowcontinue then begin //Download failed, we can retry, continue, or exit

sender.caption := ITD_GetString(ITDS_DownloadFailed);

sender.description := ITD_GetString(ITDS_MessageFailRetryContinue);

 

MsgBox(ITD_GetString(ITDS_MessageFailRetryContinue), mbError, MB_OK)

end else begin //Download failed, we must retry or exit setup

sender.caption := ITD_GetString(ITDS_DownloadFailed);

sender.description := ITD_GetString(ITDS_MessageFailRetry);

 

MsgBox(ITD_GetString(ITDS_MessageFailRetry), mbError, MB_OK)

end;

end;

end;

end;

 

procedure ITD_HandleShowPage(sender: TWizardPage);

begin

wizardform.nextbutton.enabled := false;

wizardform.backbutton.hide();

 

if ITD_EventHandler <> nil then

ITD_EventHandler(ITD_Event_DownloadPageEntered);

 

itd_nowdodownload(sender);

end;

 

function ITD_HandleBackClick(sender: TWizardpage): boolean;

begin

result := false;

if itd_retryonback then begin

itd_retryonback := false;

wizardform.backbutton.hide();

itd_nowdodownload(sender);

end;

end;

 

function ITD_HandleNextClick(sender: TWizardpage): boolean;

begin

if ITD_EventHandler <> nil then

ITD_EventHandler(ITD_Event_DownloadPageLeft);

 

result := true;

end;

 

procedure ITD_Init;

begin

//Currently a NOP. Don't count on it in future.

end;

 

function ITD_PostPage(const url, data: string; out response: string): boolean;

begin

result := ITD_Internal_PostPage(PChar(url), PChar(data), length(data));

 

if result then begin

setlength(response, ITD_GetResultLen);

ITD_GetResultString(PChar(response), length(response));

end;

end;

 

function ITD_DownloadAfter(afterID: integer): TWizardPage;

var itd_downloadPage: TWizardPage;

begin

itd_downloadpage := CreateCustomPage(afterID, ITD_GetString(ITDS_TitleCaption), ITD_GetString(ITDS_TitleDescription));

 

itd_downloadpage.onactivate := @itd_handleshowpage;

itd_downloadpage.onshouldskippage := @itd_handleskippage;

itd_downloadpage.onbackbuttonclick := @itd_handlebackclick;

itd_downloadpage.onnextbuttonclick := @itd_handlenextclick;

 

itd_internal_initui(itd_downloadpage.surface.handle);

 

result := itd_downloadpage;

end;

 

procedure ITD_SetOption(const option, value: string);

begin

//The options which call ITD_SetString are depreciated, use ITD_SetString directly

if comparetext(option, 'UI_Caption') = 0 then

ITD_SetString(ITDS_TitleCaption, value)

else if comparetext(option, 'UI_Description') = 0 then

ITD_SetString(ITDS_TitleDescription, value)

else if comparetext(option, 'UI_FailMessage') = 0 then

ITD_SetString(ITDS_MessageFailRetry, value)

else if comparetext(option, 'UI_FailOrContinueMessage') = 0 then

ITD_SetString(ITDS_MessageFailRetryContinue, value)

else if comparetext(option, 'UI_AllowContinue') = 0 then

ITD_AllowContinue := (value = '1')

else

ITD_Internal_SetOption(option, value);

end;

 

function ITD_GetOption(const option: string): string;

begin

setlength(result, 500);

setlength(result, itd_internal_getoption(pchar(option), pchar(result), length(result)));

end;

Share this post


Link to post

Short link
Share on other sites

@Prost, ты, видимо, даже не знаешь, какая у тебя версия компилятора. Потому что ресурс ты взял для версии иной от твоей.

Edited by Kotyarko_O

Share this post


Link to post

Short link
Share on other sites

@Prost, ты, видимо, даже не знаешь, какая у тебя версия компилятора. Потому что ресурс ты взял для версии иной от твоей.

5.5.1 u

Share this post


Link to post

Short link
Share on other sites
вот так
MainLabel:= TLabel.Create(WizardForm);
with MainLabel do
begin
 ...
 Caption:= #9 + 'Вас приветствует мастер установки' + #9#9 + '«MEDNIKs MODPACK»' + #9#9 + 'для патча 0.9.5';
end; 

Приблизительно так.

5.5.1 u

Это Юникод. А ресурс ты взял от Анси.

Edited by Kotyarko_O

Share this post


Link to post

Short link
Share on other sites
MainLabel:= TLabel.Create(WizardForm);
with MainLabel do
begin
 ...
 Caption:= #9 + 'Вас приветствует мастер установки' + #9#9 + '«MEDNIKs MODPACK»' + #9#9 + 'для патча 0.9.5';
end; 

Приблизительно так.

Это Юникод. А ресурс ты взял от Анси.

 

а какая тогда мне нужна версия? такая же но анси?

Edited by Prost

Share this post


Link to post

Short link
Share on other sites

Едрить, хватит уже им помогать... :an:

Уже подумываю, если честно..

 

а какая тогда мне нужна версия? такая же но анси?

Что логичней: купить топливо под автомобиль, или автомобиль под топливо?

Edited by Kotyarko_O
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...