Форум: "Основная";
Текущий архив: 2005.10.02;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.006 c