Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.25;
Скачать: CL | DM;

Вниз

TComboBoxEx.Indent не работает   Найти похожие ветки 

 
Sergei!   (2004-02-13 11:59) [0]

Уважаемый All. Что почему не работает свойство Indent в TComboBoxEx. Вернее работает, но только при сортировке, но мне сортировка не нужна. Может глюк какой с данным компонентом аль со мной?


 
Sergei!   (2004-02-13 12:15) [1]

Извиняюсь TComboBox.ItemsEx.ComboItems[i].Indent вернее будет. Пожалуйста, кто сталкивался. Нужно создать похожее на дерево, но не работает. Все на одном уровне.

Вот код:

FCat.First;
CatBox.Items.BeginUpdate;
CatBox.Items.Clear;
while not FCat.Eof do
begin
if FCat.FieldByName("OrgID").AsString=GetMyBase.FOrgID then
begin
lP:=FindParent(FCat.FieldByName("ParentID").AsString);
if lP<>nil then lI:=CatBox.ItemsEx.Insert(lP.Index+1)
else lI:=CatBox.ItemsEx.Add;
lI.Caption:=FCat.FieldByName("Name").AsString;
lI.ImageIndex:=0;
lI.Data:=TSpecClass.Create(FCat.FieldByName("ID").AsString);
lI.Indent:=0;
if lP<>nil then
Begin
if lP.Indent=0 then lI.Indent:=1
else lI.Indent:=lP.Indent+1;
end
else lI.Indent:=0;
end;
FCat.Next;
end;
CatBox.Items.EndUpdate;


 
Семен Сорокин ©   (2004-02-13 12:22) [2]

так Indent вроде в пикселях изменяется, а ты 1 ставишь - поэтому и кажется что на одном уровне, поставь 20 например.


 
Sergei!   (2004-02-13 12:32) [3]

Не-а, я изначально ставил 5 (согласитесь не так уж и не заметно). Но эффект нулевой. При сортировки выглядит примерно так:


ля-ля
тра-ля-ля
ля-ля
ля-ля


причем отступ на много больше 5 получается. Такое очущение, что он делает отступ по буквам.


 
Семен Сорокин ©   (2004-02-13 12:57) [4]

причем отступ на много больше 5 получается. Такое очущение, что он делает отступ по буквам.
да действительно неполенился проверил, и скажу поставил 2 - сдвинул сразу на 3 символа.
насчет того что неотрисовал - глянул реализацию:
property Indent: Integer read FIndent write FIndent default -1;
даже нет метода SetIndent, так-что не приходит сообщения об обновлении (имхо, сырой компонент).
добавь еще Caption := Caption при задании indent - должно помочь.


 
Sergei!   (2004-02-13 13:49) [5]

Непомогает. В реализации, все это дело в самом деле недоделано. И установка свойств возникает только в момент добавления элемента в список или если есть сортировка. Так что необходимо все переделовать ручками.


 
Семен Сорокин ©   (2004-02-13 14:10) [6]

у меня отривовало:
procedure TForm1.Button1Click(Sender: TObject);
begin
ComboBoxEx1.ItemsEx.ComboItems[1].Indent := 1
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
ComboBoxEx1.ItemsEx.ComboItems[1].Caption := ComboBoxEx1.ItemsEx.ComboItems[1].Caption
end;


нажимаю на первую кнопку - в выпадающем списке нет отступа, на вторую - есть.


 
Sergei!   (2004-02-13 14:49) [7]

У меня ни в какую ни хотел. И я его малость переделал. Добавил SetIndent -


procedure TFixedComboExItem.SetIndent(const Value: Integer);
begin
FIndent := Value;
TFixedComboExItems(Collection).SetItem(Index);
end;


Теперь все без проблем. Все работает. спасибо, что натолнкнул на сырцы. Принемного благодарен.


 
Sergei!   (2004-02-13 14:49) [8]

Если кому надо, могу отдать пофиксиную версию компонента.



Страницы: 1 вся ветка

Текущий архив: 2004.02.25;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.019 c
14-80185
syte_ser78
2004-01-31 09:47
2004.02.25
Создание браузера


6-80062
Anet
2003-12-16 13:09
2004.02.25
Отследить вход пользователя в сеть


1-79702
Well
2004-02-13 00:09
2004.02.25
Преобразовать путь в полную форму


11-79687
grumbler
2003-06-04 21:49
2004.02.25
Хочу просто русский проект...


14-80253
Сережа
2004-01-30 18:55
2004.02.25
Компонент