Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Height в CombBox


sldragon ©   (2005-01-20 11:52:00) 

Буду краток: как изменить высоту ComboBox`а


sldragon   (2005-01-21 16:08:00) [1]

Благодарствую, все способы работают :), но лучшим из них оказался способ с изменением размера шрифта (большое СПАСИБОthaddy), т. к. последний способ вызывает побочный эффект при уменьшении высоты ComboBox`а - скрытие части текста.

P.S.: Заработало!!! Ура!!! :)


thaddy   (2005-01-20 20:54:00) [2]

Ok, CB_SETITEMHEIGHT :) but in that case you'll still have to adapt the font by hand. If he fontsize isn't adapted it can be unreadable. try Combo3.perform(CB_SETITEMHEIGHT,-1,12); on my example!

It is more accurate, though, although if there's a fixed relation between fontsize and comboheight, it may be more efficient to set the fontheight.


thaddy   (2005-01-20 20:47:00) [3]

Thats for listbox? for combo too...??


SPeller   (2005-01-20 20:29:00) [4]

А лучше использовать LB_SETITEMHEIGHT


thaddy   (2005-01-20 17:52:00) [5]

And even beteer with these two lines:
   form.Font.ReleaseHandle;
   form.Font.assignhandle(GetStockObject(DEFAULT_GUI_FONT));


thaddy   (2005-01-20 17:42:00) [6]

You can resize the comboboxheight safely by resizing the font height, or do you mean something different, my russian is not very good?
Small example:

---
unit unit1;
interface
uses
 Windows, Messages, Kol;

type

PForm1=^TForm1;
TForm1=object(Tobj)
 Form:pControl;
 Combo,
 Combo2,
 Combo3:Pcontrol;
public
end;

procedure NewForm1( var Result: PForm1; AParent: PControl );
var
 Form1:pForm1;

implementation

procedure NewForm1( var Result: PForm1; AParent: PControl );
begin
 New(Result,Create);
 with Result^ do
 begin
   Form:= NewForm(AParent,'KOLForm').SetSize(600,400).centeronparent.Tabulate;
   Applet:=Form;
   Form.Add2AutoFree(Result);
   // smaller
   Combo:=NewCombobox(form,[]).SetAlign(caTop);
   Combo.Font.FontHeight:=6;
   // Normal
   Combo2:=Newcombobox(form,[]).setalign(catop);
   // Larger
   Combo3:=NewComboBox(form,[]).setalign(caTop);
   Combo3.Font.FontHeight:=36;
   Combo3.ResizeParent;
 end;
end;


Ajax   (2005-01-20 16:30:00) [7]

AFAIK это невозможно. Если НУ ОЧЕНЬ сильно надо, то можно склепать свой комбобокс из эдита и листбокса. Если надумаешь делать, напиши мне, дам исходники самодельного комбобокса.


ECM   (2005-01-20 12:34:00) [8]

Да... проблема насущная...:)
ComboBox "сам себе на уме" и свою высоту настраивает исходя из
высоты шрифта...
Особенно интересный эффект был у меня когда-то когда я влепил ему выравнивание caClient в панели - получилась бесконечная
рекурсия - программа просто повисала при старте...


Наверх

Титульная страница Поиск, карта сайта Написать письмо