Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.02;
Скачать: 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 вся ветка

Текущий архив: 2005.10.02;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.068 c
8-1115924815
syama
2005-05-12 23:06
2005.10.02
flash в delphi


3-1124700573
rentgen
2005-08-22 12:49
2005.10.02
Можно, запрашивать данные с нескольких баз?


14-1126668876
КаПиБаРа
2005-09-14 07:34
2005.10.02
ИИ и религия


1-1125990584
Гена
2005-09-06 11:09
2005.10.02
Отключение системного меню


1-1126629913
Дмитрий_05
2005-09-13 20:45
2005.10.02
Popup меню раскрыть и скрыть