TTabColtrol куча багов

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
SeZuka
постоялец
Сообщения: 209
Зарегистрирован: 05.09.2012 14:58:05

TTabColtrol куча багов

Сообщение SeZuka »

Перехожу с дельфей на лазарус, версия 1.0, винда 7 х64. Решил для MDI использовать TTabControl и сразу наткнулся на кучу непоняток:
1. Нужно переименовать вкладку, делаю:

Код: Выделить всё

TabControl.Tabs.Strings[TabControl.TabIndex] := 'qq';

При выполнении вылетает с непонятной ошибкой: 'External: SIGSEGV' В файле '.\include\wincontrol.inc' на строке 8057
Там следующий код:

Код: Выделить всё

  if not HandleAllocated 
  or (csLoading in ComponentState)
  or (not TWSWinControlClass(WidgetSetClass).GetText(Self, Result))
  then Result := inherited RealGetText;

Что за Х?
2. Свойство Style (tsTabs, tsButtons, tsFlatButtons) в винде ни на что не влияет, вид всегда один и тот же, в других системах не проверял.
3. Pages для чего надо? Это вроде TabControl, а не PageControl. Или из него хотели сделать один универсальный компонент?
Аватара пользователя
evb87ar
новенький
Сообщения: 52
Зарегистрирован: 18.01.2012 21:08:02
Откуда: г. Архангельск

Сообщение evb87ar »

TabControl.Tabs имеет тип TStrings.

Соответственно:

Код: Выделить всё

TabControl1.Tabs[1] := 'qq';
работает.

Style да, не работает и в лине.
SeZuka
постоялец
Сообщения: 209
Зарегистрирован: 05.09.2012 14:58:05

Сообщение SeZuka »

evb87ar писал(а):TabControl.Tabs имеет тип TStrings.

Соответственно:

Код: Выделить всё

TabControl1.Tabs[1] := 'qq';
работает.

Знаю, так тоже делал, таже ошибка.
mirk
постоялец
Сообщения: 319
Зарегистрирован: 24.09.2007 10:03:39

Сообщение mirk »

Если я правильно помню, то в TabControl есть и другие визуальные баги.
Возможно стоит использовать TPageControl или TExtendedNotebook, т.к. они более "свежие" и имеют больше шансов на исправление багов.
Аватара пользователя
evb87ar
новенький
Сообщения: 52
Зарегистрирован: 18.01.2012 21:08:02
Откуда: г. Архангельск

Сообщение evb87ar »

Знаю, так тоже делал, таже ошибка.

Да ладно, я ж специально проверил, всё работает. Могу скрин прилепить, если не верите.
SeZuka
постоялец
Сообщения: 209
Зарегистрирован: 05.09.2012 14:58:05

Сообщение SeZuka »

evb87ar писал(а):
Знаю, так тоже делал, таже ошибка.

Да ладно, я ж специально проверил, всё работает. Могу скрин прилепить, если не верите.

Верю, возможно у вас версия другая или операционка, просто уже столько "странностей" уже обнаружил в лазарусе...
В частности одна программа скомпилиная на х86 и на х64 считала по разному.
mirk писал(а):Если я правильно помню, то в TabControl есть и другие визуальные баги.
Возможно стоит использовать TPageControl или TExtendedNotebook, т.к. они более "свежие" и имеют больше шансов на исправление багов.

Мне нужен чтоб была одна страница и к ней закладки сверху, такое вроде только у TTabControl, у остальных к каждой закладке привязана своя страница типа фрэйма.
Kemet
постоялец
Сообщения: 241
Зарегистрирован: 10.02.2010 18:28:32
Откуда: Временно оккупированная территория
Контактная информация:

Сообщение Kemet »

SeZuka писал(а):Мне нужен чтоб была одна страница и к ней закладки сверху, такое вроде только у TTabControl, у остальных к каждой закладке привязана своя страница типа фрэйма.

В таком случае, может вполне устроит несколько TSpeedButton, у которых установлен одинаковый GroupIndex?
Аватара пользователя
alexs
долгожитель
Сообщения: 4069
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

SeZuka писал(а): Решил для MDI использовать TTabControl и сразу наткнулся на кучу непоняток:

Внятная эмуляция MDI делется в строк 20 кода.
Всё основано на присвоение Parent-а дочернего окна - окна родителя.
Для примера - в FBManager-е сейчас именно так сделано + навигация по окнам через свою панель задач.
Думаю оформить, как будет время, в виде компоненты.
SeZuka
постоялец
Сообщения: 209
Зарегистрирован: 05.09.2012 14:58:05

Сообщение SeZuka »

Kemet писал(а):
SeZuka писал(а):Мне нужен чтоб была одна страница и к ней закладки сверху, такое вроде только у TTabControl, у остальных к каждой закладке привязана своя страница типа фрэйма.

В таком случае, может вполне устроит несколько TSpeedButton, у которых установлен одинаковый GroupIndex?

Думаю в эту сторону, тут скорее придется свой компонент писать.
Но на данном этапе нужно использовать то что есть, для ускорения разработки, поэтому хотелось бы разобраться с ошибкой. Мож дело в настройках компилятора или еще чего?
Kemet
постоялец
Сообщения: 241
Зарегистрирован: 10.02.2010 18:28:32
Откуда: Временно оккупированная территория
Контактная информация:

Сообщение Kemet »

SeZuka писал(а):хотелось бы разобраться с ошибкой. Мож дело в настройках компилятора или еще чего?

Для этого надо код смотреть, если бы ты его здесь прикрепил, то обсуждение намного активнее бы пошло, а так получается сфероконь какой-то
SeZuka
постоялец
Сообщения: 209
Зарегистрирован: 05.09.2012 14:58:05

Сообщение SeZuka »

Kemet писал(а):
SeZuka писал(а):хотелось бы разобраться с ошибкой. Мож дело в настройках компилятора или еще чего?

Для этого надо код смотреть, если бы ты его здесь прикрепил, то обсуждение намного активнее бы пошло, а так получается сфероконь какой-то

Писал же в самом начале, там всего 1 строчка кода. Проверил на пустом проекте, табконтрол и две кнопки (одна создает вкладку, другая меняет текст на ней), работает. Переделал свой проект на TExtendedNotebook, все нормально работает, остановился пока на нем.
Ответить