![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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 в панели - получилась бесконечная
рекурсия - программа просто повисала при старте...