1. Уважаемые гости и пользователи форума.
    Администрация настоятельно рекомендует не регистрировать несколько аккаунтов для одного пользователя. При выявлении наличия мультиаккаунтов будут заблокированы все учетные записи данного пользователя.
    Аккаунты, зарегистрированные на временную почту будут также заблокированы.

DLL VCL Styles for Inno Setup 1.5.4.1

VCL стили для Inno Setup

  1. Тех. админ Администратор

    Регистрация:
    26 дек 2011
    Сообщения:
    541
    Симпатии:
    643
    Пол:
    Мужской
    Пользователь YURSHAT разместил новый ресурс:

    VCL Styles for Inno Setup - VCL стили для Inno Setup

    Узнать больше об этом ресурсе...
     
    sergey3695, Krinkels и Comancheros нравится это.
  2. Ветеран Модератор

    Регистрация:
    26 июн 2011
    Сообщения:
    1.336
    Симпатии:
    874
    поспешил я написать что все работает. у созданных форм рамку не рисует. :nea:
     
  3. Тех. админ Администратор

    Регистрация:
    26 дек 2011
    Сообщения:
    541
    Симпатии:
    643
    Пол:
    Мужской
    Хм, вроде все нормально рисуется
     

    Вложения:

    • VclStyles.rar
      Размер файла:
      677,2 КБ
      Просмотров:
      115
    sergey3695 нравится это.
  4. Ветеран Модератор

    Регистрация:
    26 июн 2011
    Сообщения:
    1.336
    Симпатии:
    874
    YURSHAT,
    Код (Text):
    1. var
    2. //  TestForm: TSetupForm;
    3.   TestForm: TForm;
    4.  
    5. procedure CreateTestForm(Sender: TObject);
    6. begin
    7.   TestForm := TForm.Create(WizardForm);
    8.   with TestForm do
    9.   begin
    10.     ClientWidth := ScaleX(400);
    11.     ClientHeight := ScaleY(80);
    12.     Position:= poScreenCenter;
    13.     Caption := 'Test Form';
    14.     ShowModal;
    15.     Free;
    16.   end;
    17. end;
    18.  
    я ж про это. // спасибо. можно и TSetupForm везде задействовать.
    Код (Text):
    1. #define AW = (Defined UNICODE) ? "W" : "A"
    2.  
    3. [Setup]
    4. AppName=VCL Styles
    5. AppVersion=1.5
    6. DefaultDirName={pf}\VCL Styles
    7. Compression=none
    8. OutputDir=.
    9.  
    10. [Languages]
    11. Name: "RU"; MessagesFile: "compiler:Languages\Russian.isl"
    12.  
    13. [Files]
    14. Source: "VclStylesinno.dll"; Flags: dontcopy
    15. Source: "Amakrits.vsf"; Flags: dontcopy
    16.  
    17. [Code]
    18. var
    19.   TestForm: TSetupForm;
    20.   Timer: TTimer;
    21.   OldProc: Longint;
    22.  
    23. procedure LoadVCLStyle(VClStyleFile: String); external 'LoadVCLStyle{#AW}@files:VclStylesinno.dll stdcall';
    24. procedure UnLoadVCLStyles; external 'UnLoadVCLStyles@files:VclStylesinno.dll stdcall';
    25.  
    26. function GetDC(hWnd: HWND): LongWord; external 'GetDC@user32 stdcall';
    27. function BitBlt(DestDC: LongWord; X, Y, Width, Height: Integer; SrcDC: LongWord; XSrc, YSrc: Integer; Rop: DWORD): BOOL; external 'BitBlt@gdi32 stdcall';
    28. function ReleaseDC(hWnd: HWND; hDC: LongWord): Integer; external 'ReleaseDC@user32.dll stdcall';
    29. function DwmIsCompositionEnabled(var pfEnabled: BOOL): Longint; external 'DwmIsCompositionEnabled@dwmapi.dll stdcall delayload';
    30.  
    31. function isWin6: boolean;var ver: TWindowsVersion;
    32. begin
    33.   GetWindowsVersionEx(ver);
    34. if (ver.Major >= 6) then result:=true
    35. else result:=false;
    36. end;
    37.  
    38. function CompositionEnabled: boolean;var r: bool;
    39. begin
    40. if isWin6 then
    41. if DwmIsCompositionEnabled(r) = 0 then
    42.   result:=r else result:=false;
    43. end;
    44.  
    45. procedure FormT(Sender: TObject);
    46. var
    47.   FormDC, DC: LongWord;
    48. begin
    49.   DC:= GetDC(TestForm.Handle);
    50.   FormDC := GetDC(WizardForm.Handle);
    51.   BitBlt(DC, 0, 0, WizardForm.ClientWidth, WizardForm.ClientHeight, FormDC, 0, 0, $00CC0020);
    52.   ReleaseDC(TestForm.Handle, DC);
    53.   ReleaseDC(WizardForm.Handle, FormDC);
    54. end;
    55.  
    56. procedure FormM(Sender: TObject);
    57. begin
    58. if CompositionEnabled then
    59.   Timer.Enabled:= false;
    60. end;
    61.  
    62. procedure FormR(Sender: TObject);
    63. begin
    64. if CompositionEnabled then
    65.   Timer.Enabled:= True;
    66. end;
    67.  
    68. const
    69.   GWL_STYLE = -16;
    70.   WS_MAXIMIZEBOX = $10000;
    71.   GWL_WNDPROC = -4;
    72.   WM_MOVE = $3;
    73.  
    74. function SetWindowLong(Wnd: HWnd; Index: Integer; NewLong: Longint): Longint; external 'SetWindowLongA@user32.dll stdcall';
    75. function GetWindowLong(Wnd: HWnd; Index: Integer): Longint; external 'GetWindowLongA@user32.dll stdcall';
    76. function CallWindowProc(lpPrevWndFunc: Longint; hWnd: HWND; Msg: UINT; wParam, lParam: Longint): Longint; external 'CallWindowProcA@user32.dll stdcall';
    77.  
    78. procedure OnCloseQuery(Sender: TObject; var CanClose: Boolean);
    79. begin
    80.   Timer.Free;
    81.   SetWindowlong(TestForm.Handle, GWL_WNDPROC, OldProc);
    82.   TestForm.Free;
    83.   CanClose:= True;
    84. end;
    85.  
    86. function InitializeSetup(): Boolean;
    87. begin
    88.   ExtractTemporaryFile('Amakrits.vsf');
    89.   LoadVCLStyle(ExpandConstant('{tmp}\Amakrits.vsf'));
    90.  
    91. if CompositionEnabled then begin
    92.   TestForm := CreateCustomForm;
    93.   with TestForm do
    94.   begin
    95.     BorderStyle:= bsSingle;
    96.     SetWindowLong(handle, GWL_STYLE, GetWindowLong(handle, GWL_STYLE)and(not WS_MAXIMIZEBOX));
    97.     Left:= -1000;
    98.     ClientWidth:= ScaleX(497);
    99.     ClientHeight:= ScaleY(363);
    100.     Caption := 'Test Form';
    101.     OnCloseQuery:= @OnCloseQuery;
    102.     Show;
    103.   end;
    104. end;
    105.   Result := True;
    106. end;
    107.  
    108. function MyProc(h: HWND; Msg, wParam, lParam: longint): Longint;
    109. begin
    110. if Msg=WM_MOVE then
    111. begin
    112.   TestForm.Left:= WizardForm.Left;
    113.   TestForm.Top:= WizardForm.Top;
    114. end;
    115.   Result:= CallWindowProc(OldProc, h, Msg, wParam, lParam);
    116. end;
    117.  
    118. procedure InitializeWizard();
    119. begin
    120. with WizardForm do
    121. begin
    122.   ClientWidth:= ScaleX(497);
    123.   ClientHeight:= ScaleY(363);
    124. end;
    125. if CompositionEnabled then begin
    126.   TestForm.Caption:= WizardForm.Caption;
    127.   TestForm.Left:= WizardForm.Left;
    128.   TestForm.Top:= WizardForm.Top;
    129.   OldProc:= SetWindowLong(WizardForm.Handle, GWL_WNDPROC, CallbackAddr('MyProc'));
    130.   Timer := TTimer.Create(MainForm);
    131. with Timer do
    132. begin
    133.   Interval:= 1;
    134.   OnTimer:=  @FormT;
    135. end;
    136.   Application.OnMinimize:= @FormM;
    137.   Application.OnRestore:= @FormR;
    138. end;
    139. end;
    140.  
    141. procedure DeinitializeSetup();
    142. begin
    143.   UnLoadVCLStyles;
    144. end;
    145.  
    Круто, с ботвой дружит, стили окна поддерживает :clapping:
     
    Последнее редактирование: 7 дек 2014
  5. Тех. админ Администратор

    Регистрация:
    26 дек 2011
    Сообщения:
    541
    Симпатии:
    643
    Пол:
    Мужской
    Да я понял, что про "это" :), только смысла использовать конкретно TFORM я не вижу ибо есть аналог...
     
    sergey3695 нравится это.
  6. Ветеран Модератор

    Регистрация:
    26 июн 2011
    Сообщения:
    1.336
    Симпатии:
    874
    На XP кнопка свернуть не всегда сворачивает форму. Добавив это будет норм.
    Код (Text):
    1.  procedure FormM(Sender: TObject);
    2. begin
    3.   WizardForm.Left:= WizardForm.Left-10000;
    4. end;
    5.  
    6. procedure FormR(Sender: TObject);
    7. begin
    8.   WizardForm.Left:= WizardForm.Left+10000;
    9. end;
    10.  
    11. //
    12. Application.OnMinimize:= @FormM;
    13.   Application.OnRestore:= @FormR;
    14.  
    У SelectLanguageForm и UninstallProgressForm рамку не рисует.
    А в остальном все супер :happy:Попрошу протестить что получилось.
     
    Последнее редактирование: 9 дек 2014
  7. Тех. админ Администратор

    Регистрация:
    26 дек 2011
    Сообщения:
    541
    Симпатии:
    643
    Пол:
    Мужской
    МБ скин такой? На скине Amakrits.vsf такого не заметил
    Есть такое. Нужно писать разрабам
     
  8. Ветеран Модератор

    Регистрация:
    26 июн 2011
    Сообщения:
    1.336
    Симпатии:
    874
    на нем смотрел. У меня Windows XP Professional SP3 VL build 2600 [Ru] UPD 18.10.2013 [Clear Чистая] (nnm) на VirtualBox стоит. Там и глядел. Сейчас возможно, ну это же виртуальная машина... но и на ней все должно быть в порядке, хотя кто его знает. Ошибка сворачивания раз из шести. Как бы установщик свернулся но форма осталась и минимизация больше не работает. Даже если я ошибся, то добавив на
    Код (Text):
    1. Application.OnMinimize:= @FormM;
    2. Application.OnRestore:= @FormR;
    убирание за экран формы ничего страшного вроде.
    твитнул.
     
    YURSHAT нравится это.
  9. Старожил

    Регистрация:
    13 фев 2012
    Сообщения:
    269
    Симпатии:
    112
    YURSHAT нравится это.
  10. Тех. админ Администратор

    Регистрация:
    26 дек 2011
    Сообщения:
    541
    Симпатии:
    643
    Пол:
    Мужской
  11. Старожил

    Регистрация:
    13 фев 2012
    Сообщения:
    269
    Симпатии:
    112
    YURSHAT нравится это.
  12. Ветеран Модератор

    Регистрация:
    26 июн 2011
    Сообщения:
    1.336
    Симпатии:
    874
    Кстати
    С последней версией
    У UninstallProgressForm рамку рисует.
    p.s. Забыл написать :D
     
    Adil нравится это.
  13. Тех. админ Администратор

    Регистрация:
    26 дек 2011
    Сообщения:
    541
    Симпатии:
    643
    Пол:
    Мужской
  14. Пользователь

    Регистрация:
    21 июн 2011
    Сообщения:
    153
    Симпатии:
    55
    Пол:
    Мужской
    Вышло обновление 1.4.1.0
     
    YURSHAT и sergey3695 нравится это.
  15. Ветеран Модератор

    Регистрация:
    26 июн 2011
    Сообщения:
    1.336
    Симпатии:
    874
    Issue 103: Vcl.Styles.Hooks - incorrect TEdit background color in some styles - fixed.
     
  16. Тех. админ Администратор

    Регистрация:
    26 дек 2011
    Сообщения:
    541
    Симпатии:
    643
    Пол:
    Мужской
  17. Ветеран Модератор

    Регистрация:
    26 июн 2011
    Сообщения:
    1.336
    Симпатии:
    874
    YURSHAT, может не ядро, а "incorrect TEdit background color in some styles" - Исправлено некорректное отображение заднего фона TEdit'а в некоторых стилях.
     
  18. Тех. админ Администратор

    Регистрация:
    26 дек 2011
    Сообщения:
    541
    Симпатии:
    643
    Пол:
    Мужской
    Это где ты увидел такое?
     
  19. Ветеран Модератор

    Регистрация:
    26 июн 2011
    Сообщения:
    1.336
    Симпатии:
    874
    Последнее редактирование: 21 янв 2015
  20. Тех. админ Администратор

    Регистрация:
    26 дек 2011
    Сообщения:
    541
    Симпатии:
    643
    Пол:
    Мужской
    Ну по ссылочке issue тоже по Delphi версии вроде. А по инновскому плагину там всего одна новая ревизия (r54) с текстом коммита про общее обновление либы. Потому не стал писать еще что-то, так как точно непонятно, что конкретно сделано.
     
    Последнее редактирование: 22 янв 2015
    sergey3695 нравится это.

Поделиться этой страницей