Сплиттер

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сплиттер

Сообщение Ruslan Demidow » 15.09.2004 (Ср) 20:14

Где бы мне найти односторонний сплиттер? Может подскажет кто-нибудь?
Поясню: У меня на форме два контрола TreeView и RichTextBox.
Между ними расположено несколько лабелов.
Нужно чтобы мользователь мог потянув за сплиттер изменить вертикальный размер TreeView'а. А уж остальное я сам подгоню.
Но все сплиттеры, которые я находил двухсторонние, т.е. требуют чтобы по обеим сторонам сплиттреа были два контрола.
Мне же нужна только одна сторона сплиттера.
Или подскажите плиз основу работы сплиттера - свой напишу. :)

Odvin
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 10.05.2004 (Пн) 22:20
Откуда: Москва, Россия

Сообщение Odvin » 15.09.2004 (Ср) 20:20

Берем PictureBox. По MouseDown устанавливаем какой-нибудь флаг. Далее по MouseMove, если флаг стоит, делаем перемещение сплиттера на текущую позицию курсора. По MouseUp просто снимаем флаг и выполняем перерасчеты размеров нужных элементов на основе свойства Left сплиттера. Также в MouseDown/MouseUp можно прописать "затенение" сплиттера (изменение его цвета) и снятие затенения, соответственно. Так делал я, вроде бы работает...

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 15.09.2004 (Ср) 20:37

Odvin писал(а):Берем PictureBox. По MouseDown устанавливаем какой-нибудь флаг. Далее по MouseMove, если флаг стоит, делаем перемещение сплиттера на текущую позицию курсора. По MouseUp просто снимаем флаг и выполняем перерасчеты размеров нужных элементов на основе свойства Left сплиттера. Также в MouseDown/MouseUp можно прописать "затенение" сплиттера (изменение его цвета) и снятие затенения, соответственно. Так делал я, вроде бы работает...

Т.е. растягиваем пикчур по ширине тривьюва и используем его вместо сплиттера? Так?
А как же ограничить перемещение пикчурбокса влево-право, нужно только вверх-вниз.
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 15.09.2004 (Ср) 23:10

Ну так в коде перемещать его только вверх-вниз, а влево-вправо не перемещать. Позицию-то ему задаёшь ты.
Изображение

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 15.09.2004 (Ср) 23:27

Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 15.09.2004 (Ср) 23:27

tyomitch писал(а):Ну так в коде перемещать его только вверх-вниз, а влево-вправо не перемещать. Позицию-то ему задаёшь ты.

Тёмыч, подсоби, плиз!!! :oops:
Никогда ещё контролы не писал.
Сейчас сижу и блуждаю среди пропертей и евентов как слепой котёнок. :(
А если на контроле не размещать картинку, как это скажется на функциональности контрола?
Сейчас сделал изменение курсора при наведении на контрол в работающем приложении.
Мне бы теперь как нибудь его переместить при нажатой клавише мыши....
В общем чувствую не на один день мне работы со сплиттером..
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 16.09.2004 (Чт) 0:25

GSerg писал(а):http://bbs.vbstreets.ru/viewtopic.php?p=24453#24453

Спасибо за ссылку. :) То что надо.

Теперь вопрос: как запрограммировать событие в контроле?
Например MouseUp .

Ещё один вопрос ко всем (кто быстрее подскажет :) ) : как узнать координаты контрола?
Т.е. в каких координатах он лежит на форме?
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 16.09.2004 (Чт) 0:28

2 All Прошу прощения что мои вопросы не соответствующие статусу отображаемому в сведениях обо мне. :oops:
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 16.09.2004 (Чт) 7:17

Ruslan Demidow писал(а):Теперь вопрос: как запрограммировать событие в контроле?
Например MouseUp .

Ещё один вопрос ко всем (кто быстрее подскажет :) ) : как узнать координаты контрола?
Т.е. в каких координатах он лежит на форме?

1)
Код: Выделить всё
Event MouseUp
Private Sub UserControl_MouseUp (бездна параметров)
    RaiseEvent MouseUp
End Sub

2) UserControl.Extender.Left, UserControl.Extender.Top (только непонятно в каких единицах)
Изображение

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 16.09.2004 (Чт) 8:37

tyomitch писал(а):
Ruslan Demidow писал(а):Теперь вопрос: как запрограммировать событие в контроле?
Например MouseUp .


1)
Код: Выделить всё
Event MouseUp
Private Sub UserControl_MouseUp (бездна параметров)
    RaiseEvent MouseUp
End Sub


Так просто оказывается. :) Спасибо.
tyomitch писал(а):
Ruslan Demidow писал(а):Ещё один вопрос ко всем (кто быстрее подскажет :) ) : как узнать координаты контрола?
Т.е. в каких координатах он лежит на форме?

2) UserControl.Extender.Left, UserControl.Extender.Top (только непонятно в каких единицах)

В единицах измерения формы, на которой расположен сплиттер.
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 16.09.2004 (Чт) 9:08

Ruslan Demidow писал(а):
tyomitch писал(а):2) UserControl.Extender.Left, UserControl.Extender.Top (только непонятно в каких единицах)

В единицах измерения формы, на которой расположен сплиттер.

Я именно это и имел в виду - заранее неизвестно, в каких.

Кроме того, плюшевого мишку звали Винни-Пух.
Изображение

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 16.09.2004 (Чт) 9:35

tyomitch писал(а):
Ruslan Demidow писал(а):
tyomitch писал(а):2) UserControl.Extender.Left, UserControl.Extender.Top (только непонятно в каких единицах)

В единицах измерения формы, на которой расположен сплиттер.

Я именно это и имел в виду - заранее неизвестно, в каких.

Ясно.
Кроме того, плюшевого мишку звали Винни-Пух.

Сорри, :) Исправился...
В общем со сплиттером разобрались: спасибо GSerg'у и тебе. :)
Теперь бы с тулбаром добиться душевного покоя...
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 16.09.2004 (Чт) 9:48

Ruslan Demidow писал(а):Теперь бы с тулбаром добиться душевного покоя...

Дык, по таймеру его загружай, и всё :-)
Изображение

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 16.09.2004 (Чт) 10:52

tyomitch писал(а):
Ruslan Demidow писал(а):Теперь бы с тулбаром добиться душевного покоя...

Дык, по таймеру его загружай, и всё :-)

Загружаю, но как я уже писал - восстанавливаются все кнопки, которые слева от последней изменяемой. Остальные до Reset'а не видны.
Проверяю на добавлении сплиттеров между кнопками..
Это Ж-ж-ж-ж неспроста (с) Винни-Пух


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

    TopList