Вверх ↑
Этот топик читают: Гость
Ответов: 4309
Рейтинг: 670
#361: 2018-09-17 11:13:22 ЛС | профиль | цитата
kaban4ik писал(а):
Хотелось бы как то синхронизировать эти изменения.
Можно пробовать так. Сделать Checkout официального SVN в папку Delphi, только не последнюю ревизию, а ревизию, которой соответствует мой пакет для нового FPC. Удалить все содержимое папки Delphi, кроме папки .svn. Затем в папку Delphi распаковать мой пакет. Тогда последующие "SVN Update" будут обновлять пакет. Вот только новые изменения не всегда будут работать с новым компилятором - нужно будет править.

kaban4ik писал(а):
Неужели нельзя как то заставить fpc хотя бы консольные приложения скомпилировать под Linux
Вероятно, можно. Но нужна отдельная сборка компилятора, отдельный проект в окне "Новый проект". Далеко не все компоненты будут работать (использующие Windows API и KOL). Компоненты нужно будет доработать, чтобы они не использовали Windows API. Вместо полной KOL нужно сделать вырезку с общими функциями из KOL, переделанными под Linux (без визуальных компонентов, потому как всю KOL для Linux переделывать никто не будет).

Редактировалось 1 раз(а), последний 2018-09-17 11:15:00
карма: 23

0
Ответов: 201
Рейтинг: 2
#362: 2018-09-22 17:13:36 ЛС | профиль | цитата
Заметил следующий баг при отображении иконки в StringTableMT, при сборке "секретным" все хорошо (см. скриншот).


Иконки внутри StringTableMT



Add(StringTableMT,4617453,420,602)
{
Left=3
Top=51
Width=805
Height=325
Columns=#16:Параметры=200==0|16:ВЭУ-1 осн=100==0|16:ВУЭ-2 осн=100==0|16:ВЭУ-3 осн=100==0|16:ВЭУ-1 рез=100==0|16:ВЭУ-2 рез=100==0|16:ВЭУ-3 рез=100==0|
TabGrid=0
ImgColumn=0
AssignedIList=0
IconsCheck=[]
MiscIcons=[]
Icons=['no'=[ZIP4604000078DA75D3CF4B147118C7F18F26B2592CACD80FF4E27A580257D6BDD8C91F1D4B03A74BA59DF250DE764044FB03542CCC3965A0B75CF052AE5A474D0DB2D3B2E6414413490FE5C1E9878A78787A2F96CEA5EFC0C00CBC3EDFE7F9CE335241FE2A10F7906A8BA4CB92AE29FF2C15EAE4FDFF969949A184146E95CA5252F9B0543929C5B252DC57A4DE94BC6B725C93FBD4E48D9B3273A6DC9A9DD8FC2AC7D7E01BF10EBE03DF8D1FC08FE0D3F869FC3C3E8BDFC0EF067C1CDF8C7F8CEFC38FE317F15BF83DFC0FFC2FFC3EFE107F843F0EF844546ABD2EA55AA4E10E69B257CA3E97FCB42236A3A4CDCAB125B9F6599EAD2B633BCA991FF061FC557C153E8EAFC337E16FE1DBF12EBE1F3F869FC27FC26F9EFA42CA2FA2FC62CA0F517E09E55FA0FCB0CF515AA9EA2DA97673D44BCE88797A6B19AD58EED497E1ABF0B5F87A7C0BFE3EFE11BEC7221AC48FE25FE3DFE397F1DB011FC337E1DBF05DF821FC047E019FC3AFE2BFE0BFE2BFE1F7F007019F88D1FE0DDA6FA7FD2EDA1FA2FD09DA5F643E9623B2D5A46CC3916DBBB2EF9ECCCFC80E02BE0CCFD1A56AF10DF8DB78B2FC4E7C2F7E103F867F839FC72FE37702FE1C9EB94D15E3CFE34BF017F17C16AB2C9535E01FE09FE05FE0DFE157025E61B5EA8A528A6A58D59A549DB26A92AF9BB2489B2C9992397D327754E64DC9324BB2DC66C057E2EBF02DF887F81EFC10FE157E1A3F8BFF88674F6F1DBF833F9B9F3809CD247492D04FC238091F48D822C18F987E264DBF1DD301FFD0A1673ACA988E7367F35B81AFC137E2EFE03BF0DDF801FC4B7C1A3F835FC067F1EBF8DD800FFD3D814BF80A7C141FC3C7F10DF87B7817FF0C9FC6CFE1D7FEF991EA683EE30F0E8583AF],'ok'=[ZIP7E04000078DABD934D4B025118856F14B42C110C37126D8C411085201291C15414113F97421BB58D82201A582422D8A64D1005411411514D14117D6E8216AD9A55411045B4994510FD83B77B26070C86A145E470E4CE799F472EE31DC67AF83538C8F8F7309BEE63CCC2181BE5E1156FBEFBFFFA98AA2681A7C923F3502772A7138C5CF38C39373437A438979D34B93749E9CBB41AACD1610646CFB5CC5A72230B2314D80FA84EEA2245C9F3A41AACD16106066CB76B9DB70AB6964D091F86553E7612A3E871F447D06106062C1CCDE7F74DCFA6871267090A1D84C8BFEBD70D6660C0C2D17CBE27397395A1A014A4898D09C380010B47F3ED8B76757FE3EBE3E45E751B060C58389AEF5872A8FBC26FC74FE394BDC952412E50E9A1A4066B749881010B47F35D2B2E397F97A7CA5385AACF55C380010B47F3C7D6C69AF87FEA6FF55F052C1CCDE7CF45F06DFB94E27D911A4AC33060C0C2E93E03DE2D6F2E7214A1F263995AEF2DDD600606ACDE191477C41C7F3ECAD4ED14D55E6AD4FE68ABC11A1D66608CDE017E4E049E268FDC7576E44E27FCF5FB4A24899F0392F8DA2F89D7BD92D8E8310E18B070E07E0163D995CC],'read'=[ZIP7E04000078DABD93CF2B83711CC7BF7E94B4C96ACDC5C5497A4E6E0E5C7675F607B8AC76752007A14589A4383870508A8D49A4263F166965A3C70EB4A2F9954CCF78C856346B6FDFF7B69EACD693833C4FAFA76F9FCFEB757A9E47880A79DB6C423E9B84BB5A880621448B448EE4A430FFB7ABCFA7483C125582226A71A698B6FDAB2E31B89110F351884012E2140578E68C3B3AE5AE817557E54410B5DB1AACA759584FBE608964F2F0CC197774E896B4439B4AE56820E1D8D3D010F9803D9486FDE8BD1439E38E0E5D36463F12F038BC313485A5137C817D472B0B7774E8B231FAB15DB52DF28AC67D0D968D7B53E8D06563F49307680DE9B0ACDF41F8E2A6D0A1CBC6E8A743E808EB68D97F42FBB18EAE8B34DC3719F43EE6F2F0CC197774E8B231FAD913B5E73285A9E71C66749842872E1BA39F3BF3741E3E6025855F41978DD12F9C2B754BB1C4F86D0AC14F9842872E9B926F6031E66ADEBAC1EC431AD12CCAC21D1DBA65BFC1E52B976DED3AD1AD26E14D7E200EE4E19933EEE898FE03BEB822F148D41FEF4D2DCE94BFFE5D01BFF3ADDEEFBCADF13B0FAAFCCEE10A73E8D065C3F61B4086F65C],'error'=[ZIP7E04000078DABD93CF2B04711887BF222ECAE6606FA2D46E2369FD6C6B0F3B892294C88F68D56A420E1CE42069CDC56173709193938BDA3FC21FA0294AC9418A5A2922CCC636FBF17E76776AD53639C84ECFF6ED7D9F67A7B619A52AE4F2F9947C37A9A52AA51A94524141463229CCFFEDD37CA609A66009286215679A575AD96219D581F3B43F7C8FC0E01B3A26908767CEB8A353AEAD095E18BED035B4E137744FE504075D930578E68C3B3A744BDBDAB64BCD17BA4AB78FBDA377262BCDA7DCF7279C7147872E1BB7AFEFBC3683438F08CFD2B5F34E39B8A343978DDBFBC33796BE9091FD87EC5E3DA143978DDB3746EF1089D9F23FBDA0B9EFD9133A74D9B87DCBC083FCA68D9EE97744E3364656BF30BDE92096C8E5E19933EEE8D065E3F6AD234FD6DC7616CB496065CF1B3A74D9B87D68FCD51C5DCB60FD00BF822E1BB7EF9DB1B5482C935E4E3AD83A822774E8B2297D0622B14F6370E50BABFB0ECC6394853B3A74CB3D83D1B863F42F3AE9F99D1C360E81DD93023C73C61D1DAF77A0CF8026988225A088559C697FFDBA0229FDA52EA5DFD6A4F4D3CA949EA8F0860E5D366CBF01AF28C640],'re'=[ZIP7E04000078DABD93CB6AC2401885475AE8B2AEBAEEB2E42DF230813E46C953880BD18D8244DCB871A1144114918164E70DEA8D88F1D2204244E2DF39690652084317A5911387F37F1F849984B18CF865B34CDC9FD9EB3D634F8CB117115189E6BBFFAF2B97CB6922A60817A1383CEE34959BCFE78D62B1E8B6DB6D1A8FC774381CA2608D0E3330696EA150306AB51A8D4623DAED76E4791E6DB7DB2858A3C30C0CD8A45B2A95B44AA5E24E2613DA6C36B45AAD68B158FC083ACCC0808523FD72B96CF6FB7D5AAFD7349BCDA2E74D0B6660C0C2917EB55AE5CBE592A6D329398EA30C18B070A45FAFD7693E9F936DDB341C0E950103168EF41B8D46D4E119F18F3DF37D9FCEE77314ACD1251938D26F369B1CF32008E872B92803062C1CE9B75A2D136773BD5E7F15B070A4DFE974B45EAFE7EEF77B0AC350193060E124DF816EB76B606F8EC723DD6EB7D46006066CDA3B38180C0CCEB98BFD399D4E242FACD1610646F50D8833D2444C119E38371E77DA5F7FAF4496FEF968E91F0F96FE7E67E96F1975C0808503F70BA0C6693F]]
Point(Matrix)
Point(doMT_Add)
Point(doMT_ImageCol)
Point(doRefresh)
}


карма: 0

0
Ответов: 4309
Рейтинг: 670
#363: 2018-09-22 23:30:57 ЛС | профиль | цитата
Скопировал твой код в новую схему в официальном HiAsm - выглядит так:

Что я сделал неправильно? В модифицированном пакете - аналогично, с любым компилятором.
карма: 23

0
Ответов: 201
Рейтинг: 2
#364: 2018-09-25 17:00:24 ЛС | профиль | цитата
Прошу прощения, вот полный пример проблемы

Пример

Add(MainForm,2953706,28,84)
{
Width=831
Height=418
}
Add(StringTableMT,4617453,497,91)
{
Left=3
Top=51
Width=805
Height=325
Columns=#16:Параметры=200==0|16:ВЭУ-1 осн=100==0|16:ВУЭ-2 осн=100==0|16:ВЭУ-3 осн=100==0|16:ВЭУ-1 рез=100==0|16:ВЭУ-2 рез=100==0|16:ВЭУ-3 рез=100==0|
TabGrid=0
ImgColumn=0
AssignedIList=0
IconsCheck=[]
MiscIcons=[]
Icons=['no'=[ZIP4604000078DA75D3CF4B147118C7F18F26B2592CACD80FF4E27A580257D6BDD8C91F1D4B03A74BA59DF250DE764044FB03542CCC3965A0B75CF052AE5A474D0DB2D3B2E6414413490FE5C1E9878A78787A2F96CEA5EFC0C00CBC3EDFE7F9CE335241FE2A10F7906A8BA4CB92AE29FF2C15EAE4FDFF969949A184146E95CA5252F9B0543929C5B252DC57A4DE94BC6B725C93FBD4E48D9B3273A6DC9A9DD8FC2AC7D7E01BF10EBE03DF8D1FC08FE0D3F869FC3C3E8BDFC0EF067C1CDF8C7F8CEFC38FE317F15BF83DFC0FFC2FFC3EFE107F843F0EF844546ABD2EA55AA4E10E69B257CA3E97FCB42236A3A4CDCAB125B9F6599EAD2B633BCA991FF061FC557C153E8EAFC337E16FE1DBF12EBE1F3F869FC27FC26F9EFA42CA2FA2FC62CA0F517E09E55FA0FCB0CF515AA9EA2DA97673D44BCE88797A6B19AD58EED497E1ABF0B5F87A7C0BFE3EFE11BEC7221AC48FE25FE3DFE397F1DB011FC337E1DBF05DF821FC047E019FC3AFE2BFE0BFE2BFE1F7F007019F88D1FE0DDA6FA7FD2EDA1FA2FD09DA5F643E9623B2D5A46CC3916DBBB2EF9ECCCFC80E02BE0CCFD1A56AF10DF8DB78B2FC4E7C2F7E103F867F839FC72FE37702FE1C9EB94D15E3CFE34BF017F17C16AB2C9535E01FE09FE05FE0DFE157025E61B5EA8A528A6A58D59A549DB26A92AF9BB2489B2C9992397D327754E64DC9324BB2DC66C057E2EBF02DF887F81EFC10FE157E1A3F8BFF88674F6F1DBF833F9B9F3809CD247492D04FC238091F48D822C18F987E264DBF1DD301FFD0A1673ACA988E7367F35B81AFC137E2EFE03BF0DDF801FC4B7C1A3F835FC067F1EBF8DD800FFD3D814BF80A7C141FC3C7F10DF87B7817FF0C9FC6CFE1D7FEF991EA683EE30F0E8583AF],'ok'=[ZIP7E04000078DABD934D4B025118856F14B42C110C37126D8C411085201291C15414113F97421BB58D82201A582422D8A64D1005411411514D14117D6E8216AD9A55411045B4994510FD83B77B26070C86A145E470E4CE799F472EE31DC67AF83538C8F8F7309BEE63CCC2181BE5E1156FBEFBFFFA98AA2681A7C923F3502772A7138C5CF38C39373437A438979D34B93749E9CBB41AACD1610646CFB5CC5A72230B2314D80FA84EEA2245C9F3A41AACD16106066CB76B9DB70AB6964D091F86553E7612A3E871F447D06106062C1CCDE7F74DCFA6871267090A1D84C8BFEBD70D6660C0C2D17CBE27397395A1A014A4898D09C380010B47F3ED8B76757FE3EBE3E45E751B060C58389AEF5872A8FBC26FC74FE394BDC952412E50E9A1A4066B749881010B47F35D2B2E397F97A7CA5385AACF55C380010B47F3C7D6C69AF87FEA6FF55F052C1CCDE7CF45F06DFB94E27D911A4AC33060C0C2E93E03DE2D6F2E7214A1F263995AEF2DDD600606ACDE191477C41C7F3ECAD4ED14D55E6AD4FE68ABC11A1D66608CDE017E4E049E268FDC7576E44E27FCF5FB4A24899F0392F8DA2F89D7BD92D8E8310E18B070E07E0163D995CC],'read'=[ZIP7E04000078DABD93CF2B83711CC7BF7E94B4C96ACDC5C5497A4E6E0E5C7675F607B8AC76752007A14589A4383870508A8D49A4263F166965A3C70EB4A2F9954CCF78C856346B6FDFF7B69EACD693833C4FAFA76F9FCFEB757A9E47880A79DB6C423E9B84BB5A880621448B448EE4A430FFB7ABCFA7483C125582226A71A698B6FDAB2E31B89110F351884012E2140578E68C3B3AE5AE817557E54410B5DB1AACA759584FBE608964F2F0CC197774E896B4439B4AE56820E1D8D3D010F9803D9486FDE8BD1439E38E0E5D36463F12F038BC313485A5137C817D472B0B7774E8B231FAB15DB52DF28AC67D0D968D7B53E8D06563F49307680DE9B0ACDF41F8E2A6D0A1CBC6E8A743E808EB68D97F42FBB18EAE8B34DC3719F43EE6F2F0CC197774E8B231FAD913B5E73285A9E71C66749842872E1BA39F3BF3741E3E6025855F41978DD12F9C2B754BB1C4F86D0AC14F9842872E9B926F6031E66ADEBAC1EC431AD12CCAC21D1DBA65BFC1E52B976DED3AD1AD26E14D7E200EE4E19933EEE898FE03BEB822F148D41FEF4D2DCE94BFFE5D01BFF3ADDEEFBCADF13B0FAAFCCEE10A73E8D065C3F61B4086F65C],'error'=[ZIP7E04000078DABD93CF2B04711887BF222ECAE6606FA2D46E2369FD6C6B0F3B892294C88F68D56A420E1CE42069CDC56173709193938BDA3FC21FA0294AC9418A5A2922CCC636FBF17E76776AD53639C84ECFF6ED7D9F67A7B619A52AE4F2F9947C37A9A52AA51A94524141463229CCFFEDD37CA609A66009286215679A575AD96219D581F3B43F7C8FC0E01B3A26908767CEB8A353AEAD095E18BED035B4E137744FE504075D930578E68C3B3A744BDBDAB64BCD17BA4AB78FBDA377262BCDA7DCF7279C7147872E1BB7AFEFBC3683438F08CFD2B5F34E39B8A343978DDBFBC33796BE9091FD87EC5E3DA143978DDB3746EF1089D9F23FBDA0B9EFD9133A74D9B87DCBC083FCA68D9EE97744E3364656BF30BDE92096C8E5E19933EEE8D065E3F6AD234FD6DC7616CB496065CF1B3A74D9B87D68FCD51C5DCB60FD00BF822E1BB7EF9DB1B5482C935E4E3AD83A822774E8B2297D0622B14F6370E50BABFB0ECC6394853B3A74CB3D83D1B863F42F3AE9F99D1C360E81DD93023C73C61D1DAF77A0CF8026988225A088559C697FFDBA0229FDA52EA5DFD6A4F4D3CA949EA8F0860E5D366CBF01AF28C640],'re'=[ZIP7E04000078DABD93CB6AC2401885475AE8B2AEBAEEB2E42DF230813E46C953880BD18D8244DCB871A1144114918164E70DEA8D88F1D2204244E2DF39690652084317A5911387F37F1F849984B18CF865B34CDC9FD9EB3D634F8CB117115189E6BBFFAF2B97CB6922A60817A1383CEE34959BCFE78D62B1E8B6DB6D1A8FC774381CA2608D0E3330696EA150306AB51A8D4623DAED76E4791E6DB7DB2858A3C30C0CD8A45B2A95B44AA5E24E2613DA6C36B45AAD68B158FC083ACCC0808523FD72B96CF6FB7D5AAFD7349BCDA2E74D0B6660C0C2917EB55AE5CBE592A6D329398EA30C18B070A45FAFD7693E9F936DDB341C0E950103168EF41B8D46D4E119F18F3DF37D9FCEE77314ACD1251938D26F369B1CF32008E872B92803062C1CE9B75A2D136773BD5E7F15B070A4DFE974B45EAFE7EEF77B0AC350193060E124DF816EB76B606F8EC723DD6EB7D46006066CDA3B38180C0CCEB98BFD399D4E242FACD1610646F50D8833D2444C119E38371E77DA5F7FAF4496FEF968E91F0F96FE7E67E96F1975C0808503F70BA0C6693F]]
Point(Matrix)
Point(doMT_Add)
Point(doMT_ImageCol)
Point(doRefresh)
}
Add(UpDown,6551239,175,84)
{
Left=65
Top=20
Hint="Id"
Max=7
link(onPosition,12932051:doEvent1,[])
}
Add(UpDown,3270665,168,189)
{
Left=150
Top=20
Hint="Icons"
Max=4
link(onPosition,8266570:doEvent1,[])
}
Add(Edit,13803365,119,84)
{
Left=15
Top=20
Text="0"
link(onChange,6551239:doPosition,[])
}
Add(Edit,2853270,112,189)
{
Left=100
Top=20
Text="0"
link(onChange,3270665:doPosition,[])
}
Add(MT_AddData,1726335,427,133)
{
link(onAdd,4617453:doMT_ImageCol,[])
link(Data1,6551239osition,[(433,125)(181,125)])
link(Data2,3270665osition,[(440,121)(307,121)(307,233)(174,233)])
}
Add(Hub,12932051,238,84)
{
link(onEvent1,13803365:doText2,[(320,90)(320,165)(102,165)(102,97)])
link(onEvent2,1370562:doEvent1,[(298,97)(298,139)])
}
Add(Hub,8266570,238,189)
{
link(onEvent1,2853270:doText2,[(291,195)(291,266)(100,266)(100,202)])
link(onEvent2,1370562:doEvent2,[(298,202)(298,146)])
}
Add(Hub,1370562,343,133)
{
InCount=2
OutCount=1
link(onEvent1,1726335:doAdd,[])
}

карма: 0

0
Ответов: 4309
Рейтинг: 670
#365: 2018-09-25 17:31:20 ЛС | профиль | цитата
Выглядит так же как прежняя: вместо иконок в заголовке белые квадратики.

Блин, схему в тег code выкладывать надо
Разбираюсь...

Редактировалось 2 раз(а), последний 2018-09-25 17:36:39
карма: 23

0
Ответов: 4309
Рейтинг: 670
#366: 2018-09-26 14:28:22 ЛС | профиль | цитата
Итак. В существующих KOL имеем функцию создания ImageList:
KOL.NewImageList


function NewImageList( AOwner: PControl ): PImageList;
begin
{*************} DoInitCommonControls( ICC_WIN95_CLASSES );

Result := TImageList.Create;
Result.FAllocBy := 1;
Result.FMasked := True;
if AOwner = nil then exit;

Result.FControl := AOwner;
Result.fNext := PImageList( AOwner.fImageList );
if AOwner.fImageList <> nil then
PImageList( AOwner.fImageList ).fPrev := Result;
Result.fBkColor := clNone;
//ImageList_SetBkColor( Result.FHandle, CLR_NONE );
AOwner.fImageList := Result;
Result.FImgWidth := 32;
Result.FImgHeight := 32;
Result.FColors := ilcDefault;
end;

Вопросы:
1) Какое значение будет у свойства ImageList.Colors, если вызвать функцию NewImageList() с параметром AOwner
- равным nil
- не равным nil

2) Чему равно поле Control в процедуре ThiStringTableMT.SetIcons (и в остальных, где вызывается NewImageList) файла hiStringTableMT.pas
ThiStringTableMT.SetIcons


procedure ThiStringTableMT.SetIcons;
var i:integer;
begin
if not FAssignedIList then exit;
IList:= NewImageList(Control);
if FImgsize = 0 then FImgsize:= GetSystemMetrics(SM_CXICON);
SetIListProp;
for i:= 0 to Value.Count - 1 do IList.AddIcon(Value.Objects[i]);
end;

3) А кто угадает почему в описании свойства Bitmaps компонента TabControl написано "16-цветные рисунки"?

Редактировалось 5 раз(а), последний 2018-09-26 14:31:34
карма: 23

0
Ответов: 201
Рейтинг: 2
#367: 2018-09-28 13:16:54 ЛС | профиль | цитата
Если вопрос ко мне то я не знаю ответа , я так понимаю можно использовать только 16 цветные иконки .
карма: 0

0
Ответов: 4309
Рейтинг: 670
#368: 2018-09-28 13:40:04 ЛС | профиль | цитата
Вопрос к разработчикам, конечно, как повод порассуждать над таким положением дел и принять какие-то решения. А уже от этого будет зависеть способ решения твоей проблемы.

Редактировалось 1 раз(а), последний 2018-09-28 13:43:15
карма: 23

0
Ответов: 4639
Рейтинг: 513
#369: 2018-09-28 19:20:38 ЛС | профиль | цитата
Netspirit писал(а):

3) А кто угадает почему в описании свойства Bitmaps компонента TabControl написано "16-цветные рисунки"?

там ещё и стили толком не работают
scr_demo.png
тест - http://forum.hiasm.com/getfile/38481
карма: 6

0
Разработчик
Ответов: 25656
Рейтинг: 2085
#370: 2018-09-28 22:03:00 ЛС | профиль | цитата
Netspirit писал(а):
Итак

К чему ты задал эти вопросы, ты же прекрасно все сам видишь?
карма: 19

0
Ответов: 4309
Рейтинг: 670
#371: 2018-09-29 14:44:54 ЛС | профиль | цитата
Чтобы и ты увидел. Исправлять будешь?

Ответы:
1) Если AOwner=nil, то строка "Result.FColors := ilcDefault;" не выполнится и TImageList.Colors будет инициализировано 0, что соответствует ilcColor. Система в этом случае, как я понимаю, применяет 24-битный цвет (или 256 цветов?).
Тогда как автор KOL, вероятно, хотел, чтобы там таки было ilcDefault, что и произойдет в случае AOwner<>nil. Налицо ошибка в NewImageList(), которая была исправлена в новой версии KOL. А поскольку при ilcDefault система подставляет 4-битный цвет, то картинка получается как и представил kaban4ik.
Так как у нас забили на официальные обновления KOL, то исправлять KOL никто не будет.

2) Поле Control инициализируется в методе ThiStringTableMT.Init, а этот метод вызывается после заполнения всех свойств, то-есть, после ThiStringTableMT.SetIcons. В методе SetIcons Control всегда равен nil, поэтому NewImageList(Control) не имеет смысла и запутывает код.
Нужно заменить в двух местах NewImageList(Control) на NewImageList(nil) (а также в файле hiTreeView.pas). Текущий функционал компонента не изменится.

3) В файле hiTabControl.pas для свойства Bitmaps создаётся ImageList как NewImageList(Applet). А переменная Applet в этот момент не равна nil. Благодаря описанному в (1) баге у созданого здесь ImageList свойство Colors=ilcDefault, то-есть, 4-битный цвет, то-есть "16-цветные рисунки". Автор кода не разобрался в причине этого.
Нужно сделать "ImgLst := NewImageList(nil)" и в деструкторе добавить ImgLst.Free.
Получим полноцветные значки в TabControl.

Я проверил в TabControl - если поставить ImgLst.Colors := ilcColor32 и добавить в приложение компонент StyleXP, то можно использовать качественные 32-битные битмапы с полупрозрачностью.
Следовательно, есть возможность использовать значки с полупрозрачностью во всех компонентах, где используется ImageList. Для этого:
- добавить ImgLst.Colors := ilcColor32 во всех местах, где вызывается NewImageList
или
- переделать все свойства типа "массив иконок" или "массив битмапов" в компонентах на использование менеджера IconsManager. А в IconsManager добавить свойство Colors с выбором цветности.
Кроме того, можно создать компонент BitmapList аналогично IconsManager, чтобы можно было пользоваться не только иконками, но и битмапами. Вместо нового компонента можно добавить 2 свойства в IconsManager: Type=[Icon, Bitmap] и Bitmaps=массив битмапов. Тогда в этом компоненте можно на выбор использовать иконки или битмапы.

Редактировалось 1 раз(а), последний 2018-09-29 14:46:30
карма: 23

0
Ответов: 4639
Рейтинг: 513
#372: 2018-09-29 16:03:25 ЛС | профиль | цитата
Будте готовы к тому что ImageList в control=disabled будет рисовать страшные картинки.
Тут либо Kol править либо наследника делать со всеми вытекающими.
В классической теме в меню иконки только 16х16
карма: 6

0
Ответов: 4309
Рейтинг: 670
#373: 2018-09-29 18:24:04 ЛС | профиль | цитата
TabControl с 32-битными битмапами:

(Добавлено ImgLst.Colors := ilcColor32, ImgLst.AddMasked() заменено на ImgLst.Add())
Сделал Enabled=False (если речь об этом) - разницы не заметил.

Кстати, делать это в цикле нет никакого смысла:
ImgLst.ImgWidth := 16;
ImgLst.ImgHeight := 16;


Редактировалось 2 раз(а), последний 2018-09-29 18:31:10
карма: 23

0
Ответов: 4639
Рейтинг: 513
#374: 2018-09-29 19:14:10 ЛС | профиль | цитата
Netspirit, в меню(классический стиль винды) и в толбаре точно проявляется.
Чёт не очень красиво рисует. Иконки в каком формате?
карма: 6

0
Разработчик
Ответов: 25656
Рейтинг: 2085
#375: 2018-09-29 21:38:36 ЛС | профиль | цитата
Netspirit писал(а):
Исправлять будешь

А конкретные исправления можно законченным, проверенным кодом выложить, а не тезисами?
карма: 19

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)