Ekspoint Posted June 22, 2016 Share Posted June 22, 2016 Как сделать оформление как у PROtankiдля начала прочти всю тему @ Quote Link to comment Short link Share on other sites More sharing options...
Kotyarko_O Posted June 23, 2016 Share Posted June 23, 2016 Как сделать оформление как у PROtanki Берёшь фотошоп, китайскую версию инно (или официальную, но чекЛистБоксы делаешь через ботву), саму ботву... И работаешь. Непонятно, что я написал? - Тогда берёшь примеры инно, читаешь форумы и изучаешь. @ Quote Link to comment Short link Share on other sites More sharing options...
Ekspoint Posted June 23, 2016 Share Posted June 23, 2016 Ну или короткий ответ выше :) @ Quote Link to comment Short link Share on other sites More sharing options...
Lom Posted June 23, 2016 Share Posted June 23, 2016 Ну или короткий ответ выше :) уж лучше всё это вместе)) @ Quote Link to comment Short link Share on other sites More sharing options...
Lom Posted June 25, 2016 Share Posted June 25, 2016 (edited) народ подскажите если не трудно как в данном скрипте увеличить окно установщика ? ту картинку что появляется до открытия установщика могу сделать и больше и меньше а вот сам установщик в размерах ну никак не могу. ;#define Video [Setup] AppName=My Program AppVersion=1.5 DefaultDirName={pf}\My Program WizardImageFile=Fon.bmp OutputBaseFilename=2 [Files] Source: compiler:Dll Pack\IsPicture_for_all.dll; Flags: dontcopy Source: Fon.bmp; Flags: dontcopy #ifdef Video Source: XVID\fon.avi; Flags: dontcopy #endif [Code] //----------------------------------------- procedure Initialize(AhWnd,BhWnd:hWnd);external 'Initialize@{tmp}\IsPicture_for_all.dll stdcall delayload'; // Здесь указываем хендлы окон, на данный момент, лучше пока указывать // WizardForm.Handle - первым и MainForm.Handle вторым. //----------------------------------------- procedure XvidVideo(fn:String;Seth:string);external 'XvidVideo@{tmp}\IsPicture_for_all.dll stdcall delayload'; // Эта процедура загружает фоновое avi-видео. // Seth - задаем координаты через пробел в одинарных кавычках // пример: XvidVideo(ExpandConstant('{tmp}\fon.avi'), '351 201 236 132'); //----------------------------------------- procedure Deinitialize;external 'Deinitialize@{tmp}\IsPicture_for_all.dll stdcall delayload'; // отменяет свзывание форм между собой, выгружает видео. //----------------------------------------- function NewFont(Height:Integer;thickness,italic,underline,strikeout:DWORD;name:String):hWnd;external 'NewFont@{tmp}\IsPicture_for_all.dll stdcall delayload'; // Создает шрифты для замены стандартных. Необходима для борьбя с артефактами сглаживания. // Height, // высота шрифта // thickness, // насыщенность шрифта // italic, // курсив // underline, // Подчеркнутый // strikeout, // Зачеркнутый // name // имя шрифта //----------------------------------------- procedure SplashWnd(FileName:PAnsiChar;Time,width,height:Integer);external 'SplashWnd@{tmp}\IsPicture_for_all.dll stdcall delayload'; // Создает Splash-заставку // Прозрачность, пока, не поддерживается // FileName, // имя файла // Time, // скорость появления в миллисекундах // width, // ширина // height, // высота procedure EndSplash(Time1,Time2:Integer);external 'EndSplash@{tmp}\IsPicture_for_all.dll stdcall delayload'; // Закрываем Splash-заставку // Time1, // выжидание до закрытия в миллисекундах // Time, // скорость закрытия в миллисекундах //----------------------------------------- //----------------------------------------- function GetSystemMetrics(nIndex:Integer):integer; external '[email protected] stdcall delayload'; const TfonColor = $000008; // Цвет фона $000008 - не изменять! TfontColor = $ffffff; // Цвет тeкста #ifdef Video #include "XVID\xvid.iss" #endif #include "WizardFormResise.iss" Var Font1,Font2:hWnd; function InitializeSetup(): Boolean; begin ExtractTemporaryFile('IsPicture_for_all.dll'); ExtractTemporaryFile('fon.bmp'); SplashWnd(ExpandConstant('{tmp}\fon.bmp'),1500,ScaleX(600),ScaleY(420)); #ifdef Video XvidInstall; ExtractTemporaryFile('fon.avi'); #endif EndSplash(1500,1000); Result:=True; end; procedure InitializeWizard(); begin Font1:= NewFont(16,600,0,0,0,'Comic Sans MS'); Font2:= NewFont(24,900,0,0,0,'Tahoma'); #ifdef Video if CanUseXvid then begin WizardForm.AutoScroll := False; WizardForm.ClientWidth:= ScaleX(600); WizardForm.ClientHeight:=ScaleY(420); WizardForm.Center; end WizardFormResise; #endif WizardForm.WizardSmallBitmapImage.Hide; WizardForm.WizardBitmapImage2.Hide; WizardForm.DirEdit.AutoSelect:=False; //----------------------------------------- //----------------------------------------- //---------------// не изменять!\\---------------\\ // задаем цвет всем элементам,которые нам нужны. WizardForm.WelcomePage.Color:=TfonColor;// не изменять! WizardForm.FinishedPage.Color:=TfonColor; WizardForm.InnerPage.Color:=TfonColor; WizardForm.DirEdit.Color:=TfonColor; WizardForm.ReadyMemo.Color:=TfonColor; WizardForm.MainPanel.Color:=TfonColor; //---------------// не изменять!\\---------------\\ //----------------------------------------- //----------------------------------------- //---------------//Применяем шрифт\\---------------\\ WizardForm.Font.Handle:=Font1; WizardForm.WelcomeLabel1.Font.Handle := Font2; WizardForm.FinishedHeadingLabel.Font.Handle := Font2; WizardForm.PageNameLabel.Font.Handle := Font1; WizardForm.Font.Color:=TfontColor; //---------------//Применяем шрифт\\---------------\\ //----------------------------------------- //----------------------------------------- // Приделываем прозрачность к SelectDirBitmapImage // иначе, придется любоваться на красивый серый // квадратик вокруг изображения папки :) WizardForm.SelectDirBitmapImage.BackColor := clNone; WizardForm.SelectDirBitmapImage.ReplaceColor := clBtnFace; //----------------------------------------- // скрываем изображение с финишной страницы WizardForm.WizardBitmapImage.Parent := MainForm; WizardForm.WizardBitmapImage.SetBounds(0, 0, WizardForm.ClientWidth, WizardForm.ClientHeight); //----------------------------------------- //----------------------------------------- // Запускаем в работу все, что приготовили: // указываем формы, с которыми будет работать длл-ка, //----------------------------------------- Initialize(WizardForm.Handle,MainForm.Handle); //----------------------------------------- // мультимедийные возможности - Фоновое видео //----------------------------------------- #ifdef Video if CanUseXvid then XvidVideo(ExpandConstant('{tmp}\fon.avi'), '351 201 236 132'); #endif //----------------------------------------- end; procedure DeinitializeSetup(); begin //----------------------------------------- // Не забываем про Deinitialize // если не хотим разнообразных ошибок при выходе. //----------------------------------------- Deinitialize; //----------------------------------------- #ifdef Video XvidUnInstall; #endif end; Edited June 25, 2016 by ЛОМ @ Quote Link to comment Short link Share on other sites More sharing options...
Nowik1971 Posted June 25, 2016 Share Posted June 25, 2016 народ подскажите если не трудно как в данном скрипте увеличить окно установщика ? ту картинку что появляется до открытия установщика могу сделать и больше и меньше а вот сам установщик в размерах ну никак не могу. ;#define Video [Setup] AppName=My Program AppVersion=1.5 DefaultDirName={pf}\My Program WizardImageFile=Fon.bmp OutputBaseFilename=2 [Files] Source: compiler:Dll Pack\IsPicture_for_all.dll; Flags: dontcopy Source: Fon.bmp; Flags: dontcopy #ifdef Video Source: XVID\fon.avi; Flags: dontcopy #endif [Code] //----------------------------------------- procedure Initialize(AhWnd,BhWnd:hWnd);external 'Initialize@{tmp}\IsPicture_for_all.dll stdcall delayload'; // Здесь указываем хендлы окон, на данный момент, лучше пока указывать // WizardForm.Handle - первым и MainForm.Handle вторым. //----------------------------------------- procedure XvidVideo(fn:String;Seth:string);external 'XvidVideo@{tmp}\IsPicture_for_all.dll stdcall delayload'; // Эта процедура загружает фоновое avi-видео. // Seth - задаем координаты через пробел в одинарных кавычках // пример: XvidVideo(ExpandConstant('{tmp}\fon.avi'), '351 201 236 132'); //----------------------------------------- procedure Deinitialize;external 'Deinitialize@{tmp}\IsPicture_for_all.dll stdcall delayload'; // отменяет свзывание форм между собой, выгружает видео. //----------------------------------------- function NewFont(Height:Integer;thickness,italic,underline,strikeout:DWORD;name:String):hWnd;external 'NewFont@{tmp}\IsPicture_for_all.dll stdcall delayload'; // Создает шрифты для замены стандартных. Необходима для борьбя с артефактами сглаживания. // Height, // высота шрифта // thickness, // насыщенность шрифта // italic, // курсив // underline, // Подчеркнутый // strikeout, // Зачеркнутый // name // имя шрифта //----------------------------------------- procedure SplashWnd(FileName:PAnsiChar;Time,width,height:Integer);external 'SplashWnd@{tmp}\IsPicture_for_all.dll stdcall delayload'; // Создает Splash-заставку // Прозрачность, пока, не поддерживается // FileName, // имя файла // Time, // скорость появления в миллисекундах // width, // ширина // height, // высота procedure EndSplash(Time1,Time2:Integer);external 'EndSplash@{tmp}\IsPicture_for_all.dll stdcall delayload'; // Закрываем Splash-заставку // Time1, // выжидание до закрытия в миллисекундах // Time, // скорость закрытия в миллисекундах //----------------------------------------- //----------------------------------------- function GetSystemMetrics(nIndex:Integer):integer; external '[email protected] stdcall delayload'; const TfonColor = $000008; // Цвет фона $000008 - не изменять! TfontColor = $ffffff; // Цвет тeкста #ifdef Video #include "XVID\xvid.iss" #endif #include "WizardFormResise.iss" Var Font1,Font2:hWnd; function InitializeSetup(): Boolean; begin ExtractTemporaryFile('IsPicture_for_all.dll'); ExtractTemporaryFile('fon.bmp'); SplashWnd(ExpandConstant('{tmp}\fon.bmp'),1500,ScaleX(600),ScaleY(420)); #ifdef Video XvidInstall; ExtractTemporaryFile('fon.avi'); #endif EndSplash(1500,1000); Result:=True; end; procedure InitializeWizard(); begin Font1:= NewFont(16,600,0,0,0,'Comic Sans MS'); Font2:= NewFont(24,900,0,0,0,'Tahoma'); #ifdef Video if CanUseXvid then begin WizardForm.AutoScroll := False; WizardForm.ClientWidth:= ScaleX(600); WizardForm.ClientHeight:=ScaleY(420); WizardForm.Center; end WizardFormResise; #endif WizardForm.WizardSmallBitmapImage.Hide; WizardForm.WizardBitmapImage2.Hide; WizardForm.DirEdit.AutoSelect:=False; //----------------------------------------- //----------------------------------------- //---------------// не изменять!\\---------------\\ // задаем цвет всем элементам,которые нам нужны. WizardForm.WelcomePage.Color:=TfonColor;// не изменять! WizardForm.FinishedPage.Color:=TfonColor; WizardForm.InnerPage.Color:=TfonColor; WizardForm.DirEdit.Color:=TfonColor; WizardForm.ReadyMemo.Color:=TfonColor; WizardForm.MainPanel.Color:=TfonColor; //---------------// не изменять!\\---------------\\ //----------------------------------------- //----------------------------------------- //---------------//Применяем шрифт\\---------------\\ WizardForm.Font.Handle:=Font1; WizardForm.WelcomeLabel1.Font.Handle := Font2; WizardForm.FinishedHeadingLabel.Font.Handle := Font2; WizardForm.PageNameLabel.Font.Handle := Font1; WizardForm.Font.Color:=TfontColor; //---------------//Применяем шрифт\\---------------\\ //----------------------------------------- //----------------------------------------- // Приделываем прозрачность к SelectDirBitmapImage // иначе, придется любоваться на красивый серый // квадратик вокруг изображения папки :) WizardForm.SelectDirBitmapImage.BackColor := clNone; WizardForm.SelectDirBitmapImage.ReplaceColor := clBtnFace; //----------------------------------------- // скрываем изображение с финишной страницы WizardForm.WizardBitmapImage.Parent := MainForm; WizardForm.WizardBitmapImage.SetBounds(0, 0, WizardForm.ClientWidth, WizardForm.ClientHeight); //----------------------------------------- //----------------------------------------- // Запускаем в работу все, что приготовили: // указываем формы, с которыми будет работать длл-ка, //----------------------------------------- Initialize(WizardForm.Handle,MainForm.Handle); //----------------------------------------- // мультимедийные возможности - Фоновое видео //----------------------------------------- #ifdef Video if CanUseXvid then XvidVideo(ExpandConstant('{tmp}\fon.avi'), '351 201 236 132'); #endif //----------------------------------------- end; procedure DeinitializeSetup(); begin //----------------------------------------- // Не забываем про Deinitialize // если не хотим разнообразных ошибок при выходе. //----------------------------------------- Deinitialize; //----------------------------------------- #ifdef Video XvidUnInstall; #endif end; Через встроенный редактор формы в Инно все делается растягивается и сжимается вся форма и что в ней! 1 @ Quote Link to comment Short link Share on other sites More sharing options...
Lom Posted June 28, 2016 Share Posted June 28, 2016 (edited) кто нибудь может объяснить про скины? в скачанном "Inno Setup 5" в папке " Dll Examples \ IsSkinEx [3.0.0.2] " есть скрипт " Example " ну это пример это понятно. после того как компильнешь его в папке "Output" появляется соответствующий инсталлятор. но почему когда заменяешь " Tiger.cjstyles " на любой другой ничего не работает? просто появляется стандартный инстал. я в этом скрипте везде и названия менял и местами все менял ничего не помогает. в чем проблема подскажите пожалуйста если не трудно) вот сам скрипт #ifdef UNICODE #define A "W" #define SKinDll "ISSkinExW.dll" #else #define A "A" #define SKinDll "ISSkinExA.dll" #endif #define SKin "Tiger.cjstyles" #define SKinIni "NormalBlack.ini" [Setup] AppName=My prog AppVerName=My prog DefaultDirName={pf}\My prog [Files] Source: compiler:Dll Pack\{#SKinDll}; DestDir: {app}; Flags: ignoreversion Source: {#SKin}; DestDir: {app}; Flags: ignoreversion [code] function ShowWindow(hWnd: Integer; uType: Integer): Integer; external '[email protected] stdcall'; procedure LoadSkin(lpszPath, lpszIniFileName: string); external 'LoadSkin@{tmp}\{#SKinDll} stdcall delayload setuponly'; procedure UnloadSkin(); external 'UnloadSkin@{tmp}\{#SKinDll} stdcall delayload setuponly'; procedure LoadSkinU(lpszPath, lpszIniFileName: string); external 'LoadSkin@{tmp}\{#SKinDll} stdcall delayload uninstallonly'; procedure UnloadSkinU(); external 'UnloadSkin@{tmp}\{#SKinDll} stdcall delayload uninstallonly'; function InitializeSetup(): Boolean; begin ExtractTemporaryFile('{#SKinDll}'); ExtractTemporaryFile('{#SKin}'); LoadSkin(ExpandConstant('{tmp}\{#SKin}'), '{#SKinIni}'); Result:=True; end; procedure DeinitializeSetup(); begin UnloadSkin; WizardForm.Free; end; function InitializeUninstall(): Boolean; begin FileCopy(ExpandConstant('{app}\{#SKinDll}'), ExpandConstant('{tmp}\{#SKinDll}'), False); FileCopy(ExpandConstant('{app}\{#SKin}'), ExpandConstant('{tmp}\{#SKin}'), False); LoadSkinU(ExpandConstant('{tmp}\{#SKin}'), '{#SKinIni}'); DeleteFile(ExpandConstant('{app}\{#SKinDll}')); DeleteFile(ExpandConstant('{app}\{#SKin}')); Result:=True; end; procedure DeinitializeUninstall(); begin UnloadSkinU; end; Edited June 28, 2016 by ЛОМ @ Quote Link to comment Short link Share on other sites More sharing options...
AtotIK Posted June 28, 2016 Share Posted June 28, 2016 #define SKinIni "NormalBlack.ini" В каждом стиле внутри свой "конфиг". @ Quote Link to comment Short link Share on other sites More sharing options...
Lom Posted June 28, 2016 Share Posted June 28, 2016 #define SKinIni "NormalBlack.ini" В каждом стиле внутри свой "конфиг". а где этот конфиг? даже в этом примере ( как видно по фотке что я выложил выше ) в этой папке нет файла с расширением .ini ? кроме того что он просто написан в конфиге. @ Quote Link to comment Short link Share on other sites More sharing options...
akey Posted June 29, 2016 Share Posted June 29, 2016 а где этот конфиг? даже в этом примере ( как видно по фотке что я выложил выше ) в этой папке нет файла с расширением .ini ? кроме того что он просто написан в конфиге. Антивирь мог скушать. P.S. В ветке есть примеры использования других шаблонов с другой библиотекой под inno. И самое главное, как сказал Kotyarko_O, поставьте китайскую расширенную версию инно, иначе многие возможности многих скриптов у Вас по просту не будут работать. @ Quote Link to comment Short link Share on other sites More sharing options...
Lom Posted June 29, 2016 Share Posted June 29, 2016 (edited) Антивирь мог скушать. P.S. В ветке есть примеры использования других шаблонов с другой библиотекой под inno. И самое главное, как сказал Kotyarko_O, поставьте китайскую расширенную версию инно, иначе многие возможности многих скриптов у Вас по просту не будут работать. китайская расширенная эта та что тут в начале форума выложена да? она то у меня и стоит))) а антивиря у меня давно нет))) просто как я понял сами скины в нём и не работают)) Edited February 2, 2017 by ЛОМ @ Quote Link to comment Short link Share on other sites More sharing options...
AtotIK Posted June 29, 2016 Share Posted June 29, 2016 Внутри стиля лежат. @ Quote Link to comment Short link Share on other sites More sharing options...
Lom Posted June 29, 2016 Share Posted June 29, 2016 (edited) Внутри стиля лежат. я что то не вижу их)) или я не там смотрю)) но ни одного файла с расширением ini. ни в той что на фотке ни в других папках что на фотке нет))) Edited June 29, 2016 by ЛОМ @ Quote Link to comment Short link Share on other sites More sharing options...
Kotyarko_O Posted June 29, 2016 Share Posted June 29, 2016 (edited) @ЛОМ, можно использовать скины и без ини-конфига. 'Код:' #define SKinDll "ISSkinExW.dll" #define SKin "Tiger.cjstyles" [Setup] AppName=My prog AppVerName=My prog DefaultDirName={pf}\My prog [Files] Source: {#SKinDll}; DestDir: {app}; Flags: ignoreversion Source: {#SKin}; DestDir: {app}; Flags: ignoreversion [Code] Procedure LoadSkin(lpszPath, lpszIniFileName: string); external 'LoadSkin@files:{#SKinDll} stdcall delayload setuponly'; Procedure UnloadSkin(); external 'UnloadSkin@files:{#SKinDll} stdcall delayload setuponly'; Procedure LoadSkinU(lpszPath, lpszIniFileName: string); external 'LoadSkin@{tmp}\{#SKinDll} stdcall delayload uninstallonly'; Procedure UnloadSkinU(); external 'UnloadSkin@{tmp}\{#SKinDll} stdcall delayload uninstallonly'; Function InitializeSetup(): Boolean; begin ExtractTemporaryFile('{#SKin}'); LoadSkin(ExpandConstant('{tmp}\{#SKin}'), ''); Result := True; end; Procedure DeinitializeSetup(); begin UnloadSkin(); WizardForm.Free; end; Function InitializeUninstall(): Boolean; begin FileCopy(ExpandConstant('{app}\{#SKinDll}'), ExpandConstant('{tmp}\{#SKinDll}'), False); FileCopy(ExpandConstant('{app}\{#SKin}'), ExpandConstant('{tmp}\{#SKin}'), False); LoadSkinU(ExpandConstant('{tmp}\{#SKin}'), ''); DeleteFile(ExpandConstant('{app}\{#SKinDll}')); DeleteFile(ExpandConstant('{app}\{#SKin}')); Result:=True; end; Procedure DeinitializeUninstall(); begin UnloadSkinU(); end; При этом используйте IsSkinEx, а не IsSkin.И не стоит использовать скин в деинсталляторе - он там нафиг не нужен. Edited June 29, 2016 by Kotyarko_O 1 @ Quote Link to comment Short link Share on other sites More sharing options...
Lom Posted June 29, 2016 Share Posted June 29, 2016 (edited) @ЛОМ, можно использовать скины и без ини-конфига. 'Код:' #define SKinDll "ISSkinExW.dll" #define SKin "Tiger.cjstyles" [Setup] AppName=My prog AppVerName=My prog DefaultDirName={pf}\My prog [Files] Source: {#SKinDll}; DestDir: {app}; Flags: ignoreversion Source: {#SKin}; DestDir: {app}; Flags: ignoreversion [Code] Procedure LoadSkin(lpszPath, lpszIniFileName: string); external 'LoadSkin@files:{#SKinDll} stdcall delayload setuponly'; Procedure UnloadSkin(); external 'UnloadSkin@files:{#SKinDll} stdcall delayload setuponly'; Procedure LoadSkinU(lpszPath, lpszIniFileName: string); external 'LoadSkin@{tmp}\{#SKinDll} stdcall delayload uninstallonly'; Procedure UnloadSkinU(); external 'UnloadSkin@{tmp}\{#SKinDll} stdcall delayload uninstallonly'; Function InitializeSetup(): Boolean; begin ExtractTemporaryFile('{#SKin}'); LoadSkin(ExpandConstant('{tmp}\{#SKin}'), ''); Result := True; end; Procedure DeinitializeSetup(); begin UnloadSkin(); WizardForm.Free; end; Function InitializeUninstall(): Boolean; begin FileCopy(ExpandConstant('{app}\{#SKinDll}'), ExpandConstant('{tmp}\{#SKinDll}'), False); FileCopy(ExpandConstant('{app}\{#SKin}'), ExpandConstant('{tmp}\{#SKin}'), False); LoadSkinU(ExpandConstant('{tmp}\{#SKin}'), ''); DeleteFile(ExpandConstant('{app}\{#SKinDll}')); DeleteFile(ExpandConstant('{app}\{#SKin}')); Result:=True; end; Procedure DeinitializeUninstall(); begin UnloadSkinU(); end; При этом используйте IsSkinEx, а не IsSkin.И не стоит использовать скин в деинсталляторе - он там нафиг не нужен. СПАСИБО!!! да просто интересно было почему не работает ( хотя для начинающих вроде меня для инсталлятора можно ведь пользовать?! )))) КАК только попробовал твой скрипт всё заработало!!! там который пример скрипта ваще не пашет! а с твоим только так!!! еще раз СПАСИБО!!! ))) Edited June 29, 2016 by ЛОМ @ Quote Link to comment Short link Share on other sites More sharing options...
AtotIK Posted June 29, 2016 Share Posted June 29, 2016 я не там смотрю Внутри файла. Хотя уже всё равно. 1 @ Quote Link to comment Short link Share on other sites More sharing options...
Lom Posted June 29, 2016 Share Posted June 29, 2016 елки палки!! никак не могу найти. ведь было же где то. подскажите как сделать в установщике две страницы с выбором [Components]. слишком много на одну страницу. @ Quote Link to comment Short link Share on other sites More sharing options...
Nowik1971 Posted June 30, 2016 Share Posted June 30, 2016 (edited) ЛОМ, on 30 Jun 2016 - 02:27, said:елки палки!! никак не могу найти. ведь было же где то. подскажите как сделать в установщике две страницы с выбором [Components]. слишком много на одну страницу. В теме есть это и обсуждалось.... Edited June 30, 2016 by Nowik1971 @ Quote Link to comment Short link Share on other sites More sharing options...
Lom Posted June 30, 2016 Share Posted June 30, 2016 В теме есть это и обсуждалось.... знаю! просто не помню где же это точно было)) вот терь с начала читаю всё))) @ Quote Link to comment Short link Share on other sites More sharing options...
Kotyarko_O Posted June 30, 2016 Share Posted June 30, 2016 вот терь с начала читаю всё) Учитесь пользоваться поиском.Всего-то нужно подумать над ключом поиска. Например, могут подойти: TNewCheckListBox, AddCheckBox \ AddRadionButton. @ Quote Link to comment Short link Share on other sites More sharing options...
Recommended Posts
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.