Metro 2033

Скрипт Metro 2033 1.13

Нет прав для скачивания

Nemko

Дилетант
Модератор
Информация:
Автор скрипта: Kosako + я немного
Графика: Интернет + я
  • Is Done
  • Bass
  • Botva2
  • ISgsg.dll (Splesh)
  • Может заменить Autorun на диске
Описание:
Скрипт на основе скрипта Two Worlds II + ISDone 1.1 (http://krinkels.org/resources/two-worlds-ii-isdone.70/).
Background-min.png
 
Последнее редактирование:

Nemko

Дилетант
Модератор

South

Знаток
Проверенный
пару замечаний
1. на обычной инно 5.5.5(u) нет сплэша. ошибка в описании процедуры ShowSplashScreen(p1:HWND;p2:pAnsiChar, второй параметр PAnsiChar, а не string
2. еще в LoadImage второй параметр пришлось править с PChar, на PAnsiChar
надо дописать, чтобы в анси и юникод версиях нормально запускалось
3. фрэйм и основная форма делятся на границе прозрачного/полупрозрачного (коряво, но думаю поймешь) пикселя, поэтому видна лесенка на стыке форм. добавь к фрэйму пару пикселей от основной картинки, тогда лесенки не должно быть видно. одна форма будет накрывать другую на пару пикселей. непрозрачных
4. в качестве придирки. кнопки на форме выхода из инсталла не стилизованы
5. ну, чтобы совсем добить. красные кнопки на красном фоне. не сразу заметил их :)


ЗЫ а так красиво получилось
 

Nemko

Дилетант
Модератор
Пользователь Nemko обновил ресурс Metro 2033 новой записью:

Metro 2033 1.11

  • Добавил тип A и W (AnsiChar\PAnsiChar,)
  • За подсказку решения проблемы с Frame спасибо South
  • Устранил проблему когда при нажатии на кнопку "Назад", Frame накладывался поверх окна установки
  • Стилизовать кнопки мне оказалось не по силе :( (чтобы все работало с botva2 и isdone)
  • Красные кнопки остались красными, но фон за ними стал менее контрастней
Узнать больше об этом обновлении...
 

Nemko

Дилетант
Модератор
Может кто-то знает как решить проблему данного скрипта на Windows 8 ? Я буду очень благодарен за помощь.
 

Carlos

Участник
Модератор
Дома пробовал на компьютере Windows 10 x64 скрипт работает прекрасно.
На нетбуке Windows 10 x64 Корпоратив тоже всё прекрасно
 

SBalykov

Старожил
Nemko,
После добавления своего шрифта и завершения установки, желательно выгружать его из системы пользователя, да и вообще, "подтирать" за собой следы ...
Код:
procedure DeInitializeSetup();
begin
if IsCustomFontInstalled then
if RemoveFontResource(PAnsiChar(ExpandConstant('{tmp}')+'\{#Font}')) then SendMessage(HWND_BROADCAST,$1D,0,0);
end;
 

Nemko

Дилетант
Модератор
После добавления своего шрифта и завершения установки, желательно выгружать его из системы пользователя, да и вообще, "подтирать" за собой следы ...
SBalykov, вы правы по поводу следов, но вроде в процедуре WFDeInit уже есть эти строки.
 
Последнее редактирование:

SBalykov

Старожил
SBalykov, ты прав по поводу следов, но вроде в процедуре WFDeInit уже есть эти строки.
Есть то оно есть, вот только не совсем, как бы это выразиться, корректо ...
Script.iss:
Код:
procedure DeinitializeSetup;
begin
WFDeInit;
gdipShutDown;
end;
Window.iss:
Код:
procedure WFDeInit;
begin
BASS_Stop;
BASS_Free;
BtnFont.Free;
Frame.Free;
WizardForm.Free;
if IsCustomFontInstalled then
if RemoveFontResource(ExpandConstant('{tmp}')+'\{#Font}') then SendMessage($FFFF,$1D,0,0);
end;
И зачем лишние библиотеки в Description.iss:
Код:
function WndProcCallBack(P:TCallbackProc;ParamCount:integer):LongWord; external 'wrapcallbackaddr@{tmp}\CallbackCtrl.dll stdcall delayload';
Когда вполне можно обойтись и без нее.
Frame.iss:
Код:
procedure CreateFrame;
begin
Frame:=TForm.Create(nil);;
Frame.BorderStyle:=bsNone;
CreateFormFromImage(Frame.Handle,ExpandConstant('{tmp}\frame.png'));
with TLabel.Create(Frame) do begin
Parent:= Frame;
AutoSize:= False;
Left:=0; // настройка frame по левому краю 126
Top:=0; // настройка frame по верхнему краю 45
Width:= Frame.CLientWidth;
Height:= Frame.ClientHeight;
OnMouseDown:= @FrameMouseDown;
end;
WizardForm.Left:= Frame.Left+0; // настройка frame по левому краю +126
WizardForm.Top:= Frame.Top+0; // настройка frame по верхнему краю +45

WFOldProc:= SetWindowLong(WizardForm.Handle,-4,CallbackAddr('WFProc')); // WndProcCallBack(@WFProc,4));
// Frame.Hide;
end;
Шибко в дебри не лез, так как не люблю я эти модульные конструкции, но на вскидку - мусора хватает ...
 
Последнее редактирование:

Nemko

Дилетант
Модератор
Пользователь Nemko обновил ресурс Metro 2033 новой записью:

Metro 2033 1.12

  • Оптимизирован код (спасибо SBalykov)
  • Добавлены стилизованные кнопки и поддержка botva2 для меню выхода
  • Налажена работа закрытие формы (спасибо примеру YURSHAT), откат ISDone при отмене (спасибо примеру vint56)
  • Доработана маска и тень (Frame)
  • Установлены границы для DirEdit (их не было :D)
Узнать больше об этом обновлении...
 
Последнее редактирование:

Nemko

Дилетант
Модератор
У Вас есть идеи, чёт я приуныл не знаю пока в чём проблема :pardon:.
У меня нормально все Windows 7 Ultimate
 

Nemko

Дилетант
Модератор
А что если попробовать добавить это
Код:
procedure WizardFormOnMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
    ReleaseCapture;
    SendMessage(WizardForm.Handle,$0112,$F012,0);
    ImgApplyChanges(WizardForm.Handle);
end;
 
Сверху