Глюк какой-то при работе с вкладками

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
euroflock
Обычный пользователь
Обычный пользователь
 
Сообщения: 68
Зарегистрирован: 26.02.2009 (Чт) 12:54

Глюк какой-то при работе с вкладками

Сообщение euroflock » 16.08.2009 (Вс) 11:22

Понимаю, что так быть не должно, а значит либо я что-то не так делаю либо глюк. Подскажите, как избавиться.

Есть форма (BorderStyle=Sizable), на ней элемент управления SSTab1 (вкладки). SSTab1 имеет три вкладки (имена - по умолчанию - любые). На одной из вкладок расположены два элемента: Label1 и TextBox1. На других вкладках, для наглядности, вообще ничего нет.

В программе есть код, управляющий изменением размеров элементов управления в зависимости от размеров формы (размеры в Twips):
Код: Выделить всё
Option Explicit
...
Public Borders As Integer

Private Sub Form_Load()
    ...
    Borders = 100
End Sub

Private Sub Form_Resize()
    On Error Resume Next
    SSTab1.Width = Me.ScaleWidth - Borders * 3
    SSTab1.Height = Me.ScaleHeight - Borders * 3
    Label1.Left = SSTab1.Left + Borders * 3
    Label1.Top = SSTab1.Top + Borders * 4
    TextBox1.Left = SSTab1.Left + Borders * 3 + Label1.Width
    TextBox1.Top = Label1.Top
    TextBox1.Width = SSTab1.Width - Borders * 4 - Label1.Width
End Sub


Как видите, все просто, все работает - размеры Лэйбла и ТексБокса меняются при изменении размеров формы.
Баги начинаются, когда активна любая другая вкладка (щелкните на другой вкладке, где нет элементов управления). Теперь, меняя размеры формы, Лэйбл и ТексБокс появляются на другой вкладке, где их быть совсем не должно (хотя размеры правильны).

Этот глюк появляется только (во всяком случае в этом примере) при использовании свойства Left этих двух контролов. Если закомментировать строки кода, в которых встречается ".Left", то все будет в порядке, то есть глюков не будет, однако и код тогда неправильным будет.

Что делать?

euroflock
Обычный пользователь
Обычный пользователь
 
Сообщения: 68
Зарегистрирован: 26.02.2009 (Чт) 12:54

Re: Глюк какой-то при работе с вкладками

Сообщение euroflock » 16.08.2009 (Вс) 11:43

Получилось как всегда (сначала написал пост с вопросом, а потом воспользовался поиском на форуме).
Оказывается это действительно глюк, а точнее недоработка элемента управления SSTab.
Есть что-нибудь наподобие, но без глюков?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Глюк какой-то при работе с вкладками

Сообщение alibek » 16.08.2009 (Вс) 12:01

Используй TabStrip, а не SSTab. Самому делать контейнеры несложно.
Lasciate ogni speranza, voi ch'entrate.

Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Re: Глюк какой-то при работе с вкладками

Сообщение Alexanbar » 18.08.2009 (Вт) 13:47

Это не глюк, а принцип работы SSTab. При смене вкладки для того, чтобы элеменеты с чужих вкладок не были видны, у них соответствующим образом меняются координаты.

Tabstrip тоже не поможет, поскольку в отличие от SSTAb, он эти координаты не меняет автоматически, и это придется делать руками самостоятельно.

А по минимуму, нужно вставить в код проверку текущего таба:

Код: Выделить всё
sub Form_Resize
   
   If sstab1.tab=1 then
   
   ........


   end if

end sub


Или делать необходимый ресайз в событии SSTab1_Click

euroflock
Обычный пользователь
Обычный пользователь
 
Сообщения: 68
Зарегистрирован: 26.02.2009 (Чт) 12:54

Re: Глюк какой-то при работе с вкладками

Сообщение euroflock » 24.08.2009 (Пн) 20:48

За всё время моего "знакомства" с Visual Basic (6.0 и .NET) время от времени появляются или всплывают всякие казусы, которые либо невозможно обойти либо невозможно исправить...

Правильно ли я поступаю, постепенно (и скорее всего бесповоротно) переходя на DELPHI ?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Глюк какой-то при работе с вкладками

Сообщение alibek » 24.08.2009 (Пн) 21:57

euroflock писал(а):Правильно ли я поступаю, постепенно (и скорее всего бесповоротно) переходя на DELPHI ?

Тебе кто-нибудь запрещает? Переходи.
Lasciate ogni speranza, voi ch'entrate.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Глюк какой-то при работе с вкладками

Сообщение Денис » 25.08.2009 (Вт) 14:39

euroflock писал(а):Правильно ли я поступаю, постепенно (и скорее всего бесповоротно) переходя на DELPHI ?

Ну вот, еще один. Надо не переходить с языка на язык, а изучать их, чтобы зная их тонкости и ньюансы можно было выбирать, с помощью какого языка ты можешь быстрее и/или качественнее решить поставленную задачу.
Переходить можно разве что с технологии на технологию, с объектной модели на объектную модель, ну или с парадигмы на парадигму.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Глюк какой-то при работе с вкладками

Сообщение jangle » 25.08.2009 (Вт) 14:59

euroflock писал(а):Получилось как всегда (сначала написал пост с вопросом, а потом воспользовался поиском на форуме).
Оказывается это действительно глюк, а точнее недоработка элемента управления SSTab.
Есть что-нибудь наподобие, но без глюков?


Действительно глюк.. Только глюк пОграммиста... :)

euroflock
Обычный пользователь
Обычный пользователь
 
Сообщения: 68
Зарегистрирован: 26.02.2009 (Чт) 12:54

Re: Глюк какой-то при работе с вкладками

Сообщение euroflock » 28.08.2009 (Пт) 12:17

Денис писал(а):Ну вот, еще один. Надо не переходить с языка на язык, а изучать их, чтобы зная их тонкости и ньюансы можно было выбирать, с помощью какого языка ты можешь быстрее и/или качественнее решить поставленную задачу.


Вероятно здесь есть доля правды. На DELPHI (после VB и VB.NET) писать один и тот же код гораздо дольше и более неудобно (всё как-то не с руки и не так как привык), но надеюсь, что глюков и ограничений будет меньше.

А были бы МелкоМягкие подальновиднее, то сделали бы compile to native code for Win32 под VB.NET.

euroflock
Обычный пользователь
Обычный пользователь
 
Сообщения: 68
Зарегистрирован: 26.02.2009 (Чт) 12:54

Re: Глюк какой-то при работе с вкладками

Сообщение euroflock » 04.09.2009 (Пт) 9:36

Вы знаете, не перестаю радоваться Delphi. Код приложения ВСЕГДА создается native for Win32 binary code (даже с использованием в приложении .NET компонетов) причём не требующий никаких сторонних библиотек!
Последний раз редактировалось euroflock 05.09.2009 (Сб) 19:11, всего редактировалось 1 раз.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Глюк какой-то при работе с вкладками

Сообщение jangle » 04.09.2009 (Пт) 10:23

euroflock писал(а):Вы знаете, не перестаю радоваться Delphi. Используется вся технологичность и новшества .NET Framework (2.0, 3.0, 3.5), а код приложения ВСЕГДА создается native for Win32 binary code!


Забавно, но могу использовать VB6, и технологичность и новшества .NET Framework (2.0, 3.0, 3.5), а код приложения ВСЕГДА создается native for Win32 binary code! Просто удивительно :)

euroflock
Обычный пользователь
Обычный пользователь
 
Сообщения: 68
Зарегистрирован: 26.02.2009 (Чт) 12:54

Re: Глюк какой-то при работе с вкладками

Сообщение euroflock » 05.09.2009 (Сб) 19:13

jangle писал(а):Забавно...! Просто удивительно

Что имелось в виду - сейчас в отредактированном сообщении. Или я не прав?

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Глюк какой-то при работе с вкладками

Сообщение jangle » 06.09.2009 (Вс) 14:39

euroflock писал(а):
jangle писал(а):Забавно...! Просто удивительно

Что имелось в виду - сейчас в отредактированном сообщении. Или я не прав?


То что функциональность .Net можно задействовать в любой COM-совместимой программной среде.

euroflock
Обычный пользователь
Обычный пользователь
 
Сообщения: 68
Зарегистрирован: 26.02.2009 (Чт) 12:54

Re: Глюк какой-то при работе с вкладками

Сообщение euroflock » 07.09.2009 (Пн) 16:52

jangle писал(а): функциональность .Net можно задействовать в любой COM-совместимой программной среде.

А кто в этом уверен, тот наверняка не "тягал" за своей COM-совместимой программной средой инсталляцию DotNetFramework (около 200 Мегабайт).

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Глюк какой-то при работе с вкладками

Сообщение jangle » 07.09.2009 (Пн) 19:03

euroflock писал(а):А кто в этом уверен, тот наверняка не "тягал" за своей COM-совместимой программной средой инсталляцию DotNetFramework (около 200 Мегабайт).


А по твоему .NET оказывается на машине клиента сам собой? И там не 200 мегабайт, а чуть побольше 30.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Google-бот, Mail.ru [бот] и гости: 32

    TopList  
cron