-
Spot (25.01.10 09:14) [0]На форме есть 2 панели (как в Tjtal Commander) между ними RXsplitter (у обычного Splitter нет события ondblclick)
Panel1.align=alClient
Panel2.align=alRight
RXsplitter1.align=alRight
При двойном клике, хочу, чтобы RXsplitter разделил Панели на по центру окна.procedure TForm1.RxSplitter1DblClick(Sender: TObject);
begin
Panel2.Width:=round(Form1.Width/2);
end;
Запускаю, премещаю сплиттер немного налево, делаю двойной клик, сплиттер очень быстро перемещается в центр и сразу возвращается обратно.
Оказывается если второй клик не отпускать, то сплиттер остается в центре, как только отпускаешь кнопку, тут же возвращается. Это глюк или что? -
DimaBr © (25.01.10 10:30) [1]Внимание! Здесь обсуждаются вопросы, связанные с разработкой компонентов, редакторов свойств, редакторов компонентов и экспертов IDE.
Вопросы по поиску и использованию готовых компонентов, редакторов или экспертов являются нарушением тематики и могут быть удалены. -
brother © (25.01.10 10:40) [2]> Это глюк или что?
так и должно быть ведь:
> RXsplitter1.align=alRight
а это что за шаманство?
> Panel2.Width:=round(Form1.Width/2); -
Spot (25.01.10 11:30) [3]Братан, а как рализовать эту идею?
-
Spot (25.01.10 11:35) [4]Добавляю кнопку, в обработчике клика пишу:procedure TForm1.Button1Click(Sender: TObject);
begin
Panel2.Width:=round(Form1.Width/2);
end;
Все нормально работает -
KSergey © (25.01.10 11:48) [5]> Spot (25.01.10 11:35) [4]
> Добавляю кнопку, в обработчике клика пишу:
> Все нормально работает
Тогда, видимо, событие двойного клика для этого не подходит.
Предлагаю в двойном клике посылать чебе сообщение через PostMessage, а в обработчике сообщения делать все, что нужно. -
brother © (25.01.10 12:04) [6]> а как рализовать эту идею?
для начала разобраться с
> Panel2.Width:=round(Form1.Width/2); -
unitay (26.01.10 17:09) [7]Используй этот: http://decoding.narod.ru/download/mycomponent/updatesplitter.zip компонент, он реализован наиболее просто.
ps: round(Form1.Width/2); лучше было бы заменить на (Form1.Width div 2)