Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Scrolling массива label в Picture Добавлено: 11.08.06 18:52  

Автор вопроса:  Telishev S | Web-сайт: tsa-molotoff.jino-net.ru
Здраствуйте!
Возникла такая проблема: при скроллинге массива лейблов в пикчербоксе возникает flickering(не знаю как по русски)
Никто не знает как это избежать?


Private Sub MoveURLS(Optional XValue = 0, Optional YValue As Integer = 0)
Dim iTmp As Integer
Select Case XValue
Case Is <> 0
   For iTmp = 0 To Label2.Count - 1
        Label2(iTmp).Left = XValue
   Next iTmp
Case Else
   Label2(0).Top = YValue
   For iTmp = 1 To Label2.Count - 1
       Label2(iTmp).Top = Label2(iTmp - 1).Top + Label2(iTmp - 1).Height
   Next iTmp

End Select
End Sub


Изменеие AutoRedraw не помогает.

Ответить

  Ответы Всего ответов: 14  

Номер ответа: 1
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #1 Добавлено: 11.08.06 19:38
та никак идеально не сделаешь... попробуй сложить все лабелы во фрейм и двигать его, возможно не через Left\Top, а методом Move...

Ответить

Номер ответа: 2
Автор ответа:
 Telishev S



Вопросов: 11
Ответов: 44
 Web-сайт: tsa-molotoff.jino-net.ru
 Профиль | | #2
Добавлено: 11.08.06 21:20
Дык мне надо чтобы сзади был пикчер, котоый не менялся бы, а фрейм имеет неумираемый бордер!
Может есть другой контрол?

Ответить

Номер ответа: 3
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #3 Добавлено: 12.08.06 00:32
бордер как раз там умираемый, достаточно BorderStyle 0 поставить, просто наверное тебе прозрачность нужна...

мб лабелы в UserControl засунуть, он умеет быть прозрачным, и двигать лабелы тоже можно будет положением этого контрола...

Ответить

Номер ответа: 4
Автор ответа:
 Telishev S



Вопросов: 11
Ответов: 44
 Web-сайт: tsa-molotoff.jino-net.ru
 Профиль | | #4
Добавлено: 12.08.06 11:41
Мдя, надо попробовать, че-то я не допер до такого!
Посмотрим что получится.

Ответить

Номер ответа: 5
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #5
Добавлено: 12.08.06 12:56
1. cls
2. скопировать paintpicture картинку на picbox
3. рисовать print'ом на пиктуре боксе слова

имхо, самый правильный способ :)

Ответить

Номер ответа: 6
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #6
Добавлено: 12.08.06 13:49
Можно массив создать со строками, и еще переменную задать Integr'овую, сделать метод RefreshList, а в него написать, штоб с позиции n до позиции n + (число отображаемых элементов) циклом с массива значения считывались. А потом просто по лейблам раскидывай и все. Лейблов будет одинаковое количество, тормозов с перерисовкой не будет.

Ответить

Номер ответа: 7
Автор ответа:
 Telishev S



Вопросов: 11
Ответов: 44
 Web-сайт: tsa-molotoff.jino-net.ru
 Профиль | | #7
Добавлено: 12.08.06 14:56
В смысле раскидывать?
Заново создавать что ли, или что- то другое?
Наверно надо попробовать юзать TextOut

Ответить

Номер ответа: 8
Автор ответа:
 Telishev S



Вопросов: 11
Ответов: 44
 Web-сайт: tsa-molotoff.jino-net.ru
 Профиль | | #8
Добавлено: 12.08.06 14:57
To sne:
Дополнительно что ли слова печатать TextOut'ом?

Ответить

Номер ответа: 9
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #9 Добавлено: 12.08.06 17:25
Что-то я тоже непонял, не sne, не VBD...
При перемещении лабелов по пикчеру они тормозят, оставляя слебы, делаю тормоза, мигания и прочие глюки... от задача подвинуть плавно лабелы на пикчербоксе в котором картинка, так что бы оно без глюков было...

Ответить

Номер ответа: 10
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #10
Добавлено: 13.08.06 03:46
1. подвинуть менее чем на пиксел не удастся
2. зачем текстоут если можно стандартным методом picbox.print текст выводить
3. разумеется как понадобится вывесть текст на пиксел выше, сменить прийдетсчя picbox.currenty...

Ответить

Номер ответа: 11
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #11 Добавлено: 14.08.06 00:04
всёравно мерцать будет...

Ответить

Номер ответа: 12
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #12
Добавлено: 16.08.06 18:39
HACKER, так я и не собираюсь лабелы двигать!
Пусть posicia - позиция в списке, массив строк - MassivStrok, лейблы называются Labels, код такой:

Dim i as integer
For i = 0 to Labels.Count - 1
Labels(i).Caption = MassivStrok(i + posicia)
Next i

Posicia юзверь меняет скролл баром, количество лейблы создаются во время загрузки формы.

Ответить

Номер ответа: 13
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #13
Добавлено: 16.08.06 18:41
и стоят на месте

Ответить

Номер ответа: 14
Автор ответа:
 Telishev S



Вопросов: 11
Ответов: 44
 Web-сайт: tsa-molotoff.jino-net.ru
 Профиль | | #14
Добавлено: 17.08.06 08:59
Здесь уже решили проблему:
http://bbs.vbstreets.ru/viewtopic.php?t=27455
Всем спасибо!

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам