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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> SSTab - Странные метаморфозы 
:(
    Опции темы
turgi
Дата 9.11.2005, 19:02 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











На SSTab есть 2 закладки, на каждой из которых находятся свои элементы управления. В FormLoad() указано, какая закладка должна появляться при старте. Проблема в следуюшем: когда я задаю из программы свойство Left для некоторых компонентов, тo эти компоненты появляются на ОБОИХ закладках SSTab-a.

Что я делаю не так?
Каk это исправить?
  Вверх
Voldemar2004
Дата 11.11.2005, 09:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23



Цитата(turgi @ 9.11.2005, 19:02)
когда я задаю из программы свойство Left для некоторых компонентов
Что за компоненты?



--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
turgi
Дата 11.11.2005, 10:41 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Обычные компоненты, типа Combo, Text, Label
  Вверх
Igor Graf
Дата 11.11.2005, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 10.2.2005

Репутация: нет
Всего: нет



Ты бы хоть кусок кода привел а то не совсем понятна проблема!

С уважением Graf
PM MAIL   Вверх
JUmPER
Дата 27.9.2006, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 196
Регистрация: 22.8.2006

Репутация: 1
Всего: 3



то же самое и у меня
меняю Top -- всё ок
меняю Left -- компонент почему-то перепрыгивает на текущую закладку (а был он на другой)

Это сообщение отредактировал(а) JUmPER - 27.9.2006, 14:39
--------------------
Существует 10 типов людей: те, которые понимают двоичную систему, и те, которые ее не понимаютСуществует 10 типов людей: те, кто понимают троичную систему, те, кто ее не понимают и те, кто путает ее с двоичной
PM MAIL   Вверх
mihanik
Дата 27.9.2006, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 11
Всего: 109



Ребята!

На сколько я помню (не уверен на все 100 %) даже Microsoft признаётся в том, что с SSTab имеют место подобного рода глюки.

Можно попробовать какой-нибудь аналогичный SSTab элемент.
Мультипэйдж, например...


--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
JUmPER
Дата 14.6.2007, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 196
Регистрация: 22.8.2006

Репутация: 1
Всего: 3



как бороться: функция проверки и функция-пример:

Код

Private Const SSTAB_SHIFT As Long = 75000
Private Const SSTAB_TYPE_NAME As String = "SSTab"


Private Function IsASSTab(aControl As Variant) As Boolean
    IsASSTab = (TypeName(aControl) = SSTAB_TYPE_NAME)
End Function


Public Sub FitHeight2Container(aComponent As Variant, _
Optional aContainer As Variant = Null, _
Optional aBottomInterval As Long = DEFAULT)

    Dim c_height As Long
    Dim c_top As Long

    ' parent as container if not specified
    If (IsNull(aContainer)) Then
        Set aContainer = aComponent.Container
    End If

    ' if container is a for ignore borders
    If (IsAForm(aContainer)) Then
        c_height = aContainer.ScaleHeight
        c_top = aComponent.Top
    Else
        c_height = aContainer.Height

        ' if container is not a parent of component shift left and top
        If (aContainer Is aComponent.Container) Then
            c_top = aComponent.Top
        Else
            c_top = aComponent.Top - aContainer.Top
        End If
    End If

    ' if intervals to bottom and/or right border defined use it
    If (aBottomInterval = DEFAULT) Then
        If (IsASSTab(aContainer)) Then
            c_height = c_height + aContainer.TabHeight - c_top * 2
        Else
            c_height = c_height - c_top * 2
        End If
    Else
        c_height = c_height - c_top - aBottomInterval
    End If

    aComponent.Height = c_height
End Sub


Это сообщение отредактировал(а) JUmPER - 15.6.2007, 14:35
--------------------
Существует 10 типов людей: те, которые понимают двоичную систему, и те, которые ее не понимаютСуществует 10 типов людей: те, кто понимают троичную систему, те, кто ее не понимают и те, кто путает ее с двоичной
PM MAIL   Вверх
mihanik
Дата 15.6.2007, 08:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 11
Всего: 109



Решение интересное...

Но ты дату смотрел?
 smile 


--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
JUmPER
Дата 15.6.2007, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 196
Регистрация: 22.8.2006

Репутация: 1
Всего: 3



mihanik, смотрел, просто только что сам с этим чудом разобрался + копался тут (на форуме) и случайно на эту темку наткнулся
--------------------
Существует 10 типов людей: те, которые понимают двоичную систему, и те, которые ее не понимаютСуществует 10 типов людей: те, кто понимают троичную систему, те, кто ее не понимают и те, кто путает ее с двоичной
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0700 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.