PureBasic - форум

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » PureBasic - форум » Вопросы по PureBasic » Светодиодная матрица - МОДЖЕТ (антигаджет) на Пурике


Светодиодная матрица - МОДЖЕТ (антигаджет) на Пурике

Сообщений 91 страница 120 из 446

91

Да, но я  хочу, чтобы названия вкладок менялись в зависимости от языка.

0

92

max написал(а):

хочу, чтобы названия вкладок менялись в зависимости от языка.

Код:
 ; 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

+1

93

Спасибо. SetGadgetItemText то, что надо было. 8-)

Отредактировано max (15.06.2011 19:10:23)

0

94

Всем :flag:!
При переводе возникла проблема. При определении устройства выводятся сообщения: отключен/подключен. Они прописаны жестко:
NO_Device и #YES_Device. Как можно загрузить их в Procedure LoadText(File.s)?

0

95

Можно более подробно?
С ссылками на код Василия или примерами того что не получилось.

Я так и не понял куда это нужно вывести. В окно? Если для, то причем здесь загрузка из файла?

0

96

С переводом программы на английский язык. То есть, если девайс не подключен, то создается
TextGadget(1, 440, 8, 120 ,15,#NO_Device) : SetGadgetColor(1, #PB_Gadget_FrontColor, $0000FF), где #NO_Device="отключен". Надо чтобы при выборе английского языка #NO_Device="disabled". Как так сделать?

0

97

Нужно константы заменить на строковые переменные.
Тогда все получится.

0

98

Можно по подробней?

0

99

Это константы

Код:
#NO_Device
#YES_Device

Нужно переделать их в строковые переменные

Код:
NO_Device.s
YES_Device.s

Скорее всего их придется сделать глобальными

Код:
Global NO_Device.s
Global YES_Device.s

Далее, нужно найти в программе все константы

Код:
#NO_Device
#YES_Device

и убрать решетку (символ #) в начале их имен.

0

100

Спасибо.

0

101

А как теперь сделать запись Procedure LoadText(File.s)? Переменные имеют один SetGadgetText.

0

102

max написал(а):

Переменные имеют один SetGadgetText.

Всмысле?

0

103

Код:
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

0

104

Ну и?

0

105

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)

0

106

max написал(а):

Если я сделаю SetGadgetText(0,ReadPreferenceString("ac17","отключен") ), то как мне сделать "включен"?

Нет, в место этого нужно записать текст в переменные, т. е.

Код:
NO_Device = ReadPreferenceString("ac17","отключен")

и YES_Device записать соответствующий текст.

0

107

Спасибо. Это надо записать в Procedure LoadText(File.s)?

0

108

max написал(а):

Это надо записать в Procedure LoadText(File.s)?

Там, где загружаются языковые файлы.
Если это производится в процедуре LoadText, то да, в ней.

0

109

Спасибо.

0

110

Что-то у меня ни чего не получается. :dontknow: Гляньте код.
И сейчас только заметил, что моджет не определяется. Код взял с Цветомузыкальный медальон "Кошечкин глаз" ("Pussycat Eye")
Спасибо.

Отредактировано max (19.06.2011 19:27:46)

0

111

Как минимум проблема в несоответствии 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

0

112

Да и надо добавить строку

Код:
SetTimer_(WindowID(0), 2, 800, @FindDevice_Timer() )

перед главным циклом (примерно 462 строка).

0

113

Пётр написал(а):

Как минимум

Поменял местами, результат тот-же.

0

114

Еще SetTimer нужно добавить, см. выше.

0

115

Нашел одинаковые номера гаджетов, поэтому и не работало. Осталось одна проблема. При смене языка надпись меняется только если подключить/отключить моджет. В чем проблема?

0

116

В конец процедуры 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

0

117

Теперь как надо.
Другая проблема. При попытке добавить SetWindowTitle(1,ReadPreferenceString("ac47","О программе MODGET 8x8") ), программа вылетает.
Думаю, что проблема в том, что окно еще не создано. Как от этого избавится?

0

118

Тут есть два варианта решения проблемы.
Или хранить текст в переменной (как в случае с YES_Device и NO_Device) или создавать невидимое окно "О программе" и отображать его по запросу пользователя, а при попытке закрыть, делать снова невидимым.

0

119

Ясно. Для начала попробую первый вариант.

0

120

Привет!
Возможно-ли сделать так, чтобы строчка

Код:
OpenFileRequester("Открыть файл", "", "Текстовые файлы (*.txt)|*.txt" , 0)

так же переводилась при выборе языка? Это эдинственное, что перевести пока не удалось.

0


Вы здесь » PureBasic - форум » Вопросы по PureBasic » Светодиодная матрица - МОДЖЕТ (антигаджет) на Пурике