Вниз
Скачать: CL | DM;

Splitter при установке св-ва Panel3.Visible:=true отказывается   Найти похожие ветки 

← →
Michael5   (2005-09-09 21:39) [0]

работать. Помогите разобраться!

Суть такова: создаю форму, компоненты на ней с такими свойствами:
Panel1.Align:=alTop;
Splitter1.Align:=alTop;
Panel2.Align:=alClient;
Запускаю программу.
При этом я могу сдвигать сплиттер до самого верха или низа.

А теперь мне нужно, чтобы при смещении сплиттера до самого верха у меня становилась видна еще одна панель. Я это пытаюсь сделать следующим образом. Создаю на форме в любом месте Panel3 (Visible:=false), и делаю обработчик перемещения сплиттера:

procedure TForm1.Splitter1Moved(Sender: TObject);
begin
if Splitter1.Top=0 then
panel3.Visible:=true;
end;


При этом, если это условие срабатывает, сплиттер клинит - он больше не сдвигается с места.
Установка свойства panel3.Visible в true во время выполнения программы при промежуточных положениях сплиттера такого эффекта не дает - он продолжает работать.

Помогите разобраться пожалуйста!


← →
Michael5   (2005-09-09 22:13) [1]

Хм, не разобрался, но стало работать...

Видоизменил код обработчика:

procedure TForm1.Splitter1Moved(Sender: TObject);
begin
if Splitter1.Top=0 then begin
Splitter1.Top:=50;
panel3.Visible:=true;
end;


Причем эта строка в общем-то не срабатывает, Top все равно нулю остается равен, и сплиттер на том же месте, однако живой... :)

Ничего не понимаю


← →
DesWind ©   (2005-09-09 22:13) [2]

3-я панель с какими свойствами выравнивания (если вторая alClient)?


← →
Michael5   (2005-09-09 22:21) [3]

alNone, или alBottom; находится на самой форме Form1, или на панели, к примеру, на Panel2 - ошибка, и лечение действительны для всех случаев


← →
DesWind ©   (2005-09-09 22:31) [4]

А alCustom?


← →
Michael5   (2005-09-09 22:42) [5]

Легко. И туда, и сюда...

Нашел связь Splitter1.Top:=50 с "оживлением" сплитера. Эта величина должна быть больше высоты сплиттера (по умолчанию она равна 3, так что как минимум Splitter1.Top:=4)


← →
DesWind ©   (2005-09-09 22:46) [6]

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


← →
Michael5   (2005-09-09 22:59) [7]


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


Не, я так не думаю - OnMoved - это похоже на прошедшее время. По крайней мере, там явно идет обработка до или после. А уж с какой скоростью ты туда приехал - их это не интересует :)


← →
DesWind ©   (2005-09-09 23:10) [8]

Не, я не о том. dX,dY по времени, мышки может превышать скорость отправки сообщений... Т.е. щас (4,4), а следующее (10,10). Но это так... Офф. топ. Пятница, дома, один... ))))



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.023 c
14-1126076551
KilkennyCat
2005-09-07 11:02
2005.10.02
7 сентября. С Днем рождения!


14-1126331085
vecna
2005-09-10 09:44
2005.10.02
английская поговорка...


2-1124910354
Kostya
2005-08-24 23:05
2005.10.02
Работа с большим количеством кнопок...


11-1107451723
Kobik
2005-02-03 20:28
2005.10.02
Компонент типа THotKey.


6-1116214474
Delphi forever
2005-05-16 07:34
2005.10.02
Отправка почты используя IdSMTP




   Наверх