combobox с отступом

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
timsoft
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 181
Зарегистрирован: 18.10.2003 (Сб) 10:50
Откуда: Odessa, Ukraine

combobox с отступом

Сообщение timsoft » 14.04.2005 (Чт) 16:01

Подскажите алгоритм, как в combobox добавить элементы с отступом по типу TreeView
Элементы хранятся в таблице БД
id, name, parent

Хочется засунуть их в комбо, чтоб выглядело примерно так
Код: Выделить всё
aaaaa
bbbbb
   ccccc
      ddddd
eeeee
  kkkkk
nnnnn


ну и т.д.

уже голову сломал :-)
tim@ Изображение

Cryonyx
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 292
Зарегистрирован: 12.11.2004 (Пт) 15:40
Откуда: Net_SubStream

Сообщение Cryonyx » 14.04.2005 (Чт) 16:03

Добавляй пробелы :D - работает
Если тебе не по сердцу мой путь,
Выбери сам или выбери с кем,
А мне по барабану вся эта муть -
Я не червонец, чтобы нравиться всем!
© К.Кинчев
--
Мой блог: щёлкай сюда

timsoft
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 181
Зарегистрирован: 18.10.2003 (Сб) 10:50
Откуда: Odessa, Ukraine

Сообщение timsoft » 14.04.2005 (Чт) 16:08

Cryonyx писал(а):Добавляй пробелы :D - работает


это понятно, что пробелы
только вот сколько перед каким элементом -- вот тут то алгоритм нужен...
tim@ Изображение

Cryonyx
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 292
Зарегистрирован: 12.11.2004 (Пт) 15:40
Откуда: Net_SubStream

Сообщение Cryonyx » 14.04.2005 (Чт) 16:15

А это уж тебе определять, перед какими.
Сохрани строки в массиве, пометь каким-нибудь символом те, которым нужен один отступ, другие - другим и т.п., а потом анализируй этот символ и перед добавлением в комбо вырезай. Вот и весь алгоритм :D
Если тебе не по сердцу мой путь,
Выбери сам или выбери с кем,
А мне по барабану вся эта муть -
Я не червонец, чтобы нравиться всем!
© К.Кинчев
--
Мой блог: щёлкай сюда

timsoft
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 181
Зарегистрирован: 18.10.2003 (Сб) 10:50
Откуда: Odessa, Ukraine

Сообщение timsoft » 14.04.2005 (Чт) 16:20

Cryonyx писал(а):Сохрани строки в массиве, пометь каким-нибудь


угу, если б все было так просто, я б этот вопрос не задавал
tim@ Изображение

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 14.04.2005 (Чт) 16:26

Добавь в таблицу поле FullPath, в котором будет указан полный путь (\parent1\parent2\parent3\id) и сортируй запрос по этому полю. Так ты получишь записи в нужном порядке, а глубину вложения определяй по количеству бакслэшей.
Lasciate ogni speranza, voi ch'entrate.

timsoft
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 181
Зарегистрирован: 18.10.2003 (Сб) 10:50
Откуда: Odessa, Ukraine

Сообщение timsoft » 14.04.2005 (Чт) 16:30

alibek
Спасибо за идейку!
Попробую!
tim@ Изображение

kif
Постоялец
Постоялец
 
Сообщения: 736
Зарегистрирован: 10.12.2001 (Пн) 18:06
Откуда: Украина, Одесса

Сообщение kif » 14.04.2005 (Чт) 17:00

Можно добавить еще поле "уровень вложения"
Братья и сестры, что вы делаете???
Ведь вы же братья и сестры.

timsoft
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 181
Зарегистрирован: 18.10.2003 (Сб) 10:50
Откуда: Odessa, Ukraine

Сообщение timsoft » 14.04.2005 (Чт) 17:09

alibek писал(а):Добавь в таблицу поле FullPath.


хмм...
есть одна загвоздка
при переименовании Parent'a нужно изменять все FullPath его деток :shock:
tim@ Изображение

timsoft
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 181
Зарегистрирован: 18.10.2003 (Сб) 10:50
Откуда: Odessa, Ukraine

Сообщение timsoft » 14.04.2005 (Чт) 17:15

Короче, плюнул я на это дело.
Буду делать выпадающий TreeView :D
tim@ Изображение

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 14.04.2005 (Чт) 17:29

kif писал(а):Можно добавить еще поле "уровень вложения"

Не обязательно, оно довольно легко считается.

timsoft писал(а):при переименовании Parent'a нужно изменять все FullPath его деток

Parent это имя или ключ? Если имя, то конечно придется.
Lasciate ogni speranza, voi ch'entrate.

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 14.04.2005 (Чт) 17:36

timsoft писал(а):Есть одна загвоздка
при переименовании Parent'a нужно изменять все FullPath его деток :shock:
Зачем? В таблице храни FullPath в виде \Parent1\Parent2\... и где нить значения парентов :) Там где-то тока и придется поменять

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 14.04.2005 (Чт) 21:45

Может, стоит начать с того, что выяснить, какой именно контрол стоит использовать? Комбик хорош там, где у тебя мало места, и надо дать юзеру выбрать из множества однотипных элементов один. Идеальный пример - в диалоге Open / Save As, выбор диска. А дерево, это... ну, это все-таки более универсальный компонент, дающий возможность именно обзора всего дерева с целью восприятия его целиком и формирования связной картины.

Ну и уж точно не стоит выбирать комбик, если подразумевается переименование элементов - совершенно нелогично и неюзабельно.

timsoft
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 181
Зарегистрирован: 18.10.2003 (Сб) 10:50
Откуда: Odessa, Ukraine

Сообщение timsoft » 15.04.2005 (Пт) 9:57

Ennor писал(а):Может, стоит начать с того, что выяснить, какой именно контрол стоит использовать?


Я сделал "финт ушами". Вместо комбо использую обычный TextBox и рядом нарисованую кнопку, типа как у комбика. При нажатии на эту кнопку открывается форма без бордера, на которой treeview. Размеры и положение этой формы подгоняю под textbox. Создается полная иллюзия комбо с деревом :-)
tim@ Изображение

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 15.04.2005 (Пт) 10:45

timsoft писал(а):Я сделал "финт ушами". Вместо комбо использую обычный TextBox и рядом нарисованую кнопку, типа как у комбика. При нажатии на эту кнопку открывается форма без бордера, на которой treeview. Размеры и положение этой формы подгоняю под textbox. Создается полная иллюзия комбо с деревом :-)


Ну и правильно - я делал аналогично.
Заморочек меньше, иконки без проблем приделываются...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Денис Победря
Мегобойанист
Мегобойанист
 
Сообщения: 1037
Зарегистрирован: 03.01.2005 (Пн) 21:29
Откуда: Из Москвы

Сообщение Денис Победря » 15.04.2005 (Пт) 13:32

А чё .NET в лапы и вперёд
Код: Выделить всё
Public Class SuperPuperCombo
     inherits ComboBox
     ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
End Class

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 15.04.2005 (Пт) 13:34

Денис Победря писал(а):А чё .NET в лапы и вперёд
Код: Выделить всё
Public Class SuperPuperCombo
     inherits ComboBox
     ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
End Class


А это тут причем?

Создать свой контрол без проблем можно и в VB6.
Речь была совсем не об этом.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot и гости: 33

    TopList