Показать сообщение отдельно
Старый 11.01.2008, 23:01   #11
FrankH
Разработчик
 
Регистрация: 09.12.2007
Сообщений: 376
Написано 83 полезных сообщений
(для 122 пользователей)
Re: Примеры элементов GUI

На этом пожалуй все, хотя нет, я упоминаю в каждом куске кода о подсказке при наведении мыши на элемент. Для его работы необходимо в функцию меню (там где используете графические элементы) добавить следующие строчки (в начало):
If MouseHit(1) Mouse_Hit=1
OMouse_HitX=Mouse_HitX
OMouse_HitY=Mouse_HitY
Mouse_HitX=MouseX()
Mouse_HitY=MouseY()
If (OMouse_HitX=Mouse_HitX And OMouse_HitY=Mouse_HitY) Then
If help_delay<maxhelp_delay Then
help_delay=help_delay+1
EndIf
Else
help_delay=0
exploration$=0
EndIf


А после вызова всех элементов:
If exploration$<>0 ShowHelp(Mouse_HitX,Mouse_HitY,exploration$)
И сама функция с расчетом положения относительно краев экрана:
Function ShowHelp(x,y,txt$)
lt=ch_size*Len(txt$)/2
;просчитываем, какую область покажет подсказка
ltt=lt*.5
Color RIC3,GIC3,BIC3
If x>GWeit-ltt Then xt=x-lt Else If x<ltt Then xt=x Else xt=x-ltt ;если выходит за экран,
If y<ch_size Then yt=y+ch_size+24 Else yt=y ;переносим в другое место
Rect xt,yt-ch_size,lt,ch_size,1
Color RIC2,GIC2,BIC2
Rect xt,yt-ch_size,lt,ch_size,0
Color RIC1,GIC1,BIC1
Text xt+ltt,yt-ch_size,txt$,1,0
End Function
(Offline)
 
Ответить с цитированием