Страница: 1 |
Страница: 1 |
Вопрос: Scrolling массива label в Picture
Добавлено: 11.08.06 18:52
Автор вопроса: Telishev S | Web-сайт:
Здраствуйте!
Возникла такая проблема: при скроллинге массива лейблов в пикчербоксе возникает 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-сайт:
Профиль | | #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-сайт:
Профиль | | #4
Добавлено: 12.08.06 11:41
Мдя, надо попробовать, че-то я не допер до такого!
Посмотрим что получится.
Номер ответа: 5
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #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-сайт:
Профиль | | #7
Добавлено: 12.08.06 14:56
В смысле раскидывать?
Заново создавать что ли, или что- то другое?
Наверно надо попробовать юзать TextOut
Номер ответа: 8
Автор ответа:
Telishev S
Вопросов: 11
Ответов: 44
Web-сайт:
Профиль | | #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-сайт:
Профиль | | #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-сайт:
Профиль | | #14
Добавлено: 17.08.06 08:59
Здесь уже решили проблему:
http://bbs.vbstreets.ru/viewtopic.php?t=27455
Всем спасибо!