Кнопка - как в html

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Vovik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 643
Зарегистрирован: 02.08.2003 (Сб) 15:14
Откуда: Belarus, Minsk

Кнопка - как в html

Сообщение Vovik » 25.02.2004 (Ср) 16:18

Люди, а как сделать кнопку, как ссылки на html страницах? :roll:

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 25.02.2004 (Ср) 16:23

Сделай лейбл, который будет менять свой шрифт на подчеркнутый при наведении на него мыши (MouseMove) и обрабатывай Label_Click, чтобы производить действия по нажатию мыши.

Vovik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 643
Зарегистрирован: 02.08.2003 (Сб) 15:14
Откуда: Belarus, Minsk

Сообщение Vovik » 25.02.2004 (Ср) 16:26

RayShade писал(а):Сделай лейбл, который будет менять свой шрифт на подчеркнутый при наведении на него мыши (MouseMove) и обрабатывай Label_Click, чтобы производить действия по нажатию мыши.
Я так пробовал... оно иногда глюкает(не срабатывает).... а по другому никак нельзя? :wink:

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 25.02.2004 (Ср) 20:19

Мона. Используй api-функцию GetCursorPos. Она возвращает положение курсора (в пикселах). Затем определи положение твоего label относительно края экрана
Код: Выделить всё
lblLeft=Form.Left + Label1.Left)/Screen.TwipsPerPixelX
lblTop=(Form.Top + Label1.Top)/Screen.TwipsPerPixelY
lblWidth=Label1.Width/Screen.TwipsPerPixelX
lblHeight=Label1.Height/Screen.TwipsPerPixelY


По таймеру смотри, не находится ли курсор в пределах label и если находится, то делай текст подчёркнутым...
Код: Выделить всё
If Cursor.X > lblLeft and cursor.X < lblLeft + lblWidth Then
If Cursor.Y > lblTop and cursor.Y < lblTop + lblHeight Then
Label1.Font.Underline=True
Label1.ForeColor=RGB(0,0,255)
Else:
Label1.Font.Underline=False
Label1.ForeColor=RGB(0,0,0)
End If
End If

И так для каждого label на форме.

Vovik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 643
Зарегистрирован: 02.08.2003 (Сб) 15:14
Откуда: Belarus, Minsk

Сообщение Vovik » 25.02.2004 (Ср) 20:28

Сиб.. большое!!! :D

Kostyan
Постоялец
Постоялец
 
Сообщения: 439
Зарегистрирован: 20.09.2002 (Пт) 4:14
Откуда: Россия, Уссурийск

Сообщение Kostyan » 26.02.2004 (Чт) 1:08

Люди, вы гоните, это-ж способ через ж...пу. Единственно правильный (с точки зрения оптимальности) способ это обработка MouseMove и Click :!:
Нет ничего невозможного для человека с интеллектом.

Vovik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 643
Зарегистрирован: 02.08.2003 (Сб) 15:14
Откуда: Belarus, Minsk

Сообщение Vovik » 26.02.2004 (Чт) 2:25

Kostyan писал(а):Люди, вы гоните, это-ж способ через ж...пу. Единственно правильный (с точки зрения оптимальности) способ это обработка MouseMove и Click :!:

Да я уже понял... Но тоже способ! :roll:

XPraptor
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 115
Зарегистрирован: 02.12.2003 (Вт) 18:13
Откуда: Minsk

Сообщение XPraptor » 26.02.2004 (Чт) 16:59

Kostyan:
А как ты определишь по MouseMove что курсор сошел с лабеля?
Чтобы вернуть прежний текст если юзер передумал кликать.
Особенно если на форме контрол на контроле и контролом погоняет, да еще и Visible=False куча висит до поры до времени.
Если руки кривые, то не надо ругать разработчиков.

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 26.02.2004 (Чт) 23:21

XPraptor писал(а):Kostyan:
А как ты определишь по MouseMove что курсор сошел с лабеля?


Хоть я и не Kostyan, но это можно определить по Form_MouseMove
Нет меня больше

Kostyan
Постоялец
Постоялец
 
Сообщения: 439
Зарегистрирован: 20.09.2002 (Пт) 4:14
Откуда: Россия, Уссурийск

Сообщение Kostyan » 27.02.2004 (Пт) 2:25

Спасибо A.A.Z. :wink: Я немного опоздал с ответом.
Нет ничего невозможного для человека с интеллектом.

XPraptor
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 115
Зарегистрирован: 02.12.2003 (Вт) 18:13
Откуда: Minsk

Сообщение XPraptor » 27.02.2004 (Пт) 13:46

Ребята! Вы как ламеры ей богу! Я же написал, что на форме нет свободного пространства, ВСЯ ФОРМА ЗАНЯТА СОТНЕЙ КОНТРОЛОВ. Если Вы не в курсе, то Form_MouseMove происходит когда мыша двигается над пустым участком формы, а не над контролами. Поэтому я и спрашиваю КАК ВЫ ОПРЕДЕЛИТЕ ЧТО МЫШЬ УШЛА С КОНТРОЛА!!!!!!!!! Для сотни контролов проверку будете писать друг для друга в MouseMove?
Если руки кривые, то не надо ругать разработчиков.


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

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

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

    TopList  
cron