Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.031 c
7-80305
Borys
2003-12-04 19:54
2004.02.25
HTML


14-80211
KM
2004-02-05 18:23
2004.02.25
эксплоиты


1-79827
first_aid
2004-02-11 09:22
2004.02.25
TListView, OnCusnomDrawSubItem, границы области рисования?


6-80076
Vilux
2003-12-15 21:22
2004.02.25
WebBrowser и данные формы


3-79646
Night Cold
2004-01-31 20:18
2004.02.25
paradox





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский