Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.01.2010, 09:17   #1
Spot
Пользователь
 
Аватар для Spot
 
Регистрация: 04.06.2008
Сообщений: 32
По умолчанию Двойной клик по RXsplitter

На форме есть 2 панели (как в Total 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;
Запускаю, премещаю сплиттер немного налево, делаю двойной клик, сплиттер очень быстро перемещается в центр и сразу возвращается обратно.
Оказывается если второй клик не отпускать, то сплиттер остается в центре, как только отпускаешь кнопку, тут же возвращается. Это глюк или что?
Spot вне форума Ответить с цитированием
Старый 26.01.2010, 12:42   #2
Скандербег
Форумчанин
 
Регистрация: 04.04.2009
Сообщений: 438
По умолчанию

Лучше использовать штатный сплиттер. У RxSplitter недоделки.
Код:
  //на форме
  TForm1 = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    Splitter1: TSplitter;
...

implementation

{$R *.dfm}

type
  THackSplitter = class(TSplitter)
    property OnDblClick;
  end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  THackSplitter(Splitter1).OnDblClick := RxSplitter1DblClick; //можно оставить тот же обработчик
end;

procedure TForm1.RxSplitter1DblClick(Sender: TObject);
begin
  Panel1.Width:=round(Form1.Width/2);
end;
Panel1.align=alLeft //если это левая панель
Splitter1.align=alLeft
Panel2.align=alClient
Splitter1.ResizeStyle=rsUpdate //или rsNone
последнее обязательно, иначе при двойном клике будет оставаться полоса на прежнем месте, где сплиттер находился.

Последний раз редактировалось Скандербег; 26.01.2010 в 12:55.
Скандербег вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как исключить повторное действие если был двойной клик? (Perl + Mysql) tenos Perl 3 15.01.2010 19:22
С++ Двойной цикл for Crazy_caramel Помощь студентам 2 20.11.2009 23:01
Двойной счётчик Артур Иваныч Microsoft Office Excel 7 09.11.2009 07:30
Двойной клик Алежа Общие вопросы .NET 3 16.11.2008 23:20
Двойной щелчок Д'якон Win Api 4 19.05.2008 18:56