powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Lazarus: получить координаты заголовка TabSheet
18 сообщений из 18, страница 1 из 1
Lazarus: получить координаты заголовка TabSheet
    #39755625
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мужики, пытаюсь решить проблему.

У лазаревского PageControl авторы по непонятным мотивам кастрировали OnDrawTab.

Как можно получить координаты(или прямоугольник выделения) заголовка активной вкладки?
=================
Док.
...
Рейтинг: 0 / 0
Lazarus: получить координаты заголовка TabSheet
    #39755640
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Док,

чаще всего там что-то кастрировано в угоду кросс-платформенности. lcl как бы кроссплатформенный целиком, в отличие от vcl. по теме ничего не скажу, к сожалению.
...
Рейтинг: 0 / 0
Lazarus: получить координаты заголовка TabSheet
    #39755641
pit_alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Док,

относительно самого PageControl

Код: pascal
1.
2.
3.
4.
5.
var
   r: TRect;
begin
  r := PageControl1.TabRect(PageControl1.ActivePageIndex); 
end;
...
Рейтинг: 0 / 0
Lazarus: получить координаты заголовка TabSheet
    #39755674
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pit_alexотносительно самого PageControl
О! Сенькаю много раз !!!

Правда, непонятно, почему R.Top дает на 22 px выше, чем есть фактически, но это уже детали.
...
Рейтинг: 0 / 0
Lazarus: получить координаты заголовка TabSheet
    #39755691
pit_alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Док,

у меня r.Top дает как раз -22
...
Рейтинг: 0 / 0
Lazarus: получить координаты заголовка TabSheet
    #39755694
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pit_alexу меня r.Top дает как раз -22
и я о том же, поэтому приходится делать поправку
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
procedure TForm1.PgCtrlChange(Sender: TObject);
var R: TRect;
begin
  if PgCtrl.PageCount = 0 then Exit;

  R:= PgCtrl.TabRect(PgCtrl.ActivePageIndex);
  Self.Caption:= Format('Left = %d | Top = %d | PageIndex = %d | Caption = %s',
    [R.Left + offset + PgCtrl.Left,
     R.Top + offset +  PgCtrl.Top,
     PgCtrl.ActivePageIndex,
     PgCtrl.ActivePage.Caption]);
end; 
...
Рейтинг: 0 / 0
Lazarus: получить координаты заголовка TabSheet
    #39755695
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Докприходится делать поправку
соответственно
Код: pascal
1.
const offset: Integer = 22; 
...
Рейтинг: 0 / 0
Lazarus: получить координаты заголовка TabSheet
    #39755801
pit_alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Док,

хз, можно конечно в исходниках порыться, но ..... :-)
...
Рейтинг: 0 / 0
Lazarus: получить координаты заголовка TabSheet
    #39756144
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pit_alex,

TPageControl в лазарусе - такой шлак, который кто-то взялся делать, но бросил на полпути, добавив минимальный функционал для Qt. Давно чешутся руки взяться за него, но ни времени, ни знаний не хватает.
...
Рейтинг: 0 / 0
Lazarus: получить координаты заголовка TabSheet
    #39756668
pit_alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Док,

пробовал поднять QT и GTK3 на Linux, ничего хорошего не получилось, QT вообще не победил, а GTK3 полный отстой, на винде непробовал
...
Рейтинг: 0 / 0
Lazarus: получить координаты заголовка TabSheet
    #39756892
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pit_alexQT вообще не победил, а GTK3 полный отстой, на винде непробовал
ты имеешь ввиду обсуждаемый компонент?
...
Рейтинг: 0 / 0
Lazarus: получить координаты заголовка TabSheet
    #39757136
pit_alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Док,

нет полностью пересобрать лазаря
...
Рейтинг: 0 / 0
Lazarus: получить координаты заголовка TabSheet
    #39757147
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pit_alexполностью пересобрать лазаря
странно. Тут читал?

Кроме того, есть fpcupdeluxe , который 100%-но решает проблему установки Лазаря на любую платформу.
...
Рейтинг: 0 / 0
Lazarus: получить координаты заголовка TabSheet
    #39757151
pit_alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Док,

ставиться он нормально, но при попытке пересобрать с другим LCL виджетом ничего хорошего не выходит
...
Рейтинг: 0 / 0
Lazarus: получить координаты заголовка TabSheet
    #39757162
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там просто поддержка GTK3 на каком-то зачаточном уровне. Глючит всё, что может глючить.
...
Рейтинг: 0 / 0
Lazarus: получить координаты заголовка TabSheet
    #39757166
pit_alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev Alexey,

угу, уже лет надцать как GTK3 у них в alpha версии :-(
...
Рейтинг: 0 / 0
Lazarus: получить координаты заголовка TabSheet
    #39757192
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pit_alexно при попытке пересобрать с другим LCL виджетом ничего хорошего не выходит
Если я правильно ошибаюсь, чтобы собиралось с другим виджетом, надо,чтобы виджет был установлен в ОСи.

Можно указать другой виджет для собираемого приложения , что делается при кросскомпиляции, но это уже другая песня.
...
Рейтинг: 0 / 0
Lazarus: получить координаты заголовка TabSheet
    #39757202
pit_alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Док,

ставил все необходимые либы на Linux, но не QT не QT5 так и не завелся, для приложения тоже не удалось, так как все равно идет попытка пересборки все нужных модулей лазаря
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Lazarus: получить координаты заголовка TabSheet
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]