Форум: "Основная";
Текущий архив: 2004.02.25;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.028 c