Павел Ишенин писал(а):3. А как это делается в Delphi?
Посмотрел как это делается в Delphi...
В Delphi класс TCheckListBox = class(TCustomListBox). Этот класс имеет свойство Columns в секции published.
А в Lazarus TCheckListBox = class(TCustomCheckListBox). Cвойство Columns наследуется от TCustomListBox.
Соответственно, в инспекторе объектов свойство Columns для объекта CheckListBox отсутствует. Поэтому,
при переносе проекта с Delphi в Lazarus значение Columns=5 (Delphi) установилось по дефолту
в Columns=0 и все CheckBox-ы выстроились в одну колонку. При этом, если CheckBox-ов много, появляется
вертикальная прокрутка (как и в Delphi). Это нормально.
Установил в Runtime CheckListBox1.Columns = 5 и получил в CheckListBox1 5 колонок. Но тут возникли следующие
проблемы:
1. Название CheckBox отображаются только в первой колонке.
2. Если CheckBox-ов много (выходят за область CheckListBox1), то при Columns > 0 в Delphi автоматически появляется
горизонтальная прокрутка. В Lazarus такой прокрутки нет. Замечу, что при Columns = 0 в Delphi и Lazarus автоматически
появляется вертикальная прокрутка.
3. Когда меняю шрифт, то в Delphi CheckBox-ы позиционируются возле названия. В Lazarus позиционирования нет и названия
накладываются друг на друга.