Приветствую всех, может сможете помочь.
Такой вопрос: как изменить высоту поля ввода комбобокса KOL без изменения размера шрифта?
Делаю программу в HiAsm (использует библиотеку KOL; я в программировании новичок и кодом владею слабо, поэтому выбор в тот момент пал на HiAsm), на этапе допиливания дизайна столкнулся с тем, что нужно изменить высоту комбобокса, а его высота по-умолчанию зависит от размера шрифта и отдельно не меняется.
По HiAsm/KOL решения пока не нашел, в Lazarus и Delphi суть в том что нужно поменять стиль комбобокса на какой-нибудь из OwnerDraw и ItemHeight на нужное значение, скажем 14.
В интерфейсе HiAsm управления свойствами типа Style и ItemHeight нет, но можно добавить inline code, чтобы задать нужные свойства комбобокса. Сам я с написанием нужного кода в данном случае не справился.
Если по KOL неизвестно, может сможете показать пример полноразмерного участка кода, со всей процедурой и пр. кода для FreePascal/Дельфи для задания Style и ItemHeight, или иным способом изменения высоты поля ввода комбобокса, буду признателен, попробую его портировать.
Заранее спасибо.
[KOL] Своя высота Combobox
Модератор: Модераторы
По умолчанию - это не изменяемое поле. При попытке изменить его, должно возвращаться в первоначальный вариант.
Попробуйте программно изменить свойство Heigth. (не уверен, что это возможно).
Попробуйте программно изменить свойство Heigth. (не уверен, что это возможно).
Это фича winapi, высота комбобокса не регулируется, а определяется настройками "темы" и размером шрифта.
В LCL достаточно установить стиль в овнердрав и назначить высоту элемента
ЕМНИП даже рисовать самостоятельно комбик ненадо, при отсутствии назначеных процедур отрисовки будут работать штатные. в гтк\куте все работает без этих "особенностей"
С кол несталкивался, но похоже тебе надо нагуглить вариант установки данных стилей средствами winapi (GetWindowLong/SetWindowLong)
В LCL достаточно установить стиль в овнердрав и назначить высоту элемента
Код: Выделить всё
AComboBox.Style:=csOwnerDrawFixed;//csOwnerDrawEditableFixed - для возможности редактирования как в TEdit
AComboBox.ItemHeight:=ItemH;ЕМНИП даже рисовать самостоятельно комбик ненадо, при отсутствии назначеных процедур отрисовки будут работать штатные. в гтк\куте все работает без этих "особенностей"
С кол несталкивался, но похоже тебе надо нагуглить вариант установки данных стилей средствами winapi (GetWindowLong/SetWindowLong)
