Да, но я хочу, чтобы названия вкладок менялись в зависимости от языка.
Светодиодная матрица - МОДЖЕТ (антигаджет) на Пурике
Сообщений 91 страница 120 из 446
Поделиться9215.06.2011 18:38:24
хочу, чтобы названия вкладок менялись в зависимости от языка.
; Shows using of several panels... If OpenWindow(0, 0, 0, 322, 220, "PanelGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) PanelGadget (0, 8, 8, 306, 170) AddGadgetItem (0, -1, "Panel 1") AddGadgetItem (0, -1,"Panel 2") ButtonGadget(2, 10, 15, 80, 24,"Button 1") ButtonGadget(3, 95, 15, 80, 24,"Button 2") CloseGadgetList() ButtonGadget(1,20,190,140,24,"Сменить имена вкладок") Repeat Event = WaitWindowEvent() If Event = #PB_Event_Gadget If EventGadget() = 1 SetGadgetItemText(0,0,"Вкладка № 1") SetGadgetItemText(0,1,"Вкладка № 2") EndIf EndIf Until Event = #PB_Event_CloseWindow EndIf
Поделиться9315.06.2011 19:09:54
Спасибо. SetGadgetItemText то, что надо было.
Отредактировано max (15.06.2011 19:10:23)
Поделиться9417.06.2011 16:44:50
Всем !
При переводе возникла проблема. При определении устройства выводятся сообщения: отключен/подключен. Они прописаны жестко:
NO_Device и #YES_Device. Как можно загрузить их в Procedure LoadText(File.s)?
Поделиться9517.06.2011 19:29:05
Можно более подробно?
С ссылками на код Василия или примерами того что не получилось.
Я так и не понял куда это нужно вывести. В окно? Если для, то причем здесь загрузка из файла?
Поделиться9617.06.2011 19:49:38
С переводом программы на английский язык. То есть, если девайс не подключен, то создается
TextGadget(1, 440, 8, 120 ,15,#NO_Device) : SetGadgetColor(1, #PB_Gadget_FrontColor, $0000FF), где #NO_Device="отключен". Надо чтобы при выборе английского языка #NO_Device="disabled". Как так сделать?
Поделиться9717.06.2011 19:51:13
Нужно константы заменить на строковые переменные.
Тогда все получится.
Поделиться9817.06.2011 19:55:58
Можно по подробней?
Поделиться9917.06.2011 20:10:41
Это константы
#NO_Device #YES_Device
Нужно переделать их в строковые переменные
NO_Device.s YES_Device.s
Скорее всего их придется сделать глобальными
Global NO_Device.s Global YES_Device.s
Далее, нужно найти в программе все константы
#NO_Device #YES_Device
и убрать решетку (символ #) в начале их имен.
Поделиться10017.06.2011 20:16:27
Спасибо.
Поделиться10117.06.2011 20:30:43
А как теперь сделать запись Procedure LoadText(File.s)? Переменные имеют один SetGadgetText.
Поделиться10217.06.2011 20:53:39
Переменные имеют один SetGadgetText.
Всмысле?
Поделиться10317.06.2011 21:23:08
Procedure FindDevice_Timer() ; таймер - процедура проверки подключения нашего устройства Static Old_Test Test=HID_Lib_DeviceTest(USB_PID, USB_VID);(USB_PID, USB_VID) If Test<>Old_Test Old_Test=Test If Test HID_Lib_CloseDevice(R_DeviceHandle) : HID_Lib_CloseDevice(W_DeviceHandle) W_DeviceHandle=HID_Lib_OpenDevice(USB_PID, USB_VID);(USB_PID, USB_VID) R_DeviceHandle=HID_Lib_OpenDevice(USB_PID, USB_VID);(USB_PID, USB_VID) SetGadgetText(0,#YES_Device) SetGadgetColor(0, #PB_Gadget_FrontColor, $00FF0F) Else HID_Lib_CloseDevice(R_DeviceHandle) : HID_Lib_CloseDevice(W_DeviceHandle) R_DeviceHandle=0 : W_DeviceHandle=0 SetGadgetText(0,#NO_Device) SetGadgetColor(0, #PB_Gadget_FrontColor, $0000FF) EndIf EndIf EndProcedure
Поделиться10417.06.2011 21:29:17
Ну и?
Поделиться10517.06.2011 21:38:25
SetGadgetText(0,YES_Device)
SetGadgetColor(0, #PB_Gadget_FrontColor, $00FF0F)
Else
HID_Lib_CloseDevice(R_DeviceHandle) : HID_Lib_CloseDevice(W_DeviceHandle)
R_DeviceHandle=0 : W_DeviceHandle=0
SetGadgetText(0,NO_Device)
Если я сделаю SetGadgetText(0,ReadPreferenceString("ac17","отключен") ), то как мне сделать "включен"?
Отредактировано max (17.06.2011 21:39:05)
Поделиться10617.06.2011 21:42:13
Если я сделаю SetGadgetText(0,ReadPreferenceString("ac17","отключен") ), то как мне сделать "включен"?
Нет, в место этого нужно записать текст в переменные, т. е.
NO_Device = ReadPreferenceString("ac17","отключен")
и YES_Device записать соответствующий текст.
Поделиться10717.06.2011 21:48:53
Спасибо. Это надо записать в Procedure LoadText(File.s)?
Поделиться10817.06.2011 21:56:17
Это надо записать в Procedure LoadText(File.s)?
Там, где загружаются языковые файлы.
Если это производится в процедуре LoadText, то да, в ней.
Поделиться10919.06.2011 15:40:31
Спасибо.
Поделиться11019.06.2011 19:03:15
Что-то у меня ни чего не получается. Гляньте код.
И сейчас только заметил, что моджет не определяется. Код взял с Цветомузыкальный медальон "Кошечкин глаз" ("Pussycat Eye")
Спасибо.
Отредактировано max (19.06.2011 19:27:46)
Поделиться11119.06.2011 20:00:29
Как минимум проблема в несоответствии PID и VID - они местами перепутаны.
#USB_PID=$FFFF ;идентификатор PID #USB_VID=$5555 ;идентификатор VID
'USB Vendor ID and Product ID (Assigned by USB-IF) Const _usb_vid = &HFFFF Const _usb_pid = &H5555
Поделиться11219.06.2011 20:10:03
Да и надо добавить строку
SetTimer_(WindowID(0), 2, 800, @FindDevice_Timer() )
перед главным циклом (примерно 462 строка).
Поделиться11319.06.2011 20:10:27
Как минимум
Поменял местами, результат тот-же.
Поделиться11419.06.2011 20:12:37
Еще SetTimer нужно добавить, см. выше.
Поделиться11519.06.2011 20:24:08
Нашел одинаковые номера гаджетов, поэтому и не работало. Осталось одна проблема. При смене языка надпись меняется только если подключить/отключить моджет. В чем проблема?
Поделиться11619.06.2011 20:36:54
В конец процедуры LoadText, нужно добавить эти строки:
If HID_Lib_DeviceTest(#USB_PID, #USB_VID) SetGadgetText(1, YES_Device) SetGadgetColor(1, #PB_Gadget_FrontColor, $00FF0F) Else SetGadgetText(1, NO_Device) SetGadgetColor(1, #PB_Gadget_FrontColor, $0000FF) EndIf
Поделиться11719.06.2011 21:05:50
Теперь как надо.
Другая проблема. При попытке добавить SetWindowTitle(1,ReadPreferenceString("ac47","О программе MODGET 8x8") ), программа вылетает.
Думаю, что проблема в том, что окно еще не создано. Как от этого избавится?
Поделиться11819.06.2011 21:12:48
Тут есть два варианта решения проблемы.
Или хранить текст в переменной (как в случае с YES_Device и NO_Device) или создавать невидимое окно "О программе" и отображать его по запросу пользователя, а при попытке закрыть, делать снова невидимым.
Поделиться11919.06.2011 21:19:27
Ясно. Для начала попробую первый вариант.
Поделиться12020.06.2011 18:59:42
Привет!
Возможно-ли сделать так, чтобы строчка
OpenFileRequester("Открыть файл", "", "Текстовые файлы (*.txt)|*.txt" , 0)
так же переводилась при выборе языка? Это эдинственное, что перевести пока не удалось.