Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Lazarus: получить координаты заголовка TabSheet / 18 сообщений из 18, страница 1 из 1
03.01.2019, 09:30
    #39755625
Док
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus: получить координаты заголовка TabSheet
Мужики, пытаюсь решить проблему.

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

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

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

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

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

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

у меня r.Top дает как раз -22
...
Рейтинг: 0 / 0
03.01.2019, 16:05
    #39755694
Док
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus: получить координаты заголовка TabSheet
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
03.01.2019, 16:06
    #39755695
Док
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus: получить координаты заголовка TabSheet
Докприходится делать поправку
соответственно
Код: pascal
1.
const offset: Integer = 22; 
...
Рейтинг: 0 / 0
04.01.2019, 10:26
    #39755801
pit_alex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus: получить координаты заголовка TabSheet
Док,

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

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

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

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

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

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

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

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

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


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