Forum Replies Created
-
AuthorPosts
-
LuxCoreParticipant
Причина в следующем: OnMouseMove на неактивных закладках не работает, потому что на них присутствуют кнопки “Закрыть”. Уважаемые разработчики, это можно как-нибудь убрать или обойти?
P.S. Переставляя свойство TsTabSheet.UseCloseBtn можно будет увидеть всё. Индикация происходит в sStatusBar.
LuxCoreParticipantМне кто-нибудь может подсказать, почему не срабатывает код управления неактивной закладкой?
LuxCoreParticipantСпасибо.
LuxCoreParticipantНашёл почему такое происходит. Из-за картинки на форме, а точнее когда Resize формы с картинкой происходит.
LuxCoreParticipantК сожалению тест тоже не получается сделать. Это присутствует в программе одной только. Буду у себя тогда баг искать. Извините за ложную тревогу :a1:
LuxCoreParticipantСпасибо.
LuxCoreParticipantПочти всё осуществил, кроме одного момента. Может кто-нибудь подскажет: почему в следующем коде не отрабатывает снятие кнопки “Закрыть”? когда курсор переходит с одной неактивной закладки
на другую неактивную? И так, если двигать курсор по всем неактивным закладкам, то эти кнопочки “Закрыть” все рисуются и при наведении на активную закладку все кнопочки скрываются, а на активной, как и нужно, появляется.
Code:procedure TfrmMain.PageControl1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
…
if … begin
…
TsTabSheet(PageControl1.Pages[previousTab]).UseCloseBtn := False;
…
end;
…
end;LuxCoreParticipantИли же предлагаю добавить свойство в TsPageControl, чтобы при наведении на закладку появлялась кнопка “Закрыть” и исчезала, когда курсор уходит с неё.
LuxCoreParticipantУ меня в СтатусБаре ТекстФХ лежит, может поэтому такое происходит? Без него всё нормально.
LuxCoreParticipantПодскажите тогда, пожалуйста, как у Вас реализовано подсвечивание вкладки sPageControl`а при наведении курсора. Не могу никак кнопку “Закрыть” динамически отображать. Делаю так:
- наследую новый тип:
Code:type
TsPageControl = class(sPageControl.TsPageControl)
private
FOnMouseEnter: TNotifyEvent;
procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
published
property OnMouseEnter: TNotifyEvent read FOnMouseEnter write FOnMouseEnter;
end;- реализовываю его:
Code:procedure TsPageControl.CMMouseEnter(var Message: TMessage);
begin
if Assigned(FOnMouseEnter) then FOnMouseEnter(Self);
end;- назначаю событие:
Code:procedure TfrmMain.FormCreate(Sender: TObject);
begin
sPageControl1.OnMouseEnter := frmMain.sPageControl1MouseEnter;
end;procedure TfrmMain.sPageControl1MouseEnter(Sender: TObject);
begin
………
end;Но это всё действует не только на вкладку, но и на тело вкладки. Как сделать, чтобы тело вкладки не реагировало на это событие? Плюс ко всему, если открыто несколько вкладок и я по прямой линии веду курсор от вкладки к вкладке, то событие не наступает больше. Что делать?
LuxCoreParticipantЕсть. Например, если на кнопку “завязать” событие OnClick:
Code:Form1.Top := 0;
Form1.Left := 0;то ExtendedBorders залезают далеко за экран.
LuxCoreParticipantПроблема присутствует при ExtendedBorders = True, DesignTime = True.
LuxCoreParticipantВ версии 7.41 тема актуальна.
LuxCoreParticipantВ 7.41 ситуация не изменилась. Плюс ко всему в design-time TsPageControl не скинируется (пока не добавиться вкладка), как остальные контролы.
LuxCoreParticipantРешение простое: пока буду использовать sDBNavigator + свои кнопки, отвечающие за QBE mode (это не так уж и трудно реализовать).
Спасибо за подсказку о закрытии. Буду знать.
LuxCoreParticipantМожно тему закрывать. Спасибо!
LuxCoreParticipantLuxCoreParticipantВот демка
LuxCoreParticipantLuxCoreParticipantНе скинится с типом GroupBox. Есть ещё какие-нибудь пути обхода такого происшествия?
-
AuthorPosts