Вверх ↑
Ответов: 4630
Рейтинг: 749
#1: 2012-03-02 12:24:27 ЛС | профиль | цитата
nesco, по-моему, лишний код. Достаточно было бы этого:


#pas
procedure THIComboBox.Init;
var Flags:TComboOptions;
begin
Flags := [{coNoIntegralHeight}];
if (_prop_ReadOnly = 0) then include(Flags,coReadOnly);
if _prop_Sort then include(Flags,coSort);
if ManFlags and $8 > 0 then include(Flags,coOwnerDrawFixed);
Control := NewCombobox(FParent,Flags);
Control.OnMeasureItem:= _OnMeasureItem;

Control.Perform(CB_SETMINVISIBLE, _prop_DropDownCount, 0); // <<<< ===
Control.OnDropDown := _OnDropDown;


inherited;
SetStrings(_prop_Strings);
with Control{$ifndef F_P}^{$endif} do
begin
if (_prop_ReadOnly <> 0) then OnChange := _OnChange;
Text := _prop_Text;
OnSelChange := _OnClick;
if ManFlags and $8 > 0 then OnDrawItem := _OnDrawItem;
if (Count > 0) and (_prop_ReadOnly = 0) then CurIndex := 0;
end;
end;

procedure THIComboBox._work_doDropDownCount;
begin
_prop_DropDownCount := ToInteger(_Data);
Control.Perform(CB_SETMINVISIBLE, _prop_DropDownCount, 0); // <<<< ===
end;

То-есть, функция GetComCtlVersion лишняя.
Или я не учел каких-то нюансов?
карма: 26

0