Почему в Label'е происходит мерцание?

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

Почему в Label'е происходит мерцание?

Сообщение DVV » 11.09.2004 (Сб) 20:14

На форме устанавливаем Таймер(интервал 1000), Label1.caption=time
(большой шрифт)И Label1 показывает время. Почему в Label'е происходит мерцание?
Vadim

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 11.09.2004 (Сб) 20:19

Попробуй form.autoredraw=true. А вообще мерцания быть не должно...
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

DVV
Бывалый
Бывалый
 
Сообщения: 212
Зарегистрирован: 02.09.2004 (Чт) 21:03
Откуда: Уфа

Сообщение DVV » 11.09.2004 (Сб) 20:36

НЕ помогает ,может что-нибудь ешё!?
Vadim

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 11.09.2004 (Сб) 20:42

Я пробовал Arial размером 48 и ничего не мерцало. Может это что-то другое в твой программе дает такой эффект?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

DVV
Бывалый
Бывалый
 
Сообщения: 212
Зарегистрирован: 02.09.2004 (Чт) 21:03
Откуда: Уфа

Сообщение DVV » 11.09.2004 (Сб) 21:00

А у тебя какой Basic стоит?
Vadim

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 11.09.2004 (Сб) 21:12

6.0. Это в-общем то не имеет значения.Если у тебя Windows 2k/XP то посмотри в диспетчере задач загруженность процессора. Если загруженность больше 50%, то ничего удивительного в мерцании нету.
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

DVV
Бывалый
Бывалый
 
Сообщения: 212
Зарегистрирован: 02.09.2004 (Чт) 21:03
Откуда: Уфа

Сообщение DVV » 11.09.2004 (Сб) 21:18

Хорошо посмотрю,но в VB.NET нечего не мерцает!
Vadim

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 12.09.2004 (Вс) 13:45

DVV писал(а):Хорошо посмотрю,но в VB.NET нечего не мерцает!

Есессно, там банально скорости не хватает, чтобы частоту рефреша монитора перекрыть... :)

DVV
Бывалый
Бывалый
 
Сообщения: 212
Зарегистрирован: 02.09.2004 (Чт) 21:03
Откуда: Уфа

Сообщение DVV » 12.09.2004 (Вс) 21:07

И что теперь делать?
Vadim

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 13.09.2004 (Пн) 0:47

попробу текстовое поле:
BorderStyle = 0
locked = true
backcolor = ButtonFace

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Re: Почему в Label'е происходит мерцание?

Сообщение Ennor » 13.09.2004 (Пн) 9:57

DVV писал(а):На форме устанавливаем Таймер(интервал 1000), Label1.caption=time

Погодь, ты его раз в секунду обновляешь, и он у тебя мерцает? Слуш, тут явно что-то с производительностью видяхи. Или же у тебя в это время крутится основной процесс, который все съедает. Попробуй в этом своем процессе хотя бы где-нибудь DoEvents вставить - должно помочь...

Shurrik
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 110
Зарегистрирован: 20.05.2004 (Чт) 5:35
Откуда: Керчь, Крым

Сообщение Shurrik » 13.09.2004 (Пн) 14:11

Установи на таймере интервал 500.
Колесо: Хочешь жить? Умей вертеться.

Юстас
Бывалый
Бывалый
 
Сообщения: 200
Зарегистрирован: 24.10.2003 (Пт) 5:05

Сообщение Юстас » 13.09.2004 (Пн) 16:53

Какие-то странные вещи тут пишут: 500 мс - моргает в два раза чаще и всё. Текстбокс - та же ерунда, что и с меткой
Единственный контрол, без мерцания выводящий сообщение - PictureBox, до шрифта 72 пробовал - рисует без мерцания, хотя метка у меня тоже мерцает

Код: Выделить всё
Private Sub Timer1_Timer()
    Pic1.AutoRedraw = True
    Pic1.Cls
    Pic1.Print Time
End Sub

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 13.09.2004 (Пн) 23:47

Придеться тебе пойти на "чорный рынок" за гранатой! :twisted:
Желательно Ф-1.
Далее по инструкции, см. ниже:
1) подходишь к компу
2) дергаешь чеку, заптхаешь в комп, и бижишь в ванную молася что не зацепило :roll:
удаче в подрывных работах :D

PATRIOT_kz
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 105
Зарегистрирован: 14.09.2004 (Вт) 21:09
Откуда: Павлодар, Казахстан

Сообщение PATRIOT_kz » 14.09.2004 (Вт) 21:15

Это надо через команду 'LockWindowUpdate' блокировать апдейт
элемента, в данном случае 'Label'a и всё работает.
Press any key . . .

Юстас
Бывалый
Бывалый
 
Сообщения: 200
Зарегистрирован: 24.10.2003 (Пт) 5:05

Сообщение Юстас » 14.09.2004 (Вт) 21:24

PATRIOT_kz, а ты сам пробовал через "команду" LockWindowUpdate? Если да, то покажи, как это делается :-))

DVV
Бывалый
Бывалый
 
Сообщения: 212
Зарегистрирован: 02.09.2004 (Чт) 21:03
Откуда: Уфа

Сообщение DVV » 14.09.2004 (Вт) 22:21

Да мне тоже интересно как!?
Vadim

Q2W
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 745
Зарегистрирован: 31.01.2004 (Сб) 20:46
Откуда: Питер

Сообщение Q2W » 15.09.2004 (Ср) 14:54

А енльзя на время перерисовки авторедров на форме выключить? Мне кажется должно помочь.
Я знаю верный путь

DVV
Бывалый
Бывалый
 
Сообщения: 212
Зарегистрирован: 02.09.2004 (Чт) 21:03
Откуда: Уфа

Сообщение DVV » 17.09.2004 (Пт) 19:46

Нет не помогает!"
Vadim

Юстас
Бывалый
Бывалый
 
Сообщения: 200
Зарегистрирован: 24.10.2003 (Пт) 5:05

Сообщение Юстас » 17.09.2004 (Пт) 20:16

DVV
Мне кажется, что с меткой ты не получишь желаемого. Не пробовал с PictureBox'ом, как я написал?

DVV
Бывалый
Бывалый
 
Сообщения: 212
Зарегистрирован: 02.09.2004 (Чт) 21:03
Откуда: Уфа

Сообщение DVV » 18.09.2004 (Сб) 19:10

ЮСТАС
Да,пробовал.Всё нормально.Но жалко там AUTOSIZE нельзя применить!
Vadim

Юстас
Бывалый
Бывалый
 
Сообщения: 200
Зарегистрирован: 24.10.2003 (Пт) 5:05

Сообщение Юстас » 18.09.2004 (Сб) 19:49

DVV писал(а):ЮСТАС
Да,пробовал.Всё нормально.Но жалко там AUTOSIZE нельзя применить!
Какой автосайз? Чтобы пикчер был по размеру надписи? Так это же элементарно делается.
Попробуй так:
Pic1.Width = Pic1.TextWidth(Time)
Pic1.Height = Pic1.TextHeight(Time)
И немного подредактировать (экспериментально) длину и ширину.

DVV
Бывалый
Бывалый
 
Сообщения: 212
Зарегистрирован: 02.09.2004 (Чт) 21:03
Откуда: Уфа

Сообщение DVV » 18.09.2004 (Сб) 21:49

Спасибо ЮСТАС !!! :) :D :lol:
Vadim


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

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

Сейчас этот форум просматривают: Yandex-бот и гости: 3

    TopList