[KOL] Своя высота Combobox

Вопросы использования сторонних (не входящих в состав FPC и Lazarus) утилит и библиотек.

Модератор: Модераторы

[KOL] Своя высота Combobox

Сообщение VaV » 13.03.2021 21:58:42

Приветствую всех, может сможете помочь.
Такой вопрос: как изменить высоту поля ввода комбобокса KOL без изменения размера шрифта?
Делаю программу в HiAsm (использует библиотеку KOL; я в программировании новичок и кодом владею слабо, поэтому выбор в тот момент пал на HiAsm), на этапе допиливания дизайна столкнулся с тем, что нужно изменить высоту комбобокса, а его высота по-умолчанию зависит от размера шрифта и отдельно не меняется.
По HiAsm/KOL решения пока не нашел, в Lazarus и Delphi суть в том что нужно поменять стиль комбобокса на какой-нибудь из OwnerDraw и ItemHeight на нужное значение, скажем 14.
В интерфейсе HiAsm управления свойствами типа Style и ItemHeight нет, но можно добавить inline code, чтобы задать нужные свойства комбобокса. Сам я с написанием нужного кода в данном случае не справился.
Если по KOL неизвестно, может сможете показать пример полноразмерного участка кода, со всей процедурой и пр. кода для FreePascal/Дельфи для задания Style и ItemHeight, или иным способом изменения высоты поля ввода комбобокса, буду признателен, попробую его портировать.

Заранее спасибо.
VaV
незнакомец
 
Сообщения: 1
Зарегистрирован: 13.03.2021 21:39:51

Re: [KOL] Своя высота Combobox

Сообщение Seenkao » 15.03.2021 01:25:57

По умолчанию - это не изменяемое поле. При попытке изменить его, должно возвращаться в первоначальный вариант.

Попробуйте программно изменить свойство Heigth. (не уверен, что это возможно).
Seenkao
постоялец
 
Сообщения: 246
Зарегистрирован: 01.04.2020 03:37:12

Re: [KOL] Своя высота Combobox

Сообщение zub » 15.03.2021 08:18:01

Это фича winapi, высота комбобокса не регулируется, а определяется настройками "темы" и размером шрифта.
В LCL достаточно установить стиль в овнердрав и назначить высоту элемента
Код: Выделить всё
AComboBox.Style:=csOwnerDrawFixed;//csOwnerDrawEditableFixed - для возможности редактирования как в TEdit
AComboBox.ItemHeight:=ItemH;

ЕМНИП даже рисовать самостоятельно комбик ненадо, при отсутствии назначеных процедур отрисовки будут работать штатные. в гтк\куте все работает без этих "особенностей"

С кол несталкивался, но похоже тебе надо нагуглить вариант установки данных стилей средствами winapi (GetWindowLong/SetWindowLong)
zub
долгожитель
 
Сообщения: 2677
Зарегистрирован: 14.11.2005 23:51:26


Вернуться в Сторонние средства

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

Рейтинг@Mail.ru