Глюки CoolBar?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
san*
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 115
Зарегистрирован: 17.06.2004 (Чт) 17:57
Откуда: Киев

Глюки CoolBar?

Сообщение san* » 15.07.2004 (Чт) 17:13

Есть CoolBar. В нем MSFlexGrid. В програме есть класс для реализации ввода данных в MSFlexGrid. Проблема такая: высшеописанный класс анализирует Left, Top... объекта MSFlexGrid. Так вот: все бы было хорошо, но при изменения пользователем размера Bandа в CoolBar - Left, Top не меняются!!! :twisted:
Я уже поборол это так: при MouseUp отслежую изменения ширины левого Banda, и соответственно меняю Left правого Banda. Все бы было нормально, но тут такая проблема, из-за которой собственно я и обращаюсь:
При выставленни TextBoxa из высшеуказанного класса по высшеуказанной позиции он выставляется на несколько пикселей высше и левее!!! :evil: Не понимаю почему?
После всего выруганого зделаю несколько гипотез:
1) Может где-то идет привязка, т.е. я выставляю TextBox.Left=1456(в Twip), а он делает 1450
2) CoolBar в своих Bands выравнивает компоненты по какому-то принципу

san*
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 115
Зарегистрирован: 17.06.2004 (Чт) 17:57
Откуда: Киев

Сообщение san* » 15.07.2004 (Чт) 17:34

Здается мне - перделаю я все на Splitter, там по-моему все проще, и работает лучше.

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

Сообщение Ennor » 15.07.2004 (Чт) 17:48

Мой совет таков: попробуй свой флекс сделать предком текста.
Например:
Set Me.Text1.Parent = me.MSFlexGrid1
Ну или то же самое, только через апишный SetParent(), если вдруг работать не будет.

san*
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 115
Зарегистрирован: 17.06.2004 (Чт) 17:57
Откуда: Киев

Сообщение san* » 15.07.2004 (Чт) 18:31

Спасибо большое за совет. Помогло. Теперь нет необходимости вручную менять у ФлексГрид Лефт и Топ. Но смещение все-равно есть! Конечно это уже дело поправимое, но все-таки почему есть смещение?

Вот еще какая штука: у ФлексГрид ЦеллЛефт и ЦеллТоп как Лонг, а у ТекстБокса как Сингл! Твип всегда только целый? При МсгБокс обох одни и те же значения.

Еще, что меня поразило - после СетПарент код типа MsgBox Text1.Parent.Name все равно выдает "Form1", но Парент то уже у него не тот! :shock:

По поводу Set Obj.Parent=Obj - ReadOnly :)
Но все равно совет стоящий. Еще раз спасибо за помощь! :D :D :D

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

Сообщение Ennor » 16.07.2004 (Пт) 11:08

Так... В принципе, твип не обязан быть целым, но как правило, он таков. Далее, CellLeft/CellTop как лонги - хм, странно, но забей на это, прокатит. Насчет парента - ты же не через VB выставлял родителя, а у него, видимо, просто кэшируется эта инфа и по ходу работы не обновляется. Забей. Либо - совершенно шаманский глюк - иногда надо вызывать SetParent() дважды подряд (!!!), чтобы он подхватился. Я не помню, с каким именно компонентом я нарвался на такое, кажется с Treeview, но бывает, бывает...
Кстати, если у тебя флекс - дочка бэнда, то как ты вообще можешь менять его позицию? По-моему, кулбар должен тупо игнорить твои поползновения на эту тему...

san*
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 115
Зарегистрирован: 17.06.2004 (Чт) 17:57
Откуда: Киев

Сообщение san* » 22.07.2004 (Чт) 16:46

Тут прикол в следующем: Флекс получается не дочка Бенда а дочка Формы!!! :shock: Так работатет КоолБар. Даже если посмотреть позиции Лефт и Топ Грида, то позиции будут относительно Формы. Конечно можно эксперементировать и с Гридом: т.е. назначить ему парента КулБара и помотреть как он будет себя вести, но если честно нет никакого желания с этим возиться.


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

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

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

    TopList