haav | Дата: Понедельник, 08.10.2012, 18:15 | Сообщение # 1 |
Генералиссимус
Группа: Администраторы
Сообщений: 1373
Статус: Offline
| Табличка при помощи библиотеки window9
Писал по быстрому для Сереги. Возможно где -то можно поуменьшить и приукрасить код. Важен сам принцип создания простой таблички:
Code #DEFINE UNICODE #Include Once "disphelper/disphelper.bi" #Include "window9.bi"
Dim As Integer event,i=1,array(10,20)={{1}}, curent = 1 Dim as HWND hwnd
Sub speak (ByRef text As String) Dim myt As WString * 256
Dim As Integer isSpeaking Dim As HRESULT hr
DISPATCH_OBJ(tts)
dhInitialize(TRUE) dhToggleExceptions(FALSE)
myt = "Sapi.SpVoice" hr = dhCreateObject(@myt, NULL, @tts) If hr <> 0 Then Exit Sub
myt = text dhCallMethod(tts, ".Speak(%S)", @myt)
SAFE_RELEASE(tts) End Sub
hwnd=OpenWindow("Ïðèâåò",10,10,583,500) : CenterWindow(hwnd) AddKeyboardShortcut(hwnd,FVIRTKEY,VK_UP,1) AddKeyboardShortcut(hwnd,FVIRTKEY,VK_DOWN,2) AddKeyboardShortcut(hwnd,FVIRTKEY,VK_LEFT,3) AddKeyboardShortcut(hwnd,FVIRTKEY,VK_RIGHT,4) For y As Integer = 0 To 20 For x As Integer = 0 To 10 TextGadget(i,x*50+10,y*20+20,45,15,Str(i)) SetGadgetColor(i,&h505050,255,3) i+=1 Next Next SetGadgetColor(curent,&hb0b0b0,255,3) Do event=WaitEvent() Select Case event Case eventmenu select Case EventNumber Case 1 If curent - 11>0 Then curent-=11 SetGadgetColor(curent+11,&h505050,255,3) SetGadgetColor(curent,&hb0b0b0,255,3) ThreadCall speak(Str(curent)) EndIf Case 2 If curent + 11<232 Then curent+=11 SetGadgetColor(curent-11,&h505050,255,3) SetGadgetColor(curent,&hb0b0b0,255,3) ThreadCall speak(Str(curent)) EndIf Case 3 If curent - 1>0 Then curent-=1 SetGadgetColor(curent+1,&h505050,255,3) SetGadgetColor(curent,&hb0b0b0,255,3) ThreadCall speak(Str(curent)) EndIf Case 4 If curent + 1<232 Then curent+=1 SetGadgetColor(curent-1,&h505050,255,3) SetGadgetColor(curent,&hb0b0b0,255,3) ThreadCall speak(Str(curent)) EndIf End Select End Select If Event=EventClose Then End Loop
Данный код отображает визуально выделенную ячейку и произносит ее голосом как может
Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
|
|
| |