Не прорисовывается CmdButton

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

Не прорисовывается CmdButton

Сообщение Space » 08.12.2008 (Пн) 1:09

вместо CmdButton показывает белый треугольник иногда и никакой реакции на клик... (Style=Graphical)

Alprog
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 127
Зарегистрирован: 15.05.2008 (Чт) 14:21
Откуда: Владивосток

Re: Не прорисовывается CmdButton

Сообщение Alprog » 08.12.2008 (Пн) 9:23

Во время чего это происходит? Опиши подробнее, что происходит.

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Re: Не прорисовывается CmdButton

Сообщение Space » 08.12.2008 (Пн) 10:17

обсмеяться, упасть, не подняться :) Треугольник... Допрограммился... Прямоугольник белый после загрузки формы. При том не всегда. Пару раз нормально показывает, потом когда глюк, так он и остаётся при повторной загрузке формы.

Alprog
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 127
Зарегистрирован: 15.05.2008 (Чт) 14:21
Откуда: Владивосток

Re: Не прорисовывается CmdButton

Сообщение Alprog » 08.12.2008 (Пн) 11:32

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

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Re: Не прорисовывается CmdButton

Сообщение Williams » 08.12.2008 (Пн) 15:22

Alprog писал(а):Не знаю, может у тебя цикл длинный, и за это время кнопка не успевает рефрешиться или что-то вроде того...


В таком случае DoEvents в помощь.
И вы думаете, что вас оставят в живых после прочтения этого поста?

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Re: Не прорисовывается CmdButton

Сообщение Space » 08.12.2008 (Пн) 15:36

цилов и особых задержек в Form_Load нет. Также в конце процы вызываю Cmd1.Refresh - не помогает. Глюк появляется после клика на кнопке - закрытие - открытие формы, причём на любой кнопе формы - кнопка становится прозрачной. Попробую сменить MaskColor.

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Не прорисовывается CmdButton

Сообщение Viper » 08.12.2008 (Пн) 15:39

Space писал(а):цилов и особых задержек в Form_Load нет. Также в конце процы вызываю Cmd1.Refresh - не помогает. Глюк появляется после клика на кнопке - закрытие - открытие формы.
Таки код в студию!
Весь мир матрица, а мы в нем потоки байтов!

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Re: Не прорисовывается CmdButton

Сообщение Space » 08.12.2008 (Пн) 15:41

таки виноват MaskColor=&H00C0C0C0& - непонятно почему (UseMaskColor=False).

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Re: Не прорисовывается CmdButton

Сообщение Space » 08.12.2008 (Пн) 18:33

Вот код. Назначение процедуры SetBackColorControl (вызывается в таймере) - устанавливает BackColor множеству контролов при получении фокуса, без явного кода в GotFocus и LostFocus контролов. Кликните на "кликни", потом на "Нажми", закройте Form2, затем опять на "кликни" - cmd1 прозрачна...
Вложения
Глюк прорисовки CommandButton.zip
(2.79 Кб) Скачиваний: 42

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Re: Не прорисовывается CmdButton

Сообщение Space » 09.12.2008 (Вт) 2:31

гг. Никого не впечатлило...

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Не прорисовывается CmdButton

Сообщение Viper » 09.12.2008 (Вт) 8:21

Space, код - ужос-ужос-ужос! Это во-первых, а во-вторых - решение:
Код: Выделить всё
Private Sub Frm2_Show()
Dim p As New Form2
    p.Show vbModal, Me
End Sub
Должно быть ровно так, и никак иначе. Все. Почему так? Предлагаю подумать.
Весь мир матрица, а мы в нем потоки байтов!

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Re: Не прорисовывается CmdButton

Сообщение Space » 09.12.2008 (Вт) 14:59

а чё такого ужосного в коде? Код строен и элегантен :) А почему так, а не иначе? Никаких мыслей не возникает... :alien:

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Re: Не прорисовывается CmdButton

Сообщение Space » 10.12.2008 (Ср) 1:08

Viper поумничал и испарился. И никто ничего не знает :)

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Re: Не прорисовывается CmdButton

Сообщение Space » 10.12.2008 (Ср) 2:35

1. Viper, а как ты будешь применять метод Hide к форме "p"???
2. Дошло, что Form2 не выгружается полностью, или что-то не подчищается без Set Form2 = Nothing после Form2.Show. Но почему??? Перебор форм показывает, что форма не загружена.

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Не прорисовывается CmdButton

Сообщение Viper » 10.12.2008 (Ср) 8:56

Space писал(а):1. Viper, а как ты будешь применять метод Hide к форме "p"???
Элементарно. Сохрани это p на нужном тебе уровне (модуля или глобально) и применяй p.Hide.
Space писал(а):2. Дошло, что Form2 не выгружается полностью, или что-то не подчищается без Set Form2 = Nothing после Form2.Show. Но почему??? Перебор форм показывает, что форма не загружена.
Форма не загружена, но объект формы судя по всему существует. Попробуй Debug.Print "Объект формы уничтожен" в Form_Terminate поставить. Увидишь, когда уничтожается ссылка (или не увидишь).
Весь мир матрица, а мы в нем потоки байтов!

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Re: Не прорисовывается CmdButton

Сообщение Space » 10.12.2008 (Ср) 14:17

Элементарно. Сохрани это p на нужном тебе уровне (модуля или глобально) и применяй p.Hide.
Но тогда глюк вернётся ;) Всё таки Set Form2 = Nothing необходим ;)

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Re: Не прорисовывается CmdButton

Сообщение Space » 10.12.2008 (Ср) 14:57

да, Form_Terminate не происходит... а почему???

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Не прорисовывается CmdButton

Сообщение Viper » 10.12.2008 (Ср) 16:41

Space писал(а):да, Form_Terminate не происходит... а почему???
Значит продолжает жить ссылка
Весь мир матрица, а мы в нем потоки байтов!

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Re: Не прорисовывается CmdButton

Сообщение Space » 11.12.2008 (Чт) 1:10

а почему, собственно, происходит глюк? Он не должен происходить в любом случае.


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 106

    TopList