|
Платные хостинги
Раскрутка сайта
Книги по программированию
Имеющие опыт борьбы с TSplitter, Откликнитесь!
- На форме нужно сделать вертикальный и горизонтальный сплиттеры. Что за глюки? Как добиться поведения как в TheBat - там это реализовано нормально? Или я чего не понимаю в функционировании сплиттеров?Во-первых: для того, чтобы сделать один "движок", я использую два объекта TSplitter (выровненных по левому краю). Иначе эта тварь (извините) таскаться отказывается.Во-вторых: при создании второго "движка" (уже горизонтального опять-таки еще два объекта, выравнивание по верхней кромке) получаются глюк: во время его перетаскивания разделяющая линия отрисовывается и на левой половине формы, отделяемой вертикальным сплиттером (объяснить я это могу: выравнивание такое, вопрос в том, как это убрать).P.S. Пытался сделать свой "движок" на основе TShape (прямоугольник).OnMouseMove формы: begin if dragging then shape1.Top := y + dy end(тут dragging и dy - глобальные переменные, y - параметр OnMouseMove)Получилось, что этот прямоугольник перемещается ровно в два раза медленнее, чем мышь. Как это объяснить?Заранее благодарен за советы.
- Я использую Splitter от RxLib -всё нормально. Там только 3 свойства которые надо правильно поставить - align, FirstControl, SecondControl...
- Спасибо, добрый человек!
- P. S. Но тема еще не закрыта: я еще надеюсь найти здесь людей, пользующихся стандартным TSplitter.
- Вот я делал такой движ ок Drag&Drop:Код procedure TShape1.OnMouseDown(X, Y: Integer; MButton: TMopuseButton ... );begin if mButton = mbLeft then begin Dragging := True; OldX := X; OldY := Y; end;end;procedure TShape1.OnMouseMove(X, Y: Integer; ShiftState: TShiftState ... );begin if Dragging then begin Left := (Left + X) - OldX; Top := (Top + Y) - OldY; end;end;procedure TShape1.OnMouseUp(X, Y: Integer ... );begin if Dragging and (Button=mbLeft) then begin Dragging := False; end;end;highlightSyntax('delphiMzUyZD','delphi');Но это схематично, конечно ...А так я не понимаю почему у тебя проблемы, кинь мне на мыло свой исxодник.
- не понятно, че у тебя там не работает с tSplitterделать так:кидаешь контрол(tPanel например) ставишь выравнивание(align) по какому надо краюпотом кидаешь еще один контрол с align=alClientвот и все.....теперь внутри любого контрола сделай аналогично
- RHF, спасибо огромное!Не знаю, как ты меня понял, но это - именно то, о чем я спрашивал. И как я раньше до этого не додумался?Всем ответившим - спасибо. Просто здорово, что вы есть!
Интернет казино
Онлайн игры
Увеличение члена
Купить DVD
|