PureBasic - форум

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

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


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


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

Сообщений 241 страница 270 из 446

241

Картинки с готовой проги.

0

242

Это со всеми файлами или только с некоторыми?
Открыл с десяток файлов - подобного не заменил.

0

243

У меня с любым файлом.
Вот код:

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

;{---------Запрет на запуск программы более одного раза-----------  
a = CreateSemaphore_(#Null,0,1,"MODGET 8x8") 
If a<>0 And GetLastError_()= #ERROR_ALREADY_EXISTS 
  CloseHandle_(a) 
  End 
EndIf 
;}---------------------------------------------------------------

;{-----------------------Enumeration------------------------------
Enumeration 
  #Window_0 
  #Window_1
  #Window_2
  #Window_3
  #ButtonImage_3
EndEnumeration 
;}

;{ Images 
Enumeration
  #Image_Image_1
  #Image_ButtonImage_1
  #Image_ButtonImage_2
  #Image_ButtonImage_3
EndEnumeration
UsePNGImageDecoder()
;}

;{ Gadgets
Enumeration
  #Button_2
  #ComboBox_0
EndEnumeration

Define.l Event, EventWindow, EventGadget, EventType, EventMenu
;}----------------------------------------------------------------

;{----------------------Глобальные переменные---------------------
#Window_0=0
Global NO_Device.s="отключен"                            ;сообщения программы
Global YES_Device.s="подключен"                          ;сообщения программы
Global About.s="О программе МОДЖЕТ 8x8"
Global Mod.s="МОДЖЕТ 8x8"
Global Ver.s="Версия 1.0"
Global open.s="Открыть файл"
Global Maska.s="Текстовые файлы (*.txt)|*.txt"
Global Lib1.s="Файл отсутствует!"
Global Lib2.s="Для отображения времени"
Global Lib3.s="требуется файл"
#USB_PID=$5555                              ;идентификатор PID
#USB_VID=$FFFF                               ;идентификатор VID
Global R_DeviceHandle, W_DeviceHandle 
Global Text.s
Global Put.s ;абсолютный путь к файлу

#XML        = 0

SityNew$="29838"; - Барнаул

Structure MeteoInfo
  State.b
  Sity.s
  Array DataDay.s(4)
  Array cloudiness.s(4)
  Array precipitation.s(4)
  Array rpower.s(4)
  Array spower.s(4)
  Array PRESSUREmin.s(4)
  Array PRESSUREmax.s(4)
  Array TEMPERATUREmin.s(4)
  Array TEMPERATUREmax.s(4)
  Array HEATmin.s(4)
  Array HEATmax.s(4)
  Array WINDmin.s(4)
  Array WINDmax.s(4)
  Array RELWETmin.s(4)
  Array RELWETmax.s(4)
  Array direction.s(4)
EndStructure

Structure ProgramItitThread
  meteo.b
  text.b
EndStructure

G_Meteo_Info.MeteoInfo
G_Meteo_Info\State = -1

ProgramItitThread.ProgramItitThread
;}

Procedure GisMet_XML_Data(*CurrentNode, CurrentSublevel, *Info.MeteoInfo)
  Static N
  
  If CurrentSublevel=0
    N=0
  EndIf
  
  If XMLNodeType(*CurrentNode) = #PB_XML_Normal
    
    If  GetXMLNodeName(*CurrentNode) = "FORECAST" : N+1 : EndIf
     

    If ExamineXMLAttributes(*CurrentNode)
      While NextXMLAttribute(*CurrentNode)
        Select XMLAttributeName(*CurrentNode)
          Case "sname"
            *Info\Sity=XMLAttributeValue(*CurrentNode)
            
          Case "day"
            day$=XMLAttributeValue(*CurrentNode)
          Case "month"
            month$=XMLAttributeValue(*CurrentNode)
          Case "year"
            year$=XMLAttributeValue(*CurrentNode)
          Case "hour"
            hour$=XMLAttributeValue(*CurrentNode)
            
          Case "weekday"
            Select XMLAttributeValue(*CurrentNode)
                
              Case "1"
                weekday$= "в воскресенье"
              Case "2"
                weekday$= "в понедельник"
              Case "3"
                weekday$= "во вторник"
              Case "4" 
                weekday$= "в среду"
              Case "5"
                weekday$= "в четверг"
              Case "6"
                weekday$= "в пятницу"
              Case "7"
                weekday$= "в субботу"
            EndSelect
            dataProg$= day$ + "." + month$ +"." + year$+"г., "+ #CRLF$+weekday$+","+ #CRLF$+"на " + hour$
            *Info\DataDay(N)=dataProg$
            ;Debug dataProg$ +"      "+Str(N)
            
            
          Case "cloudiness"; Облачность
            Select XMLAttributeValue(*CurrentNode)
              Case "0"
                *Info\cloudiness(N)= "ясно"
              Case "1"
                *Info\cloudiness(N)= "малооблачно"
              Case "2"
                *Info\cloudiness(N)= "облачно"
              Case "3"
                *Info\cloudiness(N)= "пасмурно"
            EndSelect
            
          Case "precipitation" ; Осадки
            Select XMLAttributeValue(*CurrentNode)
              Case "4"
                *Info\precipitation(N)= "дождь"
              Case "5"
                *Info\precipitation(N)= "ливень"
              Case "6","7"
                *Info\precipitation(N)= "снег"
              Case "8"
                *Info\precipitation(N)= "гроза"
              Case "9"
                *Info\precipitation(N)= "нет данных"
              Case "10" 
                *Info\precipitation(N)= "без осадков"
            EndSelect  
            ;Debug cloudiness(N) + ", " + precipitation(N)
            
          Case "rpower" ; интенсивность осадков
            Select XMLAttributeValue(*CurrentNode)
              Case "0"
                *Info\rpower(N)= "возможен дождь/снег"
              Case "1"
                *Info\rpower(N)= "дождь/снег"
            EndSelect   
            
          Case "spower" ; вероятность грозы
            Select XMLAttributeValue(*CurrentNode)
              Case "0"
                *Info\spower(N)= "возможна гроза"
              Case "1"
                *Info\spower(N)= "гроза"
            EndSelect            
            
          Case "min"
            Select GetXMLNodeName(*CurrentNode) 
              Case "PRESSURE"
                *Info\PRESSUREmin(N) = XMLAttributeValue(*CurrentNode)
              Case "TEMPERATURE"
                *Info\TEMPERATUREmin(N) = XMLAttributeValue(*CurrentNode)
              Case "HEAT"
                *Info\HEATmin(N) = XMLAttributeValue(*CurrentNode)
              Case "WIND"
                *Info\WINDmin(N) = XMLAttributeValue(*CurrentNode)
              Case "RELWET"
                *Info\RELWETmin(N) = XMLAttributeValue(*CurrentNode)
                
            EndSelect
          Case "max"
            Select GetXMLNodeName(*CurrentNode) 
              Case "PRESSURE"
                *Info\PRESSUREmax(N) = XMLAttributeValue(*CurrentNode)
              Case "TEMPERATURE"
                *Info\TEMPERATUREmax(N) = XMLAttributeValue(*CurrentNode)
              Case "HEAT"
                *Info\HEATmax(N) = XMLAttributeValue(*CurrentNode)
              Case "WIND"
                *Info\WINDmax(N) = XMLAttributeValue(*CurrentNode)
              Case "RELWET"
                *Info\RELWETmax(N) = XMLAttributeValue(*CurrentNode)
                
            EndSelect
            
          Case "direction"
            Select XMLAttributeValue(*CurrentNode)
              Case "0"
                *Info\direction(N) = "северный"
              Case "1"
                *Info\direction(N) = "северо-восточный"
              Case "2"
                *Info\direction(N) = "восточный"
              Case "3"
                *Info\direction(N) = "юго-восточный"
              Case "4"
                *Info\direction(N) = "южный"
              Case "5"
                *Info\direction(N) = "юго-западный"
              Case "6"
                *Info\direction(N) = "западный"
              Case "7"
                *Info\direction(N) = "северо-западный"
            EndSelect
            
        EndSelect
        
      Wend
    EndIf
    ;    
    *ChildNode = ChildXMLNode(*CurrentNode)
    
    While *ChildNode <> 0
      GisMet_XML_Data(*ChildNode, CurrentSublevel+1, *Info)      
      *ChildNode = NextXMLNode(*ChildNode)
    Wend        
    
  EndIf
  
  
EndProcedure

Procedure.l DownloadToMem(URL.s, *lpRam, ramsize.l) 
  Protected agent.s, hInet.l, hData.l, Bytes.l 
  
  agent.s = "IE 6.0" 
  hInet.l = InternetOpen_( @agent.s,0,0,0,0 ) 
  hData.l = InternetOpenUrl_( hInet, @URL.s, "", 0, $8000000, 0 ) 
  
  If hData > 0 : InternetReadFile_ ( hData, *lpRam, ramsize.l, @Bytes.l ) : Else : Bytes = -1 : EndIf 
  
  InternetCloseHandle_(hInet) 
  ;InternetCloseHandle_(hFile) 
  InternetCloseHandle_(hData) 
  
  ProcedureReturn Bytes.l 
EndProcedure

Procedure DateTime() 
  ; Эта процедура вызывается по таймеру два раза в секунду.
  Time.s = FormatDate("%hh:%ii:%ss", Date() ) ; Узнаём текущее время
  SetGadgetText(84,Time)
EndProcedure 

Procedure SetEditorMemeo(*Info.MeteoInfo)
  If *Info\State = 1
    
    If GetGadgetState(40) = 1
      Ind = 2
    ElseIf GetGadgetState(41) = 1
      Ind = 3
    ElseIf GetGadgetState(42) = 1
      Ind = 4
    Else
      Ind = 1
    EndIf
    
   ; SetGadgetText(38, "В городе " + URLDecoder(*Info\Sity)+" "+ *Info\DataDay(Ind)+ "ч. прогнозируется:" + #CRLF$ + "давление " + *Info\PRESSUREmin(Ind) + "-"+ *Info\PRESSUREmax(Ind) +" мм.рт.ст.," + #CRLF$ + "ветер "+*Info\direction(Ind)+","+" "+*Info\WINDmin(Ind)+"-"+*Info\WINDmax(Ind) +" m\c,"+ #CRLF$ +"относительная влажность" + #CRLF$ + "воздуха " + *Info\RELWETmin(Ind) + "-"+ *Info\RELWETmax(Ind) +" %"+ #CRLF$ +"температура "+*Info\TEMPERATUREmin(Ind)+"-"+ *Info\TEMPERATUREmax(Ind) +"°C, "+ #CRLF$ + *Info\cloudiness(Ind) + ", " + *Info\precipitation(Ind) )
SetGadgetText(38, "В городе " + URLDecoder(*Info\Sity)+#CRLF$+ *Info\DataDay(Ind) + "ч. прогнозируется:" + #CRLF$ + "давление " + *Info\PRESSUREmin(Ind) + "-"+ *Info\PRESSUREmax(Ind) +" мм.рт.ст.," + #CRLF$ + "ветер "+*Info\direction(Ind)+","+" "+*Info\WINDmin(Ind)+"-"+*Info\WINDmax(Ind) +" m\c,"+ #CRLF$ +"относительная влажность" + #CRLF$ + "воздуха " + *Info\RELWETmin(Ind) + "-"+ *Info\RELWETmax(Ind) +" %,"+ #CRLF$ +"температура "+*Info\TEMPERATUREmin(Ind)+"-"+ *Info\TEMPERATUREmax(Ind) +"°C, "+ #CRLF$ + *Info\cloudiness(Ind) + ", " + *Info\precipitation(Ind) + "." )            
  ElseIf *Info\State = 0
    SetGadgetText(38, "Внутеняя ошибка программы") ; Не удалось выделить память под XML
  ElseIf *Info\State = 2
    SetGadgetText(38, "Нет связи с сервером погоды")
  ElseIf *Info\State = 3
    SetGadgetText(38, "Ошибка расшифровки данных")
  EndIf
EndProcedure

Procedure GetMeteo(SityNew.s)
  Shared G_Meteo_Info
  
  *Mem_XML = AllocateMemory(100000)
  If *Mem_XML
    FillMemory(*Mem_XML, 100000, 0)
    Bytes=DownloadToMem ("http://informer.gismeteo.ru/xml/"+SityNew+"_1.xml", *Mem_XML, 100000)
    If Bytes>0  
      If CatchXML(#XML,*Mem_XML,Bytes)  ;LoadXML(#XML, FileName$)
        *MainNode = MainXMLNode(#XML)      
        If *MainNode
          G_Meteo_Info\State = 1
          GisMet_XML_Data(*MainNode, 0, @G_Meteo_Info)
          SetEditorMemeo(@G_Meteo_Info)
        Else
          G_Meteo_Info\State = 3
        EndIf
      Else
        G_Meteo_Info\State = 3
      EndIf
    Else
       G_Meteo_Info\State = 2
    EndIf
    FreeMemory(*Mem_XML) 
  Else
    G_Meteo_Info\State = 0
  EndIf
EndProcedure

Procedure ProgramAtStartup(State, ProgName.s) ; Управление автозагрузкой программы
valueName$=ProgramFilename() 
 GetHandle = RegOpenKeyEx_(#HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Run", 0, #KEY_ALL_ACCESS, @hKey)
 If GetHandle = #ERROR_SUCCESS
  If State=1
   RegSetValueEx_(hKey, @ProgName, 0, #REG_SZ, @valueName$, Len(valueName$))
  Else
   RegDeleteValue_(hKey, @ProgName)
  EndIf
  RegCloseKey_(hKey)
 EndIf
EndProcedure

Procedure FindDevice_Timer() ; таймер - процедура проверки подключения нашего устройства
Static Old_Test
Test=HID_Lib_DeviceTest(#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)
     R_DeviceHandle=HID_Lib_OpenDevice(#USB_PID, #USB_VID)
      SetGadgetText(56, YES_Device)
      SetGadgetColor(56, #PB_Gadget_FrontColor, $00FF0F) 
    Else
     HID_Lib_CloseDevice(R_DeviceHandle) : HID_Lib_CloseDevice(W_DeviceHandle)
     R_DeviceHandle=0 : W_DeviceHandle=0
      SetGadgetText(56, NO_Device)
      SetGadgetColor(56, #PB_Gadget_FrontColor, $0000FF)
    EndIf
  EndIf
  
EndProcedure

InitNetwork()

Structure DrawInfo
  row.c[8]
EndStructure

#xc = 20 ; начало по X
#yc = 20 ; начало по Y

CreateImage(80,148,148)

Procedure.s UTF2Ansi(str$) 
  str_in$=str$: len=Len(str_in$)+5: str_tmp$=Space(len*4) 
  CP_IN=65001; #CP_UTF8=65001
  CP_OUT=1251 
  MultiByteToWideChar_(CP_IN,0,@str_in$,len,@str_tmp$,len) 
  WideCharToMultiByte_(CP_OUT,0,@str_tmp$,len,@str_in$,len,0,0) 
  ProcedureReturn str_in$ 
EndProcedure

Procedure.s Many_ru()
  Protected Result.s, *mem, Many.s
  Protected url.s, Bytes, Datas.s, html.s
  Protected Dim Result$(0), ManyExpression.s
  Protected Pos
  
  Result = "Ошибка"
  Datas = FormatDate("%dd.%mm.%yyyy",Date())
  url = "http://www.cbr.ru/currency_base/D_print.aspx?date_req="+Datas
  
  *mem = AllocateMemory(200000)
  If *mem
    Bytes = DownloadToMem(url, *mem, 200000)
    If Bytes
      html = UTF2Ansi(PeekS(*mem))
      If html<>""
        Result = "Центральный банк Российской Федерации установил следующие курсы иностранных валют к рублю Российской Федерации  на " + Datas + ":" + Chr(10)
        Restore Many_ru
        For i=1 To 35
          Read.s Many
          Pos = FindString(Many, " ", 1)
          ManyExpression = Right(Many, Len(Many)-Pos)
          
          ManyExpression+"</td>" + #CRLF$ + "<td align="+Chr(34)+"right"+Chr(34)+">"
          Pos1 = FindString(html, ManyExpression, 1)
          If Pos1>0
            Pos1+Len(ManyExpression)
            Pos2 = FindString(html,"</td>",Pos1)
            If Pos2>0
              Result + " "+Many+" = "+Mid(html, Pos1, Pos2-Pos1) +" руб.;"
            EndIf
          EndIf
          
        Next i
      EndIf
    EndIf
    FreeMemory(*mem)
  EndIf
  
  ProcedureReturn Result
EndProcedure

Procedure.s Many_uk()
  Protected Result.s, *mem, Many.s
  Protected url.s, Bytes, Datas.s, html.s
  Protected ManyExpression.s, Temp.s
  Protected Pos, Pos1, Pos2
  
  Result = "Помилка при розшифровці файлу"
  Datas = FormatDate("%dd.%mm.%yyyy",Date())
  url = "http://bank.gov.ua/Fin_ryn/OF_KURS/Currency/FindByDate.aspx?__EVENTARGUMENT=&__EVENTTARGET=&Text1="+Datas
  
  *mem = AllocateMemory(200000)
  If *mem
    Bytes = DownloadToMem(url, *mem, 200000)
    If Bytes
      html = UTF2Ansi(PeekS(*mem))
      If html<>""
        
        Pos = FindString(html, "<td>Офіційний курс</td>", 1)
        If Pos
          Pos1 = FindString(html, "</table>", Pos+Len("<td>Офіційний курс</td>"))
          If Pos1
            
            html=Mid(html, Pos, Pos1-Pos)
            
            Result = "Національний банк України. Середній курс гривні до іноземних валют на " + Datas + " становить:" + Chr(10)
            Restore Many_uk
            For i=1 To 27
              Read.s Many
              Pos = FindString(Many, " ", 1)
              ManyExpression = Right(Many, Len(Many)-Pos)
              ManyExpression + "</td>"
              Pos1 = FindString(html, ManyExpression, 1)
              If Pos1>0
                Pos1+Len(ManyExpression)
                Pos2 = FindString(html,"</td>",Pos1)
                If Pos2>0
                  
                  Temp.s=Mid(html, Pos1, Pos2-Pos1)
                  Pos = FindString(ReverseString(Temp),">", 1)
                  If Pos>0
                    Result + " "+Many+" = "+Mid(Temp, Len(Temp)-Pos+2)+" грн.;"
                  EndIf
                  
                EndIf
              EndIf
            Next i
            
          EndIf
        EndIf
      EndIf
    EndIf
    FreeMemory(*mem)
  EndIf
  
  ProcedureReturn Result
EndProcedure

Procedure Draw_Image(*Infa.DrawInfo)
  
  If StartDrawing(ImageOutput(80))
    Box(83,0,148,148,0) ; Очистка рисунка
    For col = 0 To 7
      For row = 0 To 7
        x = 20 + col * 15
        y = 20 + row * 15 
        If *Infa\row[row] << col & %10000000
          Color = RGB(255, 102, 00)
        Else
          Color = RGB(102, 102, 102)
        EndIf
        Circle(x, y, 5, Color)
      Next
    Next
    StopDrawing()
  EndIf
;  SetGadgetState(13, ImageID(80))
EndProcedure

Procedure Timer1()
  ImageDraw.DrawInfo
  
  For i=0 To 7
    ImageDraw\row[i] = Random(255)
  Next i
  
  Draw_Image(@ImageDraw)
EndProcedure

Procedure StreamFileIn_Callback(hFile, pbBuff, cb, pcb) 
  ProcedureReturn ReadFile_(hFile, pbBuff, cb, pcb, 0)!1 
EndProcedure 

Procedure FileStreamIn(Gadget, Files.s) 
  
  
  ;Procedure zum streamen einer Datei in das RichEdit 
  ;Control 
  
  Protected StreamData.EDITSTREAM 
  
  ;Wenn die Datei geцffnet werden kann, fortfahren.  
  If ReadFile(10, Files)    
    
    ;Das Handle der Datei speichern 
    StreamData\dwCookie = FileID(10) 
    StreamData\dwError = #Null 
    
    ;Die Adresse der Callback Procedure speichern 
    StreamData\pfnCallback = @StreamFileIn_Callback() 
    
    ;Das RichEdit Control anweisen, den Stream zu aktivieren 
    SendMessage_(GadgetID(Gadget), #EM_STREAMIN, #SF_RTF, @StreamData) 
    
    ;Datei schliessen 
    CloseFile(10) 
    
  EndIf 
  
EndProcedure

Procedure Open_Window_1()
  
  OpenWindow(1, 0, 0, 277, 247, About, #PB_Window_ScreenCentered );| #PB_Window_SystemMenu)
  
  EditorGadget(72,2,2,496,370,#PB_Editor_ReadOnly)
  SendMessage_(GadgetID(72), #EM_SETTARGETDEVICE, #Null, 0) ; Перенос по словам
  
  ;If
  LoadImage(70, "LOGO.bmp")    ; change 2nd parameter to the path/filename of your image
  ImageGadget(70,  6, 6, 235, 78, ImageID(70))                      ; imagegadget standard
  EditorGadget(72,95,46,176,170,#PB_Editor_ReadOnly)
  SendMessage_(GadgetID(72), #EM_SETTARGETDEVICE, #Null, 0) ; Перенос по словам 
  FileStreamIn(72, "Авторы.rtf")
  
  TextGadget(62,95,6,100,18,Mod)
  TextGadget(63,95,26,100,18,Ver)
  ;TextGadget(64,102,58,150,18,"Copyright © Radan 2011")
  ;TextGadget(65,102,82,100,18,"Radan Studio")
  
    Lang.s="ru"
  If GetGadgetState(90)=1
    Lang.s="en"
  EndIf
  FileStreamIn(72, Left(Lang, 2)+"_avtori.rtf")
  
  ButtonGadget(66,185,222,75,20,"OK")
  ;EndIf
EndProcedure

Procedure LoadText(File.s)
  
  cb1 = GetGadgetState(30) ; Это чтобы восстановить активные кункты в выпадающих списках.
  cb2 = GetGadgetState(48)
  cb3 = GetGadgetState(#ComboBox_0)
    
  OpenPreferences(File)
  PreferenceGroup("MainWin")
  SetWindowTitle(0,ReadPreferenceString("ac","МОДЖЕТ 8x8") )
  ToolBarToolTip(0, 1, ReadPreferenceString("ac1","Добавить в автозагрузку") )
  ToolBarToolTip(0, 2, ReadPreferenceString("ac2","Удалить из автозагрузки") )
  ToolBarToolTip(0, 3, ReadPreferenceString("ac3","О программе") )
  GadgetToolTip(90, ReadPreferenceString("ac4","Язык"))
  ;CreatePopupMenu(68)
  ;MenuItem(5, ReadPreferenceString("ac5","Свернуть")) 
  ;MenuBar() 
  ;MenuItem(10, ReadPreferenceString("ac6","Выход"))
  SetGadgetItemText(0,0, ReadPreferenceString("ac7","Случайный"))
  SetGadgetText(22,ReadPreferenceString("ac8","Пиксели") )
  SetGadgetText(23,ReadPreferenceString("ac9","Скорость") )
  SetGadgetText(13,ReadPreferenceString("ac10","Случайно") )
  SetGadgetText(14,ReadPreferenceString("ac11","Матрица") )
  SetGadgetText(15,ReadPreferenceString("ac12","Калейдоскоп") )
  SetGadgetText(16,ReadPreferenceString("ac13","Инверсия") )
  SetGadgetText(17,ReadPreferenceString("ac14","Звук") )
  SetGadgetItemText(0,1, ReadPreferenceString("ac15","Время"))
  SetGadgetText(51,ReadPreferenceString("ac16","Скорость") )
  SetGadgetText(9,ReadPreferenceString("ac17","Вид 1") )
  SetGadgetText(10,ReadPreferenceString("ac18","Вид 2") )
  SetGadgetText(11,ReadPreferenceString("ac19","Вид 3") )
  SetGadgetText(12,ReadPreferenceString("ac20","Инверсия") )
  SetGadgetItemText(0,2, ReadPreferenceString("ac21","Курс валют") )
  SetGadgetText(25,ReadPreferenceString("ac22","Инверсия") )
  SetGadgetText(26,ReadPreferenceString("ac23","Регистр") )
  SetGadgetText(27,ReadPreferenceString("ac24","Горизонтально") )
  SetGadgetText(28,ReadPreferenceString("ac25","Вертикально") )
  SetGadgetText(52,ReadPreferenceString("ac26","Скорость") )
  SetGadgetItemText(30,0, ReadPreferenceString("ac27","Украина") )
  SetGadgetItemText(30,1, ReadPreferenceString("ac28","Россия") )
  SetGadgetItemText(0,3, ReadPreferenceString("ac29","Текст") )
  SetGadgetText(43,ReadPreferenceString("ac30","Инверсия") )
  SetGadgetText(44,ReadPreferenceString("ac31","Регистр") )
  SetGadgetText(45,ReadPreferenceString("ac32","Горизонтально") )
  SetGadgetText(46,ReadPreferenceString("ac33","Вертикально") )
  SetGadgetText(50,ReadPreferenceString("ac34","Загрузить текст") )
  SetGadgetItemText(0,4, ReadPreferenceString("ac35","Погода") )
  SetGadgetText(32,ReadPreferenceString("ac36","Инверсия") )
  SetGadgetText(33,ReadPreferenceString("ac37","Регистр") )
  SetGadgetText(34,ReadPreferenceString("ac38","Горизонтально") )
  SetGadgetText(35,ReadPreferenceString("ac39","Вертикально") )
  SetGadgetItemText(0,5, ReadPreferenceString("ac40","Спектр") )
  SetGadgetText(4,ReadPreferenceString("ac41","Линия 1") )
  SetGadgetText(5,ReadPreferenceString("ac42","Линия 2") )
  SetGadgetText(6,ReadPreferenceString("ac43","Точка") )
  SetGadgetText(24,ReadPreferenceString("ac44","Инверсия") )
  NO_Device = ReadPreferenceString("ac45","отключен")
  YES_Device = ReadPreferenceString("ac46","подключен")
  If HID_Lib_DeviceTest(#USB_PID, #USB_VID)
    SetGadgetText(56, YES_Device)
    SetGadgetColor(56, #PB_Gadget_FrontColor, $00FF0F) 
  Else
    SetGadgetText(56, NO_Device)
    SetGadgetColor(56, #PB_Gadget_FrontColor, $0000FF)
  EndIf
 SysTrayIconToolTip(67, ReadPreferenceString("ac47","МОДЖЕТ 8x8") )
 SetGadgetText(55,ReadPreferenceString("ac48","МОДЖЕТ ") )
 About = ReadPreferenceString("ac49","О программе МОДЖЕТ 8x8")
 Mod = ReadPreferenceString("ac50","МОДЖЕТ 8x8")
 Ver = ReadPreferenceString("ac51","Версия 1.0")
 open = ReadPreferenceString("ac52","Открыть файл")
 Maska = ReadPreferenceString("ac53","Текстовые файлы (*.txt)|*.txt")
 GadgetToolTip(39, ReadPreferenceString("ac54","Прогноз на 6 часов"))
 GadgetToolTip(40, ReadPreferenceString("ac55","Прогноз на 12 часов"))
 GadgetToolTip(41, ReadPreferenceString("ac56","Прогноз на 18 часов"))
 GadgetToolTip(42, ReadPreferenceString("ac57","Прогноз на сутки"))
 SetGadgetText(85,ReadPreferenceString("ac58","Текущее время") )
 GadgetToolTip(37,ReadPreferenceString("ac59","Обновить данные") )
 SetGadgetText(75,ReadPreferenceString("ac60","Скорость") )
 Lib1 = ReadPreferenceString("ac61","Файл отсутствует!")
 Lib2 = ReadPreferenceString("ac62","Для отображения времени")
 Lib3 = ReadPreferenceString("ac63","требуется файл") 
 SetGadgetText(76,ReadPreferenceString("ac64","Уровень сигнала") )
 ClosePreferences()
 
  SetGadgetState(30,cb1) ; Это чтобы восстановить активные кункты в выпадающих списках.
  SetGadgetState(48,cb2)
  SetGadgetState(#ComboBox_0,cb3)
 
EndProcedure

Procedure.s ReadText(File$)
  Protected Text.s = ""
  If ReadFile(0, File$) 
    Size = Lof(0); размер файла в байтах
    If Size>0
      *String = AllocateMemory(Size); выделяем область памяти 
      If *String 
        FillMemory(*String, Size, 0)
        FormatFile=ReadStringFormat(0) ; Определение кодировки файла (Ascii, UTF8 или Unicode).
        ReadData(0, *String , Size); записываем строку в область памяти
        Text.s=PeekS(*String, -1, FormatFile)
        FreeMemory(*String)
      EndIf
    EndIf
    CloseFile(0)
  EndIf
  ProcedureReturn Text
EndProcedure

Procedure UnPak(*pak)
 ; Процедура UnPak() распаковывает данные, упакованные функцией PackMemory()
; Процедуре нужно передать указатель на первый байт упакованных данных, например из DataSection
; При успешной распаковке, процедура вернет указатель на место нахождения распакованных данных
; Не забывайте освобождать память функцией FreeMemory когда распакованные данные больше не нужны
  *Unpak_mem = 0
  RealSize = PeekL(*pak+2)
  If RealSize>0 And RealSize<10000000
    *mem = AllocateMemory(RealSize+10)
    If *mem
      If UnpackMemory(*pak, *mem) = RealSize
        *Unpak_mem = *mem
      Else
        FreeMemory(*mem)
      EndIf
    EndIf
  EndIf
  ProcedureReturn *Unpak_mem
EndProcedure

Procedure ProgramItit_Thread(*x.ProgramItitThread)
  
  ;Получает полный путь запущенного приложения      
  Result$ = ProgramFilename()
  ;Извлекает путь из полного пути. Например, если полный путь "C:\PureBasic\PB.exe", результат будет "C:\PureBasic\". 
  Path$ = GetPathPart(Result$)
  ;Debug Path$
  ; Просмотр всех элементов директории запущенного приложения  (без поддиректорий)
  Directory$ = Path$   
  If ExamineDirectory(0, Directory$, "*.txt")  
    ;m=0
    While NextDirectoryEntry(0)
      
      If DirectoryEntryType(0) = #PB_DirectoryEntry_File
        AddGadgetItem(48, -1, Left(DirectoryEntryName(0), Len(DirectoryEntryName(0))-4))
      EndIf
      
      ;txt.s=Text + ".txt"
      
;       If DirectoryEntryName(0) = txt
;         
;       EndIf
      ;m=m+1      ;Debug DirectoryEntryName(0) ;+ Type$ + "- Size in byte: " + Str(DirectoryEntrySize(0))
    Wend
    FinishDirectory(0)
  EndIf
  SetGadgetState(48, *x\text)
  
  If Put=""
  File$ = Path$ + GetGadgetText(48)+".txt"
;  Debug File$
Else
  File$ = Put
 ; Debug File$
EndIf

If FileSize(File$)>0
  Text=ReadText(File$)
  SetGadgetText(49,Text)
EndIf
  
  ;time=ElapsedMilliseconds()
  *mem = UnPak(?GismeteoCodSity_pak)
  If *mem
    Text.s = PeekS(*mem)
    FreeMemory(*mem)
    
    ReplaceString(Text,Chr(13),Chr(10), #PB_String_InPlace)
    Text=ReplaceString(Text,Chr(10)+Chr(10),Chr(10))
    
    PosOld = 0
    Pos = FindString(Text, Chr(10), 1)
    x=0
    *PointString = @Text
    While Pos
      String.s=PeekS(*PointString+PosOld, Pos-PosOld-1)
      AddGadgetItem(#ComboBox_0, x,String)
      PosOld=Pos
      x+1
      Pos = FindString(Text, Chr(10), PosOld+1)
      If Pos =< 0
        Break
      EndIf
    Wend
    SetGadgetState(#ComboBox_0,*x\meteo)
  EndIf
  
  SityNew$= Left(GetGadgetText(#ComboBox_0), 5)
  If Len(SityNew$)
    GetMeteo(SityNew$)
  EndIf
  
  ;Debug ElapsedMilliseconds()-time
EndProcedure

Procedure Write_setting() ;Запись в файл настроек
 If OpenPreferences("setting.ini")
  WritePreferenceLong ("fr1", GetGadgetState (90))
  WritePreferenceLong ("fr2", GetGadgetState (0))
  WritePreferenceLong ("fr3", GetGadgetState (18))
  WritePreferenceLong ("fr4", GetGadgetState (19))
  WritePreferenceLong ("fr5", GetGadgetState (20))
  WritePreferenceLong ("fr6", GetGadgetState (13))
  WritePreferenceLong ("fr7", GetGadgetState (14))
  WritePreferenceLong ("fr8", GetGadgetState (15))
  WritePreferenceLong ("fr9", GetGadgetState (16))
  WritePreferenceLong ("fr10", GetGadgetState (17))
  WritePreferenceLong ("fr11", GetGadgetState (8))
  WritePreferenceLong ("fr12", GetGadgetState (9))
  WritePreferenceLong ("fr13", GetGadgetState (10))
  WritePreferenceLong ("fr14", GetGadgetState (11))
  WritePreferenceLong ("fr15", GetGadgetState (12))
  WritePreferenceLong ("fr16", GetGadgetState (25))
  WritePreferenceLong ("fr17", GetGadgetState (26))
  WritePreferenceLong ("fr18", GetGadgetState (27))
  WritePreferenceLong ("fr19", GetGadgetState (28))
  WritePreferenceLong ("fr20", GetGadgetState (29))
  WritePreferenceLong ("fr21", GetGadgetState (30))
  WritePreferenceLong ("fr22", GetGadgetState (43))
  WritePreferenceLong ("fr23", GetGadgetState (44))
  WritePreferenceLong ("fr24", GetGadgetState (45))
  WritePreferenceLong ("fr25", GetGadgetState (46))
  WritePreferenceLong ("fr26", GetGadgetState (47))
  WritePreferenceLong ("fr27", GetGadgetState (48))
  WritePreferenceLong ("fr28", GetGadgetState (32))
  WritePreferenceLong ("fr29", GetGadgetState (33))
  WritePreferenceLong ("fr30", GetGadgetState (34))
  WritePreferenceLong ("fr31", GetGadgetState (35))
  WritePreferenceLong ("fr32", GetGadgetState (36))
  WritePreferenceLong ("fr33", GetGadgetState (39))
  WritePreferenceLong ("fr34", GetGadgetState (40))
  WritePreferenceLong ("fr35", GetGadgetState (41))
  WritePreferenceLong ("fr36", GetGadgetState (42))
  WritePreferenceLong ("fr37", GetGadgetState (#ComboBox_0))
  WritePreferenceLong ("fr38", GetGadgetState (4))
  WritePreferenceLong ("fr39", GetGadgetState (5))
  WritePreferenceLong ("fr40", GetGadgetState (6))
  WritePreferenceLong ("fr41", GetGadgetState (7))
  WritePreferenceLong ("fr42", GetGadgetState (24))
  WritePreferenceString ("fr43", Put)
  ClosePreferences()
  EndIf
EndProcedure

Image.DrawInfo
;--------------------Окно программы---------------------
OpenWindow(0, 0, 0, 535, 186, "МОДЖЕТ 8x8", #PB_Window_MinimizeGadget|#PB_Window_ScreenCentered|#PB_Window_Invisible)
;--------------------Кнопки-------------------
ContainerGadget(95,0,0,97,30, #PB_Container_BorderLess)
  If CreateToolBar(0, GadgetID(95))
    ToolBarSeparator()
    ToolBarImageButton(1, CatchImage(1, ?ImageSave))
    ToolBarToolTip(0, 1, "Добавить в автозагрузку")
    ToolBarSeparator()
    ToolBarImageButton(2, CatchImage(2, ?ImageDelete))
    ToolBarToolTip(0, 2, "Удалить из автозагрузки")
    ToolBarSeparator()
    ToolBarImageButton(3, CatchImage(3, ?ImageInformation))
    ToolBarToolTip(0, 3, "О программе")
    ToolBarSeparator()
  EndIf
  CloseGadgetList()
;--------------------Язык-------------------
ComboBoxGadget(90,200,3,70,22)
GadgetToolTip(90, "")
AddGadgetItem(90,-1,"Русский")
AddGadgetItem(90,-1,"English")
SetGadgetState(90,0)

Draw_Image(@Image)
ImageGadget(82,6, 33,148,148,ImageID(80))

;-----------Системный трей----------- 
AddSysTrayIcon(67, WindowID(0), ExtractIcon_(0,ProgramFilename(),0))
SysTrayIconToolTip(67, "МОДЖЕТ 8x8") 
;Добавим к иконке меню
CreatePopupMenu(68) 
;MenuItem(4, "Развернуть") 
MenuItem(5, "") 
MenuBar() 
MenuItem(10, "")   

TextGadget(55, 387, 8, 120 ,15,"")

TextGadget(56, 440, 8, 120 ,15, NO_Device)
SetGadgetColor(56, #PB_Gadget_FrontColor, $0000FF)

PanelGadget (0, 160, 33, 370, 150)
;--------------------Случайный-------------------
AddGadgetItem (0, -1, "Случайный")
TrackBarGadget(18, 17, 6, 165, 35, 0, 18, #PB_TrackBar_Ticks)
TrackBarGadget(19, 17, 57, 165, 35, 0, 100, #PB_TrackBar_Ticks)
TrackBarGadget(20, 214, 80, 99, 43, 0, 18, #PB_TrackBar_Ticks)
ButtonGadget(21,320,87,23,23,"")
TextGadget(22, 17, 39, 50 ,18,"")
TextGadget(23, 17, 90, 50 ,13,"")
OptionGadget(13, 214, 3, 80, 20, "")
OptionGadget(14, 214, 23, 60, 20, "")
OptionGadget(15, 214, 43, 90, 20, "")
CheckBoxGadget(16, 214, 63, 70, 20, ""): SetGadgetState(16, #PB_Checkbox_Checked) 
CheckBoxGadget(17, 304, 63, 70, 20, ""): SetGadgetState(17, #PB_Checkbox_Checked)
;--------------------Время-------------------
AddGadgetItem (0, -1,"Время")
TrackBarGadget(8, 50, 16, 165, 35, 0, 300, #PB_TrackBar_Ticks)
TextGadget(51, 50, 50, 50 ,13,"")
OptionGadget(9, 250, 10, 60, 20, "")
OptionGadget(10, 250, 32, 60, 20, "")
OptionGadget(11, 250, 54, 60, 20, "")
CheckBoxGadget(12, 250, 76, 70, 20, "")
TextGadget(85, 90, 76, 90 ,13,"")
TextGadget(84, 110, 90, 90 ,13,"")
SetGadgetState(12, #PB_Checkbox_Checked)  
;--------------------Курс валют-------------------
AddGadgetItem (0, -1,"Курс валют")
CheckBoxGadget(25, 11, 9, 70, 13, "")
SetGadgetState(25, #PB_Checkbox_Checked) 
CheckBoxGadget(26, 89, 9, 60, 13, "")
SetGadgetState(26, #PB_Checkbox_Checked) 
OptionGadget(27, 11, 99, 95, 20, "")
OptionGadget(28, 115, 99, 90, 20, "")
TrackBarGadget(29, 10, 52, 142, 35, 0, 300, #PB_TrackBar_Ticks)
TextGadget(52, 10, 86, 50 ,13,"")
ComboBoxGadget(30, 10, 28, 142, 21)
AddGadgetItem(30, -1, "")
AddGadgetItem(30, -1, "")
SetGadgetState(30,0)
EditorGadget(31,158,7,200,90) 
SendMessage_(GadgetID(31),#EM_SETTARGETDEVICE, #Null, 0)
SetGadgetText(31,Many_uk())
;--------------------Текст-------------------
AddGadgetItem (0, -1,"Текст")
CheckBoxGadget(43, 7, 35, 70, 13, "")
SetGadgetState(43, #PB_Checkbox_Checked) 
CheckBoxGadget(44, 85, 35, 60, 13, "")
SetGadgetState(44, #PB_Checkbox_Checked) 
OptionGadget(45, 11, 99, 95, 20, "")
OptionGadget(46, 115, 99, 90, 20, "")
TextGadget(75, 10, 86, 50 ,13,"")
TrackBarGadget(47, 6, 51, 142, 35, 0, 300, #PB_TrackBar_Ticks)
ComboBoxGadget(48, 205, 98, 153, 21)
EditorGadget(49,158,7,200,90,#PB_Editor_ReadOnly)
SendMessage_(GadgetID(49),#EM_SETTARGETDEVICE, #Null, 0)
ButtonGadget(50,6,6,144,23,"")
;Получает полный путь запущенного приложения      
Result$ = ProgramFilename()
;Извлекает путь из полного пути. 
;Например, если полный путь "C:\PureBasic\PB.exe", результат будет "C:\PureBasic\". 
Path$ = GetPathPart(Result$)
; Просмотр всех элементов директории запущенного приложения  (без поддиректорий)
Directory$ = Path$   
;--------------------Погода-------------------
AddGadgetItem (0, -1,"Погода")
CheckBoxGadget(32, 11, 9, 70, 13, "")
SetGadgetState(32, #PB_Checkbox_Checked) 
CheckBoxGadget(33, 89, 9, 60, 13, "")
SetGadgetState(33, #PB_Checkbox_Checked) 
OptionGadget(34, 11, 84, 94, 20, "")
OptionGadget(35, 11, 102, 85, 20, "")
TrackBarGadget(36, 10, 52, 142, 35, 0, 300, #PB_TrackBar_Ticks)
ComboBoxGadget(#ComboBox_0, 10, 28, 142, 21)
ButtonImageGadget(37,110,90,40,30, CatchImage(37, ?Image_ButtonImage_1))
GadgetToolTip(37, "")  
EditorGadget(38,158,7,200,90)
OptionGadget(39, 160, 102, 30, 20, "6"): SetGadgetState(39, 1)
GadgetToolTip(39, "Прогноз на 6 часов")
OptionGadget(40, 215, 102, 40, 20, "12")
GadgetToolTip(40, "Прогноз на 12 часов")
OptionGadget(41, 270, 102, 40, 20, "18")
GadgetToolTip(41, "Прогноз на 18 часов")
OptionGadget(42, 325, 102, 40, 20, "24")
GadgetToolTip(42, "Прогноз на сутки")
;--------------------Спектр-------------------
AddGadgetItem (0, -1,"Спектр")
TrackBarGadget(7, 27, 16, 165, 35, 0, 18, #PB_TrackBar_Ticks)
TextGadget(76, 27, 51, 100 ,13,"")
OptionGadget(4, 250, 10, 60, 20, "")
OptionGadget(5, 250, 32, 60, 20, "")
OptionGadget(6, 250, 54, 60, 20, "")
CheckBoxGadget(24, 250, 76, 70, 20, "")
SetGadgetState(24, #PB_Checkbox_Checked)  
CloseGadgetList()

SetTimer_(WindowID(0), 2, 800, @FindDevice_Timer() )

;--------------------Чтение настроек-------------------
 OpenPreferences("setting.ini")
 ; PreferenceGroup("Window")
 SetGadgetState(90, ReadPreferenceLong("fr1", 0))   
 SetGadgetState(0, ReadPreferenceLong("fr2", 0)) 
 SetGadgetState(18, ReadPreferenceLong("fr3", 0)) 
 SetGadgetState(19, ReadPreferenceLong("fr4", 0)) 
 SetGadgetState(20, ReadPreferenceLong("fr5", 0)) 
 SetGadgetState(13, ReadPreferenceLong("fr6", 0))   
 SetGadgetState(14, ReadPreferenceLong("fr7", 0)) 
 SetGadgetState(15, ReadPreferenceLong("fr8", 0)) 
 SetGadgetState(16, ReadPreferenceLong("fr9", 0)) 
 SetGadgetState(17, ReadPreferenceLong("fr10", 0))
 SetGadgetState(8, ReadPreferenceLong("fr11", 0))   
 SetGadgetState(9, ReadPreferenceLong("fr12", 0)) 
 SetGadgetState(10, ReadPreferenceLong("fr13", 0)) 
 SetGadgetState(11, ReadPreferenceLong("fr14", 0)) 
 SetGadgetState(12, ReadPreferenceLong("fr15", 0))
 SetGadgetState(25, ReadPreferenceLong("fr16", 0)) 
 SetGadgetState(26, ReadPreferenceLong("fr17", 0)) 
 SetGadgetState(27, ReadPreferenceLong("fr18", 0)) 
 SetGadgetState(28, ReadPreferenceLong("fr19", 0))
 SetGadgetState(29, ReadPreferenceLong("fr20", 0)) 
 SetGadgetState(30, ReadPreferenceLong("fr21", 0))
 SetGadgetState(43, ReadPreferenceLong("fr22", 0)) 
 SetGadgetState(44, ReadPreferenceLong("fr23", 0)) 
 SetGadgetState(45, ReadPreferenceLong("fr24", 0))
 SetGadgetState(46, ReadPreferenceLong("fr25", 0)) 
 SetGadgetState(47, ReadPreferenceLong("fr26", 0))
 ProgramItitThread\text = ReadPreferenceLong("fr27", 0)
 SetGadgetState(32, ReadPreferenceLong("fr28", 0)) 
 SetGadgetState(33, ReadPreferenceLong("fr29", 0))
 SetGadgetState(34, ReadPreferenceLong("fr30", 0)) 
 SetGadgetState(35, ReadPreferenceLong("fr31", 0))
 SetGadgetState(36, ReadPreferenceLong("fr32", 0)) 
 SetGadgetState(39, ReadPreferenceLong("fr33", 0)) 
 SetGadgetState(40, ReadPreferenceLong("fr34", 0))
 SetGadgetState(41, ReadPreferenceLong("fr35", 0)) 
 SetGadgetState(42, ReadPreferenceLong("fr36", 0))
 ProgramItitThread\meteo=ReadPreferenceLong("fr37", 0)
 SetGadgetState(4, ReadPreferenceLong("fr38", 0)) 
 SetGadgetState(5, ReadPreferenceLong("fr39", 0))
 SetGadgetState(6, ReadPreferenceLong("fr40", 0)) 
 SetGadgetState(7, ReadPreferenceLong("fr41", 0))
 SetGadgetState(24, ReadPreferenceLong("fr42", 0))
 Put=ReadPreferenceString("fr43", "")
 ClosePreferences()

CreateThread(@ProgramItit_Thread(),ProgramItitThread)

If GetGadgetState(90)=0
  LoadText("rus.lng") 
  Else
  LoadText("eng.lng")
EndIf

If GetGadgetState(30)=0
  SetGadgetText(31,Many_uk()) 
  Else
  SetGadgetText(31,Many_ru())
EndIf
               
If OpenLibrary(1,"user32.dll")=0 ; Открываем файл "user32.dll", для использования его функций 
  MessageRequester(Lib1, Lib2 +#CRLF$+Lib3+" user32.dll", #MB_OK|#MB_ICONWARNING)
  EndIf
    CallFunction(1,"SetTimer",WindowID(0), 1, 500, @DateTime() ) ; Вызываем функцию "SetTimer"

HideWindow(0,0)

;--------------------Главный цикл---------------------
Repeat 
  
  Event= WaitWindowEvent() 
  Window=EventWindow() 
  Gadget=EventGadget()
  
  If Event = #PB_Event_SysTray 
    
    If EventType() = #PB_EventType_RightClick ; Обработка правой кнопки мышки 
         Write_setting()        
         Break
  ;    DisplayPopupMenu(68, WindowID(0)) ; показ вспывающего меню 
    EndIf 
    
    If EventType() = #PB_EventType_LeftClick ; Обработка левой кнопки мышки     
      HideWindow(0, 0)
      SetWindowState(0, #PB_Window_Normal) 
    EndIf
    
       If EventType() = #PB_EventType_LeftDoubleClick  ; Обработка двойного нажатия левой кнопки мышки    
      HideWindow(0, 1)
    EndIf
    
  EndIf 
  
  If Event = #PB_Event_Menu 
    Select EventMenu() 
      Case 1 ;"Добавить в автозагрузку"  
        ProgramAtStartup(1, "MODGET 8x8")
      Case 2 ;"Удалить из автозагрузки"
        ProgramAtStartup(0, "MODGET 8x8")
      Case 3 ;"О программе"
        Open_Window_1()  
     ; Case 5 ;"Свернуть" 
     ;   HideWindow(0, 1) 
     ; Case 10 ;"Выход"
     ;   Write_setting()        
     ;   Break
        
    EndSelect 
  EndIf 
  
  If Event=#PB_Event_MinimizeWindow ;Событие при сворачивании окна
    HideWindow(0,1) ;свернуть окно
  EndIf
  
 ;{-------Событие при закрытии окна-------
If Event=#PB_Event_CloseWindow  ;
          Write_setting() 
EndIf 
;}-------------------------------------

  
  ;{----------События компонентов----------

  
If Event=#PB_Event_Gadget
    
    Select EventGadget()

       
      Case 13
        
        If GetGadgetState (13) = 1
          ImageGadget(83,20,20,148,148, 0)
          Draw_Image(@Image)
          
          SetTimer_(WindowID(0),4,100, @Timer1() )
        EndIf
        
     Case 30
        If EventType()=1
          Select GetGadgetState(30)
            Case 0
              SetGadgetText(31,Many_uk())
            Case 1
              SetGadgetText(31,Many_ru())
          EndSelect
        EndIf
        
      Case 37 
        GetMeteo(SityNew$)
        
     Case #ComboBox_0       
       If EventType() = 1
         SityNew$= Left(GetGadgetText(#ComboBox_0), 5)
         If Len(SityNew$)
           GetMeteo(SityNew$)
         EndIf
       EndIf
      
      Case  39 To 42 ; Выбор времени прогноза
         SetEditorMemeo(@G_Meteo_Info)    
        
      Case 48
        If EventType() = 1 ; Выпадающий список закрылся
          Put=""
          File$ = Path$ + GetGadgetText(48)+".txt"
          Text=ReadText(File$)
          SetGadgetText(49,Text)
          EndIf
        
      Case 50
        File$ = OpenFileRequester(open, "", Maska , 0)
        If File$
          Put=File$
          Text=ReadText(File$)
          SetGadgetText(49,Text)
        EndIf
        
         Case 90
        If EventType()=1
          Select GetGadgetState(90)
            Case 0
              LoadText("rus.lng")
            Case 1
              LoadText("eng.lng")
          EndSelect
          EndIf
        
      Case 66
        CloseWindow(#Window_1)
        
      Case 100
        ProgramAtStartup(1, "MODGET 8x8")
        
      Case 101
        ProgramAtStartup(0, "MODGET 8x8")
        
      Case 102
        Open_Window_1()
        
    EndSelect
    
    
    
  EndIf 
  ;}-------------------------------------
  
Until Event = #PB_Event_CloseWindow ;Конец главного цикла

; Вызываем функцию "KillTimer"
  CallFunction(1,"KillTimer",WindowID(0),1)
   ; Закрываем файл "user32.dll".
  CloseLibrary(1)

;{ Included Data
DataSection
  Image_ButtonImage_1:
  IncludeBinary "refresh.ico"
  
  ImageSave:
  IncludeBinary "accept.png"
  
  ImageDelete:
  IncludeBinary "delete.png"
  
  ImageInformation:
  IncludeBinary "information.png"
  
  GismeteoCodSity_pak:
  IncludeBinary "GismeteoCodSity.pak"
  
  Many_ru:
  Data.s "1 Австралийский доллар", "1 Азербайджанский манат", "1000 Армянских драмов", "10000 Белорусских рублей"
  Data.s "1 Болгарский лев", "1 Бразильский реал", "100 Венгерских форинтов ", "1000 Вон Республики Корея"
  Data.s "10 Датских крон", "1 Доллар США", "1 Евро", "100 Индийских рупий", "100 Казахских тенге"
  Data.s "1 Канадский доллар", "100 Киргизских сомов", "10 Китайских юаней", "1 Латвийский лат"
  Data.s "1 Литовский лит", "10 Молдавских леев", "10 Новых румынских леев", "10 Новых туркменских манатов"
  Data.s "10 Норвежских крон", "1 Польский злотый", "1 СДР (специальные права заимствования)", "1 Сингапурский доллар"
  Data.s "10 Таджикских сомони", "1 Турецкая лира", "1000 Узбекских сумов", "10 Украинских гривен"
  Data.s "1 Фунт стерлингов Соединенного королевства", "10 Чешских крон", "10 Шведских крон", "1 Швейцарский франк"
  Data.s "10 Южноафриканских рэндов", "100 Японских иен"
  
  Many_uk:
  Data.s "100 австралійських доларів", "100 азербайджанських манатів", "100 англійських фунтів стерлінгів", "10 білоруських рублів"
  Data.s "100 датських крон", "100 доларів США", "100 ЄВРО ", "100 ісландських крон"
  Data.s "100 казахстанських тенге", "100 канадських доларів", "100 латвійських латів", "100 литовських літів", "100 молдовських леїв"
  Data.s "100 норвезьких крон", "100 польських злотих", "10 російських рублів", "100 сінгапурських доларів"
  Data.s "100 СПЗ", "100 турецьких лір", "100 туркменських манатів", "1000 угорських форинтів"
  Data.s "100 узбецьких сумів", "100 чеських крон", "100 шведських крон", "100 швейцарських франків"
  Data.s "100 юанів женьміньбі (Китай)", "1000 японських єн"
EndDataSection  
;}
; IDE Options = PureBasic 4.50 (Windows - x86)
; CursorPosition = 733
; FirstLine = 211
; Folding = QAAk2
; EnableThread
; EnableXP
; UseIcon = M.ico
; Executable = MODGET 8x8 multilang.exe
; SubSystem = UserLibThreadSafe
; CompileSourceDirectory

Отредактировано max (06.07.2011 12:34:02)

0

244

Нормально все.

0

245

Странно! :dontknow:

0

246

Можно попробовать так загружать текст.
Но не уверен что поможет.

Код:
Procedure.s ReadText(File$)
  Protected Text.s = ""
  If ReadFile(0, File$) 
    Size = Lof(0); размер файла в байтах
    If Size>0
      *String = AllocateMemory(Size+10); выделяем область памяти 
      If *String 
        FillMemory(*String, Size+10, 0)
        FormatFile=ReadStringFormat(0) ; Определение кодировки файла (Ascii, UTF8 или Unicode).
        ReadData(0, *String , Size); записываем строку в область памяти
        FillMemory(*String+Size, 8, 0)
        Text.s=PeekS(*String, -1, FormatFile)
        FreeMemory(*String)
      EndIf
    EndIf
    CloseFile(0)
  EndIf
  ProcedureReturn Text
EndProcedure

+1

247

Сейчас все :cool:

0

248

Наверное настало время для вывода всего этого на форму.
Для начала нужно создать шрифты. Чтобы вывести отдельные точки, делаем так:

Код:
Image\row[0]=%11001100
  Image\row[1]=%00111100
  
  Image\row[6]=%01010101
  Image\row[7]=%10101010

Теперь вопрос:
Как мне лучше сделать шрифт: как в исходнике в Code_table.vb
или надо оформлять в процедуру?

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

Вот эффект RANDOM.

Код:
Structure DrawInfo
  row.b[8]
EndStructure


CreateImage(0,148,148);

Procedure Draw_Image(*Infa.DrawInfo)
  
  If StartDrawing(ImageOutput(0))
    Box(0,0,148,148,0) ; Очистка рисунка
     For col = 0 To 7
       For row = 0 To 7
         x = 20 + col * 15
         y = 20 + row * 15 
         If *Infa\row[row] << col & %10000000
           Color = RGB(210, 27, 45)
         Else
           Color = RGB(131, 137, 141)
         EndIf
         Circle(x, y, 5, Color)
       Next
     Next
    StopDrawing()
  EndIf
  SetGadgetState(0, ImageID(0))
EndProcedure

Procedure Timer1()
  ImageDraw.DrawInfo
  
  For i=0 To 7
    ImageDraw\row[i] = Random(255)
  Next i
  
  Draw_Image(@ImageDraw)
EndProcedure

Image.DrawInfo

If OpenWindow(0, 0, 0, 277, 260, "О", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  
  ImageGadget(0,20,20,148,148, 0)
  Draw_Image(@Image)
  
  SetTimer_(WindowID(0),2,100, @Timer1() )
  
  Repeat
    Event = WaitWindowEvent()
    
  Until Event = #PB_Event_CloseWindow
  
EndIf

Я его добавил в исходник, а он рабатает только тогда, когда нажимаешь на "Случайный". Что я не так сделал?

0

249

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

Как мне лучше сделать шрифт: как в исходнике в Code_table.vb

Копировать от туда и помещать в ДатаСекцию.

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

а он рабатает только тогда, когда нажимаешь на "Случайный". Что я не так сделал?

Не совсем точно перенес код. http://pure-basic.narod.ru/forum/MODGET … tilang.rar

Нужно будет функции переключать в зависимости от активной вкладки панели.

0

250

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

Копировать от туда и помещать в ДатаСекцию.

То есть так: буква А

Код:
DataSection  
Data 0, 0, 1, 1, 1, 1, 1, 0, 
Data 0, 1, 0, 0, 0, 1, 1, 0,
Data 1, 1, 0, 0, 0, 1, 1, 0, 
Data 1, 1, 0, 0, 0, 1, 1, 0, 
Data 1, 1, 1, 1, 1, 1, 1, 0,
Data 1, 1, 0, 0, 0, 1, 1, 0, 
Data 1, 1, 0, 0, 0, 1, 1, 0, 
Data 0, 0, 0, 0, 0, 0, 0, 0
EndDataSection
max написал(а):

Не совсем точно перенес код.

Теперь работает.

Отредактировано max (06.07.2011 14:47:16)

0

251

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

То есть так: буква А

В нашем случае, будет примерно так:

Код:
DataSection  
  Data.b %00111110
  Data.b %01000110
  Data.b %11000110 
  Data.b %11000110
  Data.b %11111110
  Data.b %11000110
  Data.b %11000110
  Data.b %00000000
EndDataSection
Код:
Structure DrawInfo
  row.b[8]
EndStructure

CreateImage(0,148,148);

Procedure Draw_Image(*Infa.DrawInfo)
  
  If StartDrawing(ImageOutput(0))
    Box(0,0,148,148,0) ; Очистка рисунка
     For col = 0 To 7
       For row = 0 To 7
         x = 20 + col * 15
         y = 20 + row * 15 
         If *Infa\row[row] << col & %10000000
           Color = RGB(210, 27, 45)
         Else
           Color = RGB(131, 137, 141)
         EndIf
         Circle(x, y, 5, Color)
       Next
     Next
    StopDrawing()
  EndIf
  SetGadgetState(0, ImageID(0))
EndProcedure

Image.DrawInfo

If OpenWindow(0, 0, 0, 277, 260, "О", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  
  ImageGadget(0,20,20,148,148, 0)
  CopyMemory(?Char_A, @Image, SizeOf(DrawInfo))
  Draw_Image(@Image)
 
  
  Repeat
    Event = WaitWindowEvent()
    
  Until Event = #PB_Event_CloseWindow
  
EndIf

DataSection  
  Char_A:
  Data.b %00111110
  Data.b %01000110
  Data.b %11000110 
  Data.b %11000110
  Data.b %11111110
  Data.b %11000110
  Data.b %11000110
  Data.b %00000000
EndDataSection

0

252

Спасибо.
Буду алфавит переносить.

0

253

48 символов сделал.
Можно ли сделать, чтобы они переберались по кругу?

0

254

Как-то так (работу не проверял).

Код:
Structure DrawInfo
  row.b[8]
EndStructure

CreateImage(0,148,148);

Procedure Draw_Image(*Infa.DrawInfo)
  
  If StartDrawing(ImageOutput(0))
    Box(0,0,148,148,0) ; Очистка рисунка
     For col = 0 To 7
       For row = 0 To 7
         x = 20 + col * 15
         y = 20 + row * 15 
         If *Infa\row[row] << col & %10000000
           Color = RGB(210, 27, 45)
         Else
           Color = RGB(131, 137, 141)
         EndIf
         Circle(x, y, 5, Color)
       Next
     Next
    StopDrawing()
  EndIf
  SetGadgetState(0, ImageID(0))
EndProcedure

Image.DrawInfo

If OpenWindow(0, 0, 0, 277, 260, "О", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  
  ImageGadget(0,20,20,148,148, 0)
  CopyMemory(?Char_A, @Image, SizeOf(DrawInfo))
  Draw_Image(@Image)
 
  AddWindowTimer(0,0,1000)
  Pos=0
  Repeat
    Event = WaitWindowEvent()
    If Event = #PB_Event_Timer
      Pos+1
      If Pos>=48
        Pos = 0
      EndIf
      CopyMemory(?Char_A+Pos*8, @Image, SizeOf(DrawInfo))
      Draw_Image(@Image)
    EndIf
  Until Event = #PB_Event_CloseWindow
  
EndIf

DataSection  
  Char_A:
  Data.b %00111110
  Data.b %01000110
  Data.b %11000110 
  Data.b %11000110
  Data.b %11111110
  Data.b %11000110
  Data.b %11000110
  Data.b %00000000
  
  ; Тут остальные 47 символов.
EndDataSection

0

255

Спасибо, работает.

0

256

Получился 161 знак.

Код:
Structure DrawInfo
  row.b[8]
EndStructure

CreateImage(0,148,148);

Procedure Draw_Image(*Infa.DrawInfo)
  
  If StartDrawing(ImageOutput(0))
    Box(83,0,148,148,0) ; Очистка рисунка
    For col = 0 To 7
      For row = 0 To 7
        x = 20 + col * 15
        y = 20 + row * 15 
        If *Infa\row[row] << col & %10000000
          Color = RGB(255, 102, 00)
        Else
          Color = RGB(102, 102, 102)
        EndIf
        Circle(x, y, 5, Color)
      Next
    Next
    StopDrawing()
  EndIf
  SetGadgetState(0, ImageID(0))
EndProcedure

Image.DrawInfo

If OpenWindow(0, 0, 0, 277, 260, "О", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  
  ImageGadget(0,20,20,148,148, 0)
  CopyMemory(?Char_1, @Image, SizeOf(DrawInfo))
  Draw_Image(@Image)
 
  AddWindowTimer(0,0,1000)
  Pos=0
  Repeat
    Event = WaitWindowEvent()
    If Event = #PB_Event_Timer
      Pos+1
      If Pos>=161
        Pos = 0
      EndIf
      CopyMemory(?Char_1+Pos*8, @Image, SizeOf(DrawInfo))
      Draw_Image(@Image)
    EndIf
  Until Event = #PB_Event_CloseWindow
  
EndIf

DataSection  
  ;0
    Char_1:
  Data.b %01111100
  Data.b %11000110
  Data.b %11001110
  Data.b %11010110
  Data.b %11100110
  Data.b %11000110
  Data.b %01111100
  Data.b %00000000
  ;1
    Char_2:
  Data.b %00011000
  Data.b %00111000
  Data.b %01111000
  Data.b %00011000
  Data.b %00011000
  Data.b %00011000
  Data.b %01111110
  Data.b %00000000
  ;2
    Char_3:
  Data.b %01111100
  Data.b %11000110
  Data.b %11000110 
  Data.b %00001100
  Data.b %00010000
  Data.b %01100110
  Data.b %11111110
  Data.b %00000000
  ;3
    Char_4:
  Data.b %11111110
  Data.b %11000110
  Data.b %00001000 
  Data.b %00011100
  Data.b %11000110
  Data.b %11000110
  Data.b %01111100
  Data.b %00000000
  ;4
    Char_5:
  Data.b %00001100
  Data.b %00011100
  Data.b %00101100 
  Data.b %01001100
  Data.b %11001110
  Data.b %11111110
  Data.b %00001100
  Data.b %00000000
  ;5
    Char_6:
  Data.b %11111110
  Data.b %11000110
  Data.b %11000000 
  Data.b %11111100
  Data.b %00000110
  Data.b %11000110
  Data.b %01111100
  Data.b %00000000
  ;6
    Char_7:
  Data.b %01111100
  Data.b %11000110
  Data.b %11000000 
  Data.b %11111100
  Data.b %11000110
  Data.b %11000110
  Data.b %01111100
  Data.b %00000000
  ;7
    Char_8:
  Data.b %11111110
  Data.b %11000110
  Data.b %00000110 
  Data.b %00011000
  Data.b %00011000
  Data.b %00110000
  Data.b %00110000
  Data.b %00000000
  ;8
    Char_9:
  Data.b %01111100
  Data.b %11000110
  Data.b %11000110 
  Data.b %01111100
  Data.b %11000110
  Data.b %11000110
  Data.b %01111100
  Data.b %00000000
  ;9
    Char_10:
  Data.b %01111100
  Data.b %11000110
  Data.b %11000110 
  Data.b %01111110
  Data.b %00000110
  Data.b %11000110
  Data.b %01111100
  Data.b %00000000
  ;!
    Char_11:
  Data.b %00011000
  Data.b %00011000
  Data.b %00011000 
  Data.b %00011000
  Data.b %00011000
  Data.b %00000000
  Data.b %00011000
  Data.b %00000000
  ;"
    Char_12:
  Data.b %00110110
  Data.b %00100100
  Data.b %00000000 
  Data.b %00000000
  Data.b %00000000
  Data.b %00000000
  Data.b %00000000
  Data.b %00000000
  ;%
    Char_13:
  Data.b %11100010
  Data.b %10100100
  Data.b %11101000 
  Data.b %00010000
  Data.b %00101110
  Data.b %01001010
  Data.b %10001110
  Data.b %00000000
  ;$
    Char_14:
  Data.b %01111100
  Data.b %11010110
  Data.b %11010000 
  Data.b %01111100
  Data.b %00010110
  Data.b %11010110
  Data.b %01111100
  Data.b %00010000
  ;&
    Char_15:
  Data.b %00110000
  Data.b %01001000
  Data.b %01001000 
  Data.b %00110000
  Data.b %01001010
  Data.b %01000100
  Data.b %00111010
  Data.b %00000000
  ;#
    Char_16:
  Data.b %00000000
  Data.b %00000000
  Data.b %00010100
  Data.b %01111110
  Data.b %00101000 
  Data.b %11111100
  Data.b %01010000
  Data.b %00000000
  ;'  
    Char_17:
  Data.b %00001000
  Data.b %00001000
  Data.b %00000000 
  Data.b %00000000
  Data.b %00000000
  Data.b %00000000
  Data.b %00000000
  Data.b %00000000
  ;(
    Char_18:
  Data.b %00011000
  Data.b %00110000
  Data.b %01100000 
  Data.b %01100000
  Data.b %01100000
  Data.b %00110000
  Data.b %00011000
  Data.b %00000000
  ;)
    Char_19:
  Data.b %00011000
  Data.b %00001100
  Data.b %00000110 
  Data.b %00000110
  Data.b %00000110
  Data.b %00001100
  Data.b %00011000
  Data.b %00000000
  ;*
    Char_20:
  Data.b %00010000
  Data.b %01010100
  Data.b %00111000 
  Data.b %11111110
  Data.b %00111000
  Data.b %01010100
  Data.b %00010000
  Data.b %00000000
  ;+
    Char_21:
  Data.b %00000000
  Data.b %00011000
  Data.b %00011000 
  Data.b %01111110
  Data.b %01111110
  Data.b %00011000
  Data.b %00011000
  Data.b %00000000
  ;,
    Char_22:
  Data.b %00000000
  Data.b %00000000
  Data.b %00000000 
  Data.b %00000000
  Data.b %00000000
  Data.b %00011000
  Data.b %00001000
  Data.b %00010000
  ;-
    Char_23:
  Data.b %00000000
  Data.b %00000000
  Data.b %00000000 
  Data.b %01111110
  Data.b %01111110
  Data.b %00000000
  Data.b %00000000
  Data.b %00000000
  ;.
    Char_24:
  Data.b %00000000
  Data.b %00000000
  Data.b %00000000 
  Data.b %00000000
  Data.b %00000000
  Data.b %00011000
  Data.b %00011000
  Data.b %00000000
  ;/
    Char_25:
  Data.b %00000110
  Data.b %00001100
  Data.b %00011000 
  Data.b %00110000
  Data.b %01100000
  Data.b %11000000
  Data.b %10000000
  Data.b %00000000
  ;:
    Char_26:
  Data.b %00011000
  Data.b %00011000
  Data.b %00000000 
  Data.b %00000000
  Data.b %00000000
  Data.b %00011000
  Data.b %00011000
  Data.b %00000000
  ;;
    Char_27:
  Data.b %00011000
  Data.b %00011000
  Data.b %00000000 
  Data.b %00000000
  Data.b %00000000
  Data.b %00011000
  Data.b %00001000
  Data.b %00010000
  ;<
    Char_28:
  Data.b %00000110
  Data.b %00001100
  Data.b %00011000 
  Data.b %00110000
  Data.b %00011000
  Data.b %00001100
  Data.b %00000110
  Data.b %00000000
  ;=
    Char_29:
  Data.b %00000000
  Data.b %01111100
  Data.b %01111100 
  Data.b %00000000
  Data.b %01111100
  Data.b %01111100
  Data.b %00000000
  Data.b %00000000  
  ;>
    Char_30:
  Data.b %01100000
  Data.b %00110000
  Data.b %00011000 
  Data.b %00001100
  Data.b %00011000
  Data.b %00110000
  Data.b %01100000
  Data.b %00000000
  ;?
    Char_31:
  Data.b %00111100
  Data.b %01100110
  Data.b %01100110 
  Data.b %00001100
  Data.b %00011000
  Data.b %00011000
  Data.b %00000000
  Data.b %00011000
  ;@
    Char_32:
  Data.b %01111100
  Data.b %11000010
  Data.b %10011010 
  Data.b %10101010
  Data.b %10111010
  Data.b %10001100
  Data.b %01100000
  Data.b %00000000  
  ;A
    Char_33:
  Data.b %00111110
  Data.b %01000110
  Data.b %11000110 
  Data.b %11000110
  Data.b %11111110
  Data.b %11000110
  Data.b %11000110
  Data.b %00000000
  ;B
   Char_34:
  Data.b %11111100
  Data.b %11000110
  Data.b %11000110 
  Data.b %11111100
  Data.b %11000110
  Data.b %11000110
  Data.b %11111100
  Data.b %00000000
  ;C
    Char_35:
  Data.b %01111100
  Data.b %11000110
  Data.b %11000000 
  Data.b %11000000
  Data.b %11000000
  Data.b %11000110
  Data.b %01111100
  Data.b %00000000
  ;D
    Char_36:
  Data.b %11111000
  Data.b %11000100
  Data.b %11000110 
  Data.b %11000110
  Data.b %11000110
  Data.b %11000100
  Data.b %11111000
  Data.b %00000000
  ;E
    Char_37:
  Data.b %11111110
  Data.b %11000110
  Data.b %11000000 
  Data.b %11111000
  Data.b %11000000
  Data.b %11000110
  Data.b %11111110
  Data.b %00000000
  ;F
   Char_38:
  Data.b %11111110
  Data.b %11000110
  Data.b %11000000 
  Data.b %11111000
  Data.b %11000000
  Data.b %11000000
  Data.b %11000000
  Data.b %00000000
  ;G
    Char_39:
  Data.b %01111100
  Data.b %11000110
  Data.b %11000110 
  Data.b %11000000
  Data.b %11011110
  Data.b %11000110
  Data.b %01111100
  Data.b %00000000
  ;H
   Char_40:
  Data.b %11000110
  Data.b %11000110
  Data.b %11000110 
  Data.b %11111110
  Data.b %11000110
  Data.b %11000110
  Data.b %11000110
  Data.b %00000000
  ;I
    Char_41:
  Data.b %00111100
  Data.b %00011000
  Data.b %00011000 
  Data.b %00011000
  Data.b %00011000
  Data.b %00011000
  Data.b %00111100
  Data.b %00000000
  ;J
   Char_42:
  Data.b %00000110
  Data.b %00000110
  Data.b %00000110 
  Data.b %00000110
  Data.b %11000110
  Data.b %11000110
  Data.b %01111100
  Data.b %00000000
  ;K
    Char_43:
  Data.b %11000110
  Data.b %11000110
  Data.b %11001100 
  Data.b %11111000
  Data.b %11001100
  Data.b %11000110
  Data.b %11000110
  Data.b %00000000
  ;L
   Char_44:
  Data.b %11000000
  Data.b %11000000
  Data.b %11000000 
  Data.b %11000000
  Data.b %11000000
  Data.b %11000110
  Data.b %11111110
  Data.b %00000000
  ;M
    Char_45:
  Data.b %11000110
  Data.b %11000110
  Data.b %11101110 
  Data.b %11010110
  Data.b %11000110
  Data.b %11000110
  Data.b %11000110
  Data.b %00000000
  ;N
   Char_46:
  Data.b %11000110
  Data.b %11000110
  Data.b %11100110 
  Data.b %11010110
  Data.b %11001110
  Data.b %11000110
  Data.b %11000110
  Data.b %00000000
  ;O
    Char_47:
  Data.b %01111100
  Data.b %11000110
  Data.b %11000110 
  Data.b %11000110
  Data.b %11000110
  Data.b %11000110
  Data.b %01111100
  Data.b %00000000
  ;P
   Char_48:
  Data.b %11111100
  Data.b %11000110
  Data.b %11000110 
  Data.b %11000110
  Data.b %11111100
  Data.b %11000000
  Data.b %11000000
  Data.b %00000000
  ;Q
    Char_49:
  Data.b %01111100
  Data.b %11000110
  Data.b %11000110
  Data.b %11000110
  Data.b %11010110
  Data.b %11001110
  Data.b %01111100
  Data.b %00000010
  ;R
    Char_50:
  Data.b %11111100
  Data.b %11000110
  Data.b %11000110
  Data.b %11000110
  Data.b %11111100
  Data.b %11001100
  Data.b %11000110
  Data.b %00000000
  ;S
    Char_51:
  Data.b %01111100
  Data.b %11000110
  Data.b %11000000 
  Data.b %01111100
  Data.b %00000110
  Data.b %11000110
  Data.b %01111100
  Data.b %00000000
  ;T
    Char_52:
  Data.b %11111110
  Data.b %11010110
  Data.b %00010000 
  Data.b %00010000
  Data.b %00010000
  Data.b %00010000
  Data.b %00010000
  Data.b %00000000
  ;U
    Char_53:
  Data.b %11000110
  Data.b %11000110
  Data.b %11000110 
  Data.b %11000110
  Data.b %11000110
  Data.b %11111110
  Data.b %01111100
  Data.b %00000000
  ;V
    Char_54:
  Data.b %11000110
  Data.b %11000110
  Data.b %11000110 
  Data.b %11000110
  Data.b %11000110
  Data.b %01101100
  Data.b %00111000
  Data.b %00000000
  ;W
    Char_55:
  Data.b %11000110
  Data.b %11000110
  Data.b %11010110 
  Data.b %11010110
  Data.b %11010110
  Data.b %01111100
  Data.b %00101000
  Data.b %00000000
  ;X
    Char_56:
  Data.b %11000110
  Data.b %11000110
  Data.b %01101100 
  Data.b %00010000
  Data.b %01101100
  Data.b %11000110
  Data.b %11000110
  Data.b %00000000
  ;Y
    Char_57:
  Data.b %11000110
  Data.b %11000110
  Data.b %01000100
  Data.b %00101000
  Data.b %00010000
  Data.b %00010000
  Data.b %00010000
  Data.b %00000000
  ;Z
    Char_58:
  Data.b %11111110
  Data.b %11000100
  Data.b %00001000 
  Data.b %00010000
  Data.b %00100000
  Data.b %01000110
  Data.b %11111110
  Data.b %00000000
  ;[
    Char_59:
  Data.b %01110000
  Data.b %01100000
  Data.b %01100000 
  Data.b %01100000
  Data.b %01100000
  Data.b %01100000
  Data.b %01110000
  Data.b %00000000
  ;\
    Char_60:
  Data.b %11000000
  Data.b %01100000
  Data.b %00110000 
  Data.b %00011000
  Data.b %00001100
  Data.b %00000110
  Data.b %00000010
  Data.b %00000000
  ;]
    Char_61:
  Data.b %01110000
  Data.b %00110000
  Data.b %00110000 
  Data.b %00110000
  Data.b %00110000
  Data.b %00110000
  Data.b %01110000
  Data.b %00000000
  ;^
    Char_62:
  Data.b %00010000
  Data.b %00111000
  Data.b %01101100 
  Data.b %01000100
  Data.b %00000000
  Data.b %00000000
  Data.b %00000000
  Data.b %00000000
  ;_
    Char_63:
  Data.b %00000000
  Data.b %00000000
  Data.b %00000000 
  Data.b %00000000
  Data.b %00000000
  Data.b %11111110
  Data.b %11111110
  Data.b %00000000
  ;`
    Char_64:
  Data.b %01000000
  Data.b %00100000
  Data.b %00000000
  Data.b %00000000
  Data.b %00000000 
  Data.b %00000000
  Data.b %00000000
  Data.b %00000000
  ;a
    Char_65:
  Data.b %00000000
  Data.b %00000000
  Data.b %00111000 
  Data.b %00000100
  Data.b %00111100
  Data.b %01000100
  Data.b %00111100
  Data.b %00000000
  ;b
    Char_66:
  Data.b %01000000
  Data.b %01000000
  Data.b %01000000
  Data.b %01111000 
  Data.b %01000100
  Data.b %01000100
  Data.b %01111000
  Data.b %00000000
  ;c
    Char_67:
  Data.b %00000000
  Data.b %00000000
  Data.b %00111000 
  Data.b %01000000
  Data.b %01000000
  Data.b %01000100
  Data.b %00111000
  Data.b %00000000
  ;d
    Char_68:
  Data.b %00000100
  Data.b %00000100
  Data.b %00110100 
  Data.b %01001100
  Data.b %01000100
  Data.b %01000100
  Data.b %00111100
  Data.b %00000000
  ;e
    Char_69:
  Data.b %00000000
  Data.b %00000000
  Data.b %00111000 
  Data.b %01000100
  Data.b %01111000
  Data.b %01000000
  Data.b %00111000
  Data.b %00000000
  ;f
    Char_70:
  Data.b %00011000
  Data.b %00100100
  Data.b %00100000 
  Data.b %01110000
  Data.b %00100000
  Data.b %00100000
  Data.b %00100000
  Data.b %00000000
  ;g
    Char_71:
  Data.b %00000000
  Data.b %00111100
  Data.b %01000100 
  Data.b %01000100
  Data.b %00111100
  Data.b %00000100
  Data.b %00111000
  Data.b %00000000
  ;h
    Char_72:
  Data.b %01000000
  Data.b %01000000
  Data.b %01011000 
  Data.b %01100100
  Data.b %01000100
  Data.b %01000100
  Data.b %01000100
  Data.b %00000000
  ;i
    Char_73:
  Data.b %00010000
  Data.b %00000000
  Data.b %00110000 
  Data.b %00010000
  Data.b %00010000
  Data.b %00010000
  Data.b %00111000
  Data.b %00000000
  ;j
    Char_74:
  Data.b %00001000
  Data.b %00000000
  Data.b %00011000 
  Data.b %00001000
  Data.b %00001000
  Data.b %01001000
  Data.b %00110000
  Data.b %00000000
  ;k
    Char_75:
  Data.b %01000000
  Data.b %01000000
  Data.b %01001000 
  Data.b %01010000
  Data.b %01100000
  Data.b %01010000
  Data.b %01001000
  Data.b %00000000
  ;l
    Char_76:
  Data.b %00110000
  Data.b %00010000
  Data.b %00010000 
  Data.b %00010000
  Data.b %00010000
  Data.b %00010000
  Data.b %00111000
  Data.b %00000000
  ;m
    Char_77:
  Data.b %00000000
  Data.b %00000000
  Data.b %01101000 
  Data.b %01010100
  Data.b %01010100
  Data.b %01000100
  Data.b %01000100
  Data.b %00000000  
  ;n
    Char_78:
  Data.b %00000000
  Data.b %00000000
  Data.b %01011000 
  Data.b %01100100
  Data.b %01000100
  Data.b %01000100
  Data.b %01000100
  Data.b %00000000
  ;o
    Char_79:
  Data.b %00000000
  Data.b %00000000
  Data.b %00111000 
  Data.b %01000100
  Data.b %01000100
  Data.b %01000100
  Data.b %00111000
  Data.b %00000000
  ;p
    Char_80:
  Data.b %00000000
  Data.b %00000000
  Data.b %01111000 
  Data.b %01000100
  Data.b %01111000
  Data.b %01000000
  Data.b %01000000
  Data.b %00000000  
  ;q
    Char_81:
  Data.b %00000000
  Data.b %00000000
  Data.b %00111100 
  Data.b %01000100
  Data.b %00111100
  Data.b %00000100
  Data.b %00000100
  Data.b %00000000 
  ;r
   Char_82:
  Data.b %00000000
  Data.b %00000000
  Data.b %01011000 
  Data.b %01100100
  Data.b %01000000
  Data.b %01000000
  Data.b %01000000
  Data.b %00000000
  ;s
    Char_83:
  Data.b %00000000
  Data.b %00000000
  Data.b %00111000 
  Data.b %01000000
  Data.b %00111000
  Data.b %00000100
  Data.b %01111000
  Data.b %00000000
  ;t
    Char_84:
  Data.b %00100000
  Data.b %00100000
  Data.b %01110000 
  Data.b %00100000
  Data.b %00100000
  Data.b %00100100
  Data.b %00011000
  Data.b %00000000
  ;u
    Char_85:
  Data.b %00000000
  Data.b %00000000
  Data.b %01000100 
  Data.b %01000100
  Data.b %01000100
  Data.b %01001100
  Data.b %00110100
  Data.b %00000000
  ;v
   Char_86:
  Data.b %00000000
  Data.b %00000000
  Data.b %01000100 
  Data.b %01000100
  Data.b %01000100
  Data.b %00101000
  Data.b %00010000
  Data.b %00000000
  ;w
    Char_87:
  Data.b %00000000
  Data.b %00000000
  Data.b %01000100 
  Data.b %01000100
  Data.b %01000100
  Data.b %01010100
  Data.b %00101000
  Data.b %00000000
  ;x
   Char_88:
  Data.b %00000000
  Data.b %00000000
  Data.b %01000100 
  Data.b %00101000
  Data.b %00010000
  Data.b %00101000
  Data.b %01000100
  Data.b %00000000
  ;y
    Char_89:
  Data.b %00000000
  Data.b %00000000
  Data.b %01000100 
  Data.b %01000100
  Data.b %00111100
  Data.b %00000100
  Data.b %00111000
  Data.b %00000000
  ;z
   Char_90:
  Data.b %00000000
  Data.b %00000000
  Data.b %01111100 
  Data.b %00001000
  Data.b %00010000
  Data.b %00100000
  Data.b %01111100
  Data.b %00000000
  ;{
    Char_91:
  Data.b %00001100
  Data.b %00010000
  Data.b %00100000 
  Data.b %01100000
  Data.b %00100000
  Data.b %00010000
  Data.b %00001100
  Data.b %00000000
  ;|
   Char_92:
  Data.b %00010000
  Data.b %00010000
  Data.b %00010000 
  Data.b %00010000
  Data.b %00010000
  Data.b %00010000
  Data.b %00010000
  Data.b %00000000
  ;}
    Char_93:
  Data.b %01100000
  Data.b %00010000
  Data.b %00001000 
  Data.b %00001100
  Data.b %00001000
  Data.b %00010000
  Data.b %01100000
  Data.b %00000000
  ;~
   Char_94:
  Data.b %00100100
  Data.b %01011000
  Data.b %00000000 
  Data.b %00000000
  Data.b %00000000
  Data.b %00000000
  Data.b %00000000
  Data.b %00000000
  ;А
    Char_95:
  Data.b %00111110
  Data.b %01000110
  Data.b %11000110 
  Data.b %11000110
  Data.b %11111110
  Data.b %11000110
  Data.b %11000110
  Data.b %00000000
  ;Б
    Char_96:
  Data.b %11111110
  Data.b %11000110
  Data.b %11000000 
  Data.b %11111100
  Data.b %11000110
  Data.b %11000110
  Data.b %11111100
  Data.b %00000000
  ;В
    Char_97:
  Data.b %11111100
  Data.b %11000110
  Data.b %11000110 
  Data.b %11111100
  Data.b %11000110
  Data.b %11000110
  Data.b %11111100
  Data.b %00000000
  ;Г
    Char_98:
  Data.b %11111110
  Data.b %11000110
  Data.b %11000000 
  Data.b %11000000
  Data.b %11000000
  Data.b %11000000
  Data.b %11000000
  Data.b %00000000
  ;Д
    Char_99:
  Data.b %00001110
  Data.b %00010110
  Data.b %00100110 
  Data.b %01100110
  Data.b %01100110
  Data.b %11111111
  Data.b %11000011
  Data.b %00000000
  ;Е
    Char_100:
  Data.b %11111110
  Data.b %11000110
  Data.b %11000000 
  Data.b %11111000
  Data.b %11000000
  Data.b %11000110
  Data.b %11111110
  Data.b %00000000
  ;Ё
    Char_101:
  Data.b %00101000
  Data.b %00000000
  Data.b %11111110 
  Data.b %11000010
  Data.b %11111000
  Data.b %11000010
  Data.b %11111110
  Data.b %00000000
  ;Ж
    Char_102:
  Data.b %11010110
  Data.b %11010110
  Data.b %01111100 
  Data.b %00111000
  Data.b %01111100
  Data.b %11010110
  Data.b %11010110
  Data.b %00000000
  ;З
    Char_103:
  Data.b %01111100
  Data.b %11000110
  Data.b %00000110 
  Data.b %00011100
  Data.b %00000110
  Data.b %11000110
  Data.b %01111100
  Data.b %00000000
  ;И
    Char_104:
  Data.b %11000110
  Data.b %11000110
  Data.b %11001110 
  Data.b %11011110
  Data.b %11110110
  Data.b %11100110
  Data.b %11000110
  Data.b %00000000
  ;Й
    Char_105:
  Data.b %11010110
  Data.b %11000110
  Data.b %11001110 
  Data.b %11011110
  Data.b %11110110
  Data.b %11100110
  Data.b %11000110
  Data.b %00000000
  ;К
    Char_106:
  Data.b %11000110
  Data.b %11000110
  Data.b %11001100 
  Data.b %11111000
  Data.b %11001100
  Data.b %11000110
  Data.b %11000110
  Data.b %00000000
  ;Л
    Char_107:
  Data.b %00111110
  Data.b %01100110
  Data.b %01100110 
  Data.b %01100110
  Data.b %01100110
  Data.b %01100110
  Data.b %11000110
  Data.b %00000000
  ;М
    Char_108:
  Data.b %11000110
  Data.b %11000110
  Data.b %11101110 
  Data.b %11010110
  Data.b %11000110
  Data.b %11000110
  Data.b %11000110
  Data.b %00000000
  ;Н
    Char_109:
  Data.b %11000110
  Data.b %11000110
  Data.b %11000110 
  Data.b %11111110
  Data.b %11000110
  Data.b %11000110
  Data.b %11000110
  Data.b %00000000
  ;О
    Char_110:
  Data.b %01111100
  Data.b %11000110
  Data.b %11000110 
  Data.b %11000110
  Data.b %11000110
  Data.b %11000110
  Data.b %01111100
  Data.b %00000000
  ;П
    Char_111:
  Data.b %11111110
  Data.b %11000110
  Data.b %11000110 
  Data.b %11000110
  Data.b %11000110
  Data.b %11000110
  Data.b %11000110
  Data.b %00000000
  ;Р
    Char_112:
  Data.b %11111100
  Data.b %11000110
  Data.b %11000110 
  Data.b %11000110
  Data.b %11111100
  Data.b %11000000
  Data.b %11000000
  Data.b %00000000
  ;С
    Char_113:
  Data.b %01111100
  Data.b %11000110
  Data.b %11000000 
  Data.b %11000000
  Data.b %11000000
  Data.b %11000110
  Data.b %01111100
  Data.b %00000000
  ;Т
    Char_114:
  Data.b %11111110
  Data.b %11010110
  Data.b %00010000 
  Data.b %00010000
  Data.b %00010000
  Data.b %00010000
  Data.b %00010000
  Data.b %00000000
  ;У
    Char_115:
  Data.b %11000110
  Data.b %11000110
  Data.b %11000110 
  Data.b %01111110
  Data.b %00000110
  Data.b %11000110
  Data.b %01111100
  Data.b %00000000
  ;Ф
    Char_116:
  Data.b %01111100
  Data.b %11010110
  Data.b %11010110 
  Data.b %11010110
  Data.b %11010110
  Data.b %01111100
  Data.b %00010000
  Data.b %00000000
  ;Х
    Char_117:
  Data.b %11000110
  Data.b %11000110
  Data.b %01101100 
  Data.b %00010000
  Data.b %01101100
  Data.b %11000110
  Data.b %11000110
  Data.b %00000000
  ;Ц
    Char_118:
  Data.b %11000110
  Data.b %11000110
  Data.b %11000110 
  Data.b %11000110
  Data.b %11000110
  Data.b %11000110
  Data.b %11111110
  Data.b %00000011
  ;Ч
    Char_119:
  Data.b %11000110
  Data.b %11000110
  Data.b %11000110 
  Data.b %11000110
  Data.b %01111110
  Data.b %00000110
  Data.b %00000110
  Data.b %00000000
  ;Ш
    Char_120:
  Data.b %11010110
  Data.b %11010110
  Data.b %11010110 
  Data.b %11010110
  Data.b %11010110
  Data.b %11010110
  Data.b %11111110
  Data.b %00000000
  ;Щ
    Char_121:
  Data.b %11010110
  Data.b %11010110
  Data.b %11010110 
  Data.b %11010110
  Data.b %11010110
  Data.b %11010110
  Data.b %11111111
  Data.b %00000011
  ;Ъ
    Char_122:
  Data.b %11100000
  Data.b %01100000
  Data.b %01100000 
  Data.b %01111100
  Data.b %01100110
  Data.b %01100110
  Data.b %01111100
  Data.b %00000000
  ;Ы
    Char_123:
  Data.b %11000110
  Data.b %11000110
  Data.b %11000110 
  Data.b %11100110
  Data.b %11010110
  Data.b %11010110
  Data.b %11100110
  Data.b %00000000
  ;Ь
    Char_124:
  Data.b %01100000
  Data.b %01100000
  Data.b %01100000 
  Data.b %01111100
  Data.b %01100110
  Data.b %01100110
  Data.b %01111100
  Data.b %00000000
  ;Э
    Char_125:
  Data.b %01111100
  Data.b %11000110
  Data.b %00000110 
  Data.b %00111110
  Data.b %00000110
  Data.b %11000110
  Data.b %01111100
  Data.b %00000000
  ;Ю
    Char_126:
  Data.b %11001100
  Data.b %11010110
  Data.b %11010110 
  Data.b %11110110
  Data.b %11010110
  Data.b %11010110
  Data.b %11001100
  Data.b %00000000
  ;Я
    Char_127:
  Data.b %01111110
  Data.b %11000110
  Data.b %11000110 
  Data.b %11000110
  Data.b %01111110
  Data.b %00110110
  Data.b %11100110
  Data.b %00000000
  ;а
    Char_128:
  Data.b %00000000
  Data.b %00000000
  Data.b %00111000 
  Data.b %01000100
  Data.b %01000100
  Data.b %01000100
  Data.b %00111010
  Data.b %00000000
  ;б
    Char_129:
  Data.b %01111100
  Data.b %00100000
  Data.b %00010000 
  Data.b %00111000
  Data.b %01000100
  Data.b %01000100
  Data.b %00111000
  Data.b %00000000
  ;в
    Char_130:
  Data.b %00110000
  Data.b %01001000
  Data.b %01001000 
  Data.b %01111000
  Data.b %01000100
  Data.b %01000100
  Data.b %00111000
  Data.b %00000000
  ;г
    Char_131:
  Data.b %00000000
  Data.b %00000000
  Data.b %00111000 
  Data.b %00000100
  Data.b %00111000
  Data.b %01000000
  Data.b %00111100
  Data.b %00000000
  ;д
    Char_132:
  Data.b %00000000
  Data.b %00000000
  Data.b %00011100 
  Data.b %00100100
  Data.b %00100100
  Data.b %01111110
  Data.b %01000010
  Data.b %00000000
  ;е
    Char_133:
  Data.b %00000000
  Data.b %00000000
  Data.b %00111000 
  Data.b %01000100
  Data.b %01111000
  Data.b %01000000
  Data.b %00111000
  Data.b %00000000
  ;ё
    Char_134:
  Data.b %00101000
  Data.b %00000000
  Data.b %00111000 
  Data.b %01000100
  Data.b %01111000
  Data.b %01000000
  Data.b %00111000
  Data.b %00000000
  ;ж
    Char_135:
  Data.b %00000000
  Data.b %00000000
  Data.b %01010100 
  Data.b %01010100
  Data.b %00111000
  Data.b %01010100
  Data.b %01010100
  Data.b %00000000
  ;з
    Char_136:
  Data.b %00000000
  Data.b %00000000
  Data.b %00111000 
  Data.b %01000100
  Data.b %00001000
  Data.b %01000100
  Data.b %00111000
  Data.b %00000000
  ;и
    Char_137:
  Data.b %00000000
  Data.b %00000000
  Data.b %01001000 
  Data.b %01001000
  Data.b %01001000
  Data.b %01001000
  Data.b %00110100
  Data.b %00000000
  ;й
    Char_138:
  Data.b %00000000
  Data.b %00010000
  Data.b %01001000 
  Data.b %01001000
  Data.b %01001000
  Data.b %01001000
  Data.b %00110100
  Data.b %00000000
  ;к
    Char_139:
  Data.b %00000000
  Data.b %00000000
  Data.b %01000100 
  Data.b %01001000
  Data.b %01110000
  Data.b %01001000
  Data.b %01000100
  Data.b %00000000 
  ;л
    Char_140:
  Data.b %00000000
  Data.b %00000000
  Data.b %00011100 
  Data.b %00100100
  Data.b %00100100
  Data.b %00100100
  Data.b %01000100
  Data.b %00000000  
  ;м
    Char_141:
  Data.b %00000000
  Data.b %00000000
  Data.b %01000100 
  Data.b %01101100
  Data.b %01010100
  Data.b %01000100
  Data.b %01000100
  Data.b %00000000 
  ;н
    Char_142:
  Data.b %00000000
  Data.b %00000000
  Data.b %01000100 
  Data.b %01000100
  Data.b %01111100
  Data.b %01000100
  Data.b %01000100
  Data.b %00000000
  ;о
    Char_143:
  Data.b %00000000
  Data.b %00000000
  Data.b %00111000 
  Data.b %01000100
  Data.b %01000100
  Data.b %01000100
  Data.b %00111000
  Data.b %00000000
  ;п
    Char_144:
  Data.b %00000000
  Data.b %00000000
  Data.b %00111000 
  Data.b %01000100
  Data.b %01000100
  Data.b %01000100
  Data.b %01000100
  Data.b %00000000
  ;р
    Char_145:
  Data.b %00000000
  Data.b %00000000
  Data.b %01111000 
  Data.b %01000100
  Data.b %01000100
  Data.b %01111000
  Data.b %01000000
  Data.b %00000000
  ;с
    Char_146:
  Data.b %00000000
  Data.b %00000000
  Data.b %00111000 
  Data.b %01000100
  Data.b %01000000
  Data.b %01000100
  Data.b %00111000
  Data.b %00000000
  ;т
    Char_147:
  Data.b %00000000
  Data.b %00000000
  Data.b %00101000 
  Data.b %01010100
  Data.b %01010100
  Data.b %01010100
  Data.b %01010010
  Data.b %00000000
  ;у
    Char_148:
  Data.b %00000000
  Data.b %00000000
  Data.b %01000100 
  Data.b %01000100
  Data.b %00111100
  Data.b %00000100
  Data.b %00111000
  Data.b %00000000
  ;ф
    Char_149:
  Data.b %00000000
  Data.b %00010000
  Data.b %00111000 
  Data.b %01010100
  Data.b %01010100
  Data.b %00111000
  Data.b %00010000
  Data.b %00000000
  ;х
    Char_150:
  Data.b %00000000
  Data.b %00000000
  Data.b %01000100 
  Data.b %00101000
  Data.b %00010000
  Data.b %00101000
  Data.b %01000100
  Data.b %00000000
  ;ц
    Char_151:
  Data.b %00000000
  Data.b %00000000
  Data.b %01001000 
  Data.b %01001000
  Data.b %01001000
  Data.b %01001000
  Data.b %00111100
  Data.b %00000100
  ;ч
    Char_152:
  Data.b %00000000
  Data.b %00000000
  Data.b %01000100 
  Data.b %01000100
  Data.b %01000100
  Data.b %00111100
  Data.b %00000100
  Data.b %00000000
  ;ш
    Char_153:
  Data.b %00000000
  Data.b %00000000
  Data.b %01010100 
  Data.b %01010100
  Data.b %01010100
  Data.b %01010100
  Data.b %00111100
  Data.b %00000000
  ;щ
    Char_154:
  Data.b %00000000
  Data.b %00000000
  Data.b %01010100 
  Data.b %01010100
  Data.b %01010100
  Data.b %01010100
  Data.b %00111110
  Data.b %00000010
  ;ъ
    Char_155:
  Data.b %00000000
  Data.b %00000000
  Data.b %11000000 
  Data.b %01000000
  Data.b %01110000
  Data.b %01001000
  Data.b %01110000
  Data.b %00000000
  ;ы
    Char_156:
  Data.b %00000000
  Data.b %00000000
  Data.b %01000100 
  Data.b %01000100
  Data.b %01100100
  Data.b %01010100
  Data.b %01100100
  Data.b %00000000
  ;ь
    Char_157:
  Data.b %00000000
  Data.b %00000000
  Data.b %01000000 
  Data.b %01000000
  Data.b %01110000
  Data.b %01001000
  Data.b %01110000
  Data.b %00000000
  ;э
    Char_158:
  Data.b %00000000
  Data.b %00111000
  Data.b %01000100 
  Data.b %00000100
  Data.b %00011100
  Data.b %01000100
  Data.b %00111000
  Data.b %00000000
  ;ю
    Char_159:
  Data.b %00000000
  Data.b %00000000
  Data.b %01001000 
  Data.b %01010100
  Data.b %01100100
  Data.b %01010100
  Data.b %01001000
  Data.b %00000000
  ;я
    Char_160:
  Data.b %00000000
  Data.b %00000000
  Data.b %00111100 
  Data.b %01000100
  Data.b %00111100
  Data.b %00010100
  Data.b %01100100
  Data.b %00000000  
  ;№
    Char_161:
  Data.b %00000000
  Data.b %00000000
  Data.b %00000000 
  Data.b %10010110
  Data.b %11010110
  Data.b %10110000
  Data.b %10010110
  Data.b %00000000  
EndDataSection

Что теперь дальше делать? :dontknow:

0

257

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

Что теперь дальше делать?

Сдвиг данных.
Вот пример сдвига одного символа.

Код:
Structure DrawInfo
  row.b[8]
EndStructure

CreateImage(0,148,148);

Procedure Draw_Image(*Infa.DrawInfo)
  
  If StartDrawing(ImageOutput(0))
    Box(0,0,148,148,0) ; Очистка рисунка
     For col = 0 To 7
       For row = 0 To 7
         x = 20 + col * 15
         y = 20 + row * 15 
         If *Infa\row[row] << col & %10000000
           Color = RGB(210, 27, 45)
         Else
           Color = RGB(131, 137, 141)
         EndIf
         Circle(x, y, 5, Color)
       Next
     Next
    StopDrawing()
  EndIf
  SetGadgetState(0, ImageID(0))
EndProcedure

Procedure Shift(*Image.DrawInfo)
  
  For i=0 To 7
    *Image\row[i]<<1
  Next i
  
  Draw_Image(*Image)
EndProcedure

Image.DrawInfo
If OpenWindow(0, 0, 0, 277, 260, "О", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  
  ImageGadget(0,20,20,148,148, 0)
  CopyMemory(?Char_A, @Image, SizeOf(DrawInfo))
  Draw_Image(@Image)
 
  AddWindowTimer(0,0,1000)
  Pos=0
  Repeat
    Event = WaitWindowEvent()
    If Event = #PB_Event_Timer    
      Shift(Image)
    EndIf
  Until Event = #PB_Event_CloseWindow
  
EndIf

DataSection  
  Char_A:
  Data.b %00111110
  Data.b %01000110
  Data.b %11000110 
  Data.b %11000110
  Data.b %11111110
  Data.b %11000110
  Data.b %11000110
  Data.b %00000000
EndDataSection

0

258

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

Сдвиг данных.

Спасибо.

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

Вот пример сдвига одного символа.

А как сделать для всех?

0

259

Следующее - это, наверное, процедура распознования символа в EditorGadget и поисвоения ему соответствующего значения из DataSection?

0

260

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

процедура распознования символа в EditorGadget и поисвоения ему соответствующего значения из DataSection?

Код символа можно получить при помощи функции Asc.
Соответствие кодов их символов можно увидеть в окне "Таблица ASCII" из меню "Инструменты".

0

261

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

при помощи функции Asc.

Спасибо, но эта функция возвращает значение только первого символа строки.
Следующие, я думаю, надо организоввывать с помощью Shift. А как это организовать? :dontknow:

0

262

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

Спасибо, но эта функция возвращает значение только первого символа строки.

Ну а что мешает пройтись по всем символам?

Код:
String.s="Это строка текста"
Len = Len(String)

For i=1 To Len
  Debug Asc(Mid(String, i, 1))
Next i

Но можно упростить до этого, но программа должна быть в формате ASCII, потому что с юникодом такой номер не пройдет.

Код:
String.s="Это строка текста"
Len = Len(String) - 1

For i=0 To Len
  Debug PeekA(@String+i)
Next i

0

263

Спасибо.

0

264

Что-то не могу сообразить как это все соеденить в кучу.

0

265

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

Что-то не могу сообразить как это все соеденить в кучу.

Так толком ни чего не придумал. Единственное, что сделал, это:

Код:
String.s=Many_uk()
Len = Len(String)

For i=1 To Len
  Debug Asc(Mid(String, i, 1))
Next i

А дальше темный лес. Можно пример?

0

266

Данные симоволов надо было располагать в порядке их нахождения в таблице ASCII (см. инструменты пурика), что значително обрагчает доступ к ним. Переделал.

Получился от такой, немного корявый код, но рабочий.

Код:
Structure DrawInfo
  row.a[8]
EndStructure

CreateImage(0,148,148);

Procedure Draw_Image(*Infa.DrawInfo)
  
  If StartDrawing(ImageOutput(0))
    Box(83,0,148,148,0) ; Очистка рисунка
    For col = 0 To 7
      For row = 0 To 7
        x = 20 + col * 15
        y = 20 + row * 15 
        If *Infa\row[row] << col & %10000000
          Color = RGB(255, 102, 00)
        Else
          Color = RGB(102, 102, 102)
        EndIf
        Circle(x, y, 5, Color)
      Next
    Next
    StopDrawing()
  EndIf
  SetGadgetState(0, ImageID(0))
EndProcedure

Procedure GetChar(Char.a, *Draw.DrawInfo)
  FillMemory(*Draw, SizeOf(DrawInfo), 0) ; Чистим сторуктуру - забиваем ее нулями
  
  Select Char
    Case '!' To '~'
      CopyMemory(?Char_11+(Char-'!')*8, *Draw, SizeOf(DrawInfo))
    Case 'А' To 'я'
      CopyMemory(?Char_95+(Char-'А')*8, *Draw, SizeOf(DrawInfo))
    Case 'Ё'
      CopyMemory(?Char_101, *Draw, SizeOf(DrawInfo))
    Case 'ё'
      CopyMemory(?Char_134, *Draw, SizeOf(DrawInfo))
    Case '№'
      CopyMemory(?Char_161, *Draw, SizeOf(DrawInfo))
  EndSelect
EndProcedure

Procedure Timer1()
  Shared ShiftString_Pos
  Shared ShiftString_String_Pos
  Shared ShiftString_String.s
  Static ShiftDraw.DrawInfo, ShiftTemp.DrawInfo
  Protected Len, i
  
  Len=Len(ShiftString_String)
  If Len>1
    
    If ShiftString_String_Pos>=Len
      ShiftString_String_Pos = 0
    EndIf
    
    
    If ShiftString_Pos>8
      ShiftString_Pos=0
    EndIf
    
    If ShiftString_Pos=0
      GetChar(PeekA(@ShiftString_String+ShiftString_String_Pos), ShiftTemp)
      Debug Chr(PeekA(@ShiftString_String+ShiftString_String_Pos))
      ShiftString_String_Pos+1
    EndIf
    
    For i=0 To 7
      ShiftDraw\row[i] << 1
      If ShiftTemp\row[i] & %10000000
        ShiftDraw\row[i] | 1
      Else
        ShiftDraw\row[i] & %11111110
      EndIf
      ShiftTemp\row[i] << 1
    Next i
    
    ShiftString_Pos+1
    

  Else
    ShiftString_Pos=0
    ShiftString_String_Pos=0
    FillMemory(ShiftDraw, SizeOf(DrawInfo), 0)
  EndIf
  
  Draw_Image(ShiftDraw)
  
EndProcedure

If OpenWindow(0, 0, 0, 277, 260, "О", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  
  ImageGadget(0,20,20,148,148, 0)
  
  ShiftString_String.s = "Строка текста"
 
  SetTimer_(WindowID(0),0,200, @Timer1())
  Repeat
    Event = WaitWindowEvent()
  Until Event = #PB_Event_CloseWindow
  
EndIf

DataSection
  
  ;!
    Char_11:
  Data.b %00011000
  Data.b %00011000
  Data.b %00011000 
  Data.b %00011000
  Data.b %00011000
  Data.b %00000000
  Data.b %00011000
  Data.b %00000000
  ;"
    Char_12:
  Data.b %00110110
  Data.b %00100100
  Data.b %00000000 
  Data.b %00000000
  Data.b %00000000
  Data.b %00000000
  Data.b %00000000
  Data.b %00000000
  ;#
    Char_16:
  Data.b %00000000
  Data.b %00000000
  Data.b %00010100
  Data.b %01111110
  Data.b %00101000 
  Data.b %11111100
  Data.b %01010000
  Data.b %00000000
  ;$
    Char_14:
  Data.b %01111100
  Data.b %11010110
  Data.b %11010000 
  Data.b %01111100
  Data.b %00010110
  Data.b %11010110
  Data.b %01111100
  Data.b %00010000
  ;%
    Char_13:
  Data.b %11100010
  Data.b %10100100
  Data.b %11101000 
  Data.b %00010000
  Data.b %00101110
  Data.b %01001010
  Data.b %10001110
  Data.b %00000000
  ;&
    Char_15:
  Data.b %00110000
  Data.b %01001000
  Data.b %01001000 
  Data.b %00110000
  Data.b %01001010
  Data.b %01000100
  Data.b %00111010
  Data.b %00000000
  ;'  
    Char_17:
  Data.b %00001000
  Data.b %00001000
  Data.b %00000000 
  Data.b %00000000
  Data.b %00000000
  Data.b %00000000
  Data.b %00000000
  Data.b %00000000
  ;(
    Char_18:
  Data.b %00011000
  Data.b %00110000
  Data.b %01100000 
  Data.b %01100000
  Data.b %01100000
  Data.b %00110000
  Data.b %00011000
  Data.b %00000000
  ;)
    Char_19:
  Data.b %00011000
  Data.b %00001100
  Data.b %00000110 
  Data.b %00000110
  Data.b %00000110
  Data.b %00001100
  Data.b %00011000
  Data.b %00000000
  ;*
    Char_20:
  Data.b %00010000
  Data.b %01010100
  Data.b %00111000 
  Data.b %11111110
  Data.b %00111000
  Data.b %01010100
  Data.b %00010000
  Data.b %00000000
  ;+
    Char_21:
  Data.b %00000000
  Data.b %00011000
  Data.b %00011000 
  Data.b %01111110
  Data.b %01111110
  Data.b %00011000
  Data.b %00011000
  Data.b %00000000
  ;,
    Char_22:
  Data.b %00000000
  Data.b %00000000
  Data.b %00000000 
  Data.b %00000000
  Data.b %00000000
  Data.b %00011000
  Data.b %00001000
  Data.b %00010000
  ;-
    Char_23:
  Data.b %00000000
  Data.b %00000000
  Data.b %00000000 
  Data.b %01111110
  Data.b %01111110
  Data.b %00000000
  Data.b %00000000
  Data.b %00000000
  ;.
    Char_24:
  Data.b %00000000
  Data.b %00000000
  Data.b %00000000 
  Data.b %00000000
  Data.b %00000000
  Data.b %00011000
  Data.b %00011000
  Data.b %00000000
  ;/
    Char_25:
  Data.b %00000110
  Data.b %00001100
  Data.b %00011000 
  Data.b %00110000
  Data.b %01100000
  Data.b %11000000
  Data.b %10000000
  Data.b %00000000
  ;0
    Char_1:
  Data.b %01111100
  Data.b %11000110
  Data.b %11001110
  Data.b %11010110
  Data.b %11100110
  Data.b %11000110
  Data.b %01111100
  Data.b %00000000
  ;1
    Char_2:
  Data.b %00011000
  Data.b %00111000
  Data.b %01111000
  Data.b %00011000
  Data.b %00011000
  Data.b %00011000
  Data.b %01111110
  Data.b %00000000
  ;2
    Char_3:
  Data.b %01111100
  Data.b %11000110
  Data.b %11000110 
  Data.b %00001100
  Data.b %00010000
  Data.b %01100110
  Data.b %11111110
  Data.b %00000000
  ;3
    Char_4:
  Data.b %11111110
  Data.b %11000110
  Data.b %00001000 
  Data.b %00011100
  Data.b %11000110
  Data.b %11000110
  Data.b %01111100
  Data.b %00000000
  ;4
    Char_5:
  Data.b %00001100
  Data.b %00011100
  Data.b %00101100 
  Data.b %01001100
  Data.b %11001110
  Data.b %11111110
  Data.b %00001100
  Data.b %00000000
  ;5
    Char_6:
  Data.b %11111110
  Data.b %11000110
  Data.b %11000000 
  Data.b %11111100
  Data.b %00000110
  Data.b %11000110
  Data.b %01111100
  Data.b %00000000
  ;6
    Char_7:
  Data.b %01111100
  Data.b %11000110
  Data.b %11000000 
  Data.b %11111100
  Data.b %11000110
  Data.b %11000110
  Data.b %01111100
  Data.b %00000000
  ;7
    Char_8:
  Data.b %11111110
  Data.b %11000110
  Data.b %00000110 
  Data.b %00011000
  Data.b %00011000
  Data.b %00110000
  Data.b %00110000
  Data.b %00000000
  ;8
    Char_9:
  Data.b %01111100
  Data.b %11000110
  Data.b %11000110 
  Data.b %01111100
  Data.b %11000110
  Data.b %11000110
  Data.b %01111100
  Data.b %00000000
  ;9
    Char_10:
  Data.b %01111100
  Data.b %11000110
  Data.b %11000110 
  Data.b %01111110
  Data.b %00000110
  Data.b %11000110
  Data.b %01111100
  Data.b %00000000
  ;:
    Char_26:
  Data.b %00011000
  Data.b %00011000
  Data.b %00000000 
  Data.b %00000000
  Data.b %00000000
  Data.b %00011000
  Data.b %00011000
  Data.b %00000000
  ;;
    Char_27:
  Data.b %00011000
  Data.b %00011000
  Data.b %00000000 
  Data.b %00000000
  Data.b %00000000
  Data.b %00011000
  Data.b %00001000
  Data.b %00010000
  ;<
    Char_28:
  Data.b %00000110
  Data.b %00001100
  Data.b %00011000 
  Data.b %00110000
  Data.b %00011000
  Data.b %00001100
  Data.b %00000110
  Data.b %00000000
  ;=
    Char_29:
  Data.b %00000000
  Data.b %01111100
  Data.b %01111100 
  Data.b %00000000
  Data.b %01111100
  Data.b %01111100
  Data.b %00000000
  Data.b %00000000  
  ;>
    Char_30:
  Data.b %01100000
  Data.b %00110000
  Data.b %00011000 
  Data.b %00001100
  Data.b %00011000
  Data.b %00110000
  Data.b %01100000
  Data.b %00000000
  ;?
    Char_31:
  Data.b %00111100
  Data.b %01100110
  Data.b %01100110 
  Data.b %00001100
  Data.b %00011000
  Data.b %00011000
  Data.b %00000000
  Data.b %00011000
  ;@
    Char_32:
  Data.b %01111100
  Data.b %11000010
  Data.b %10011010 
  Data.b %10101010
  Data.b %10111010
  Data.b %10001100
  Data.b %01100000
  Data.b %00000000  
  ;A
    Char_33:
  Data.b %00111110
  Data.b %01000110
  Data.b %11000110 
  Data.b %11000110
  Data.b %11111110
  Data.b %11000110
  Data.b %11000110
  Data.b %00000000
  ;B
   Char_34:
  Data.b %11111100
  Data.b %11000110
  Data.b %11000110 
  Data.b %11111100
  Data.b %11000110
  Data.b %11000110
  Data.b %11111100
  Data.b %00000000
  ;C
    Char_35:
  Data.b %01111100
  Data.b %11000110
  Data.b %11000000 
  Data.b %11000000
  Data.b %11000000
  Data.b %11000110
  Data.b %01111100
  Data.b %00000000
  ;D
    Char_36:
  Data.b %11111000
  Data.b %11000100
  Data.b %11000110 
  Data.b %11000110
  Data.b %11000110
  Data.b %11000100
  Data.b %11111000
  Data.b %00000000
  ;E
    Char_37:
  Data.b %11111110
  Data.b %11000110
  Data.b %11000000 
  Data.b %11111000
  Data.b %11000000
  Data.b %11000110
  Data.b %11111110
  Data.b %00000000
  ;F
   Char_38:
  Data.b %11111110
  Data.b %11000110
  Data.b %11000000 
  Data.b %11111000
  Data.b %11000000
  Data.b %11000000
  Data.b %11000000
  Data.b %00000000
  ;G
    Char_39:
  Data.b %01111100
  Data.b %11000110
  Data.b %11000110 
  Data.b %11000000
  Data.b %11011110
  Data.b %11000110
  Data.b %01111100
  Data.b %00000000
  ;H
   Char_40:
  Data.b %11000110
  Data.b %11000110
  Data.b %11000110 
  Data.b %11111110
  Data.b %11000110
  Data.b %11000110
  Data.b %11000110
  Data.b %00000000
  ;I
    Char_41:
  Data.b %00111100
  Data.b %00011000
  Data.b %00011000 
  Data.b %00011000
  Data.b %00011000
  Data.b %00011000
  Data.b %00111100
  Data.b %00000000
  ;J
   Char_42:
  Data.b %00000110
  Data.b %00000110
  Data.b %00000110 
  Data.b %00000110
  Data.b %11000110
  Data.b %11000110
  Data.b %01111100
  Data.b %00000000
  ;K
    Char_43:
  Data.b %11000110
  Data.b %11000110
  Data.b %11001100 
  Data.b %11111000
  Data.b %11001100
  Data.b %11000110
  Data.b %11000110
  Data.b %00000000
  ;L
   Char_44:
  Data.b %11000000
  Data.b %11000000
  Data.b %11000000 
  Data.b %11000000
  Data.b %11000000
  Data.b %11000110
  Data.b %11111110
  Data.b %00000000
  ;M
    Char_45:
  Data.b %11000110
  Data.b %11000110
  Data.b %11101110 
  Data.b %11010110
  Data.b %11000110
  Data.b %11000110
  Data.b %11000110
  Data.b %00000000
  ;N
   Char_46:
  Data.b %11000110
  Data.b %11000110
  Data.b %11100110 
  Data.b %11010110
  Data.b %11001110
  Data.b %11000110
  Data.b %11000110
  Data.b %00000000
  ;O
    Char_47:
  Data.b %01111100
  Data.b %11000110
  Data.b %11000110 
  Data.b %11000110
  Data.b %11000110
  Data.b %11000110
  Data.b %01111100
  Data.b %00000000
  ;P
   Char_48:
  Data.b %11111100
  Data.b %11000110
  Data.b %11000110 
  Data.b %11000110
  Data.b %11111100
  Data.b %11000000
  Data.b %11000000
  Data.b %00000000
  ;Q
    Char_49:
  Data.b %01111100
  Data.b %11000110
  Data.b %11000110
  Data.b %11000110
  Data.b %11010110
  Data.b %11001110
  Data.b %01111100
  Data.b %00000010
  ;R
    Char_50:
  Data.b %11111100
  Data.b %11000110
  Data.b %11000110
  Data.b %11000110
  Data.b %11111100
  Data.b %11001100
  Data.b %11000110
  Data.b %00000000
  ;S
    Char_51:
  Data.b %01111100
  Data.b %11000110
  Data.b %11000000 
  Data.b %01111100
  Data.b %00000110
  Data.b %11000110
  Data.b %01111100
  Data.b %00000000
  ;T
    Char_52:
  Data.b %11111110
  Data.b %11010110
  Data.b %00010000 
  Data.b %00010000
  Data.b %00010000
  Data.b %00010000
  Data.b %00010000
  Data.b %00000000
  ;U
    Char_53:
  Data.b %11000110
  Data.b %11000110
  Data.b %11000110 
  Data.b %11000110
  Data.b %11000110
  Data.b %11111110
  Data.b %01111100
  Data.b %00000000
  ;V
    Char_54:
  Data.b %11000110
  Data.b %11000110
  Data.b %11000110 
  Data.b %11000110
  Data.b %11000110
  Data.b %01101100
  Data.b %00111000
  Data.b %00000000
  ;W
    Char_55:
  Data.b %11000110
  Data.b %11000110
  Data.b %11010110 
  Data.b %11010110
  Data.b %11010110
  Data.b %01111100
  Data.b %00101000
  Data.b %00000000
  ;X
    Char_56:
  Data.b %11000110
  Data.b %11000110
  Data.b %01101100 
  Data.b %00010000
  Data.b %01101100
  Data.b %11000110
  Data.b %11000110
  Data.b %00000000
  ;Y
    Char_57:
  Data.b %11000110
  Data.b %11000110
  Data.b %01000100
  Data.b %00101000
  Data.b %00010000
  Data.b %00010000
  Data.b %00010000
  Data.b %00000000
  ;Z
    Char_58:
  Data.b %11111110
  Data.b %11000100
  Data.b %00001000 
  Data.b %00010000
  Data.b %00100000
  Data.b %01000110
  Data.b %11111110
  Data.b %00000000
  ;[
    Char_59:
  Data.b %01110000
  Data.b %01100000
  Data.b %01100000 
  Data.b %01100000
  Data.b %01100000
  Data.b %01100000
  Data.b %01110000
  Data.b %00000000
  ;\
    Char_60:
  Data.b %11000000
  Data.b %01100000
  Data.b %00110000 
  Data.b %00011000
  Data.b %00001100
  Data.b %00000110
  Data.b %00000010
  Data.b %00000000
  ;]
    Char_61:
  Data.b %01110000
  Data.b %00110000
  Data.b %00110000 
  Data.b %00110000
  Data.b %00110000
  Data.b %00110000
  Data.b %01110000
  Data.b %00000000
  ;^
    Char_62:
  Data.b %00010000
  Data.b %00111000
  Data.b %01101100 
  Data.b %01000100
  Data.b %00000000
  Data.b %00000000
  Data.b %00000000
  Data.b %00000000
  ;_
    Char_63:
  Data.b %00000000
  Data.b %00000000
  Data.b %00000000 
  Data.b %00000000
  Data.b %00000000
  Data.b %11111110
  Data.b %11111110
  Data.b %00000000
  ;`
    Char_64:
  Data.b %01000000
  Data.b %00100000
  Data.b %00000000
  Data.b %00000000
  Data.b %00000000 
  Data.b %00000000
  Data.b %00000000
  Data.b %00000000
  ;a
    Char_65:
  Data.b %00000000
  Data.b %00000000
  Data.b %00111000 
  Data.b %00000100
  Data.b %00111100
  Data.b %01000100
  Data.b %00111100
  Data.b %00000000
  ;b
    Char_66:
  Data.b %01000000
  Data.b %01000000
  Data.b %01000000
  Data.b %01111000 
  Data.b %01000100
  Data.b %01000100
  Data.b %01111000
  Data.b %00000000
  ;c
    Char_67:
  Data.b %00000000
  Data.b %00000000
  Data.b %00111000 
  Data.b %01000000
  Data.b %01000000
  Data.b %01000100
  Data.b %00111000
  Data.b %00000000
  ;d
    Char_68:
  Data.b %00000100
  Data.b %00000100
  Data.b %00110100 
  Data.b %01001100
  Data.b %01000100
  Data.b %01000100
  Data.b %00111100
  Data.b %00000000
  ;e
    Char_69:
  Data.b %00000000
  Data.b %00000000
  Data.b %00111000 
  Data.b %01000100
  Data.b %01111000
  Data.b %01000000
  Data.b %00111000
  Data.b %00000000
  ;f
    Char_70:
  Data.b %00011000
  Data.b %00100100
  Data.b %00100000 
  Data.b %01110000
  Data.b %00100000
  Data.b %00100000
  Data.b %00100000
  Data.b %00000000
  ;g
    Char_71:
  Data.b %00000000
  Data.b %00111100
  Data.b %01000100 
  Data.b %01000100
  Data.b %00111100
  Data.b %00000100
  Data.b %00111000
  Data.b %00000000
  ;h
    Char_72:
  Data.b %01000000
  Data.b %01000000
  Data.b %01011000 
  Data.b %01100100
  Data.b %01000100
  Data.b %01000100
  Data.b %01000100
  Data.b %00000000
  ;i
    Char_73:
  Data.b %00010000
  Data.b %00000000
  Data.b %00110000 
  Data.b %00010000
  Data.b %00010000
  Data.b %00010000
  Data.b %00111000
  Data.b %00000000
  ;j
    Char_74:
  Data.b %00001000
  Data.b %00000000
  Data.b %00011000 
  Data.b %00001000
  Data.b %00001000
  Data.b %01001000
  Data.b %00110000
  Data.b %00000000
  ;k
    Char_75:
  Data.b %01000000
  Data.b %01000000
  Data.b %01001000 
  Data.b %01010000
  Data.b %01100000
  Data.b %01010000
  Data.b %01001000
  Data.b %00000000
  ;l
    Char_76:
  Data.b %00110000
  Data.b %00010000
  Data.b %00010000 
  Data.b %00010000
  Data.b %00010000
  Data.b %00010000
  Data.b %00111000
  Data.b %00000000
  ;m
    Char_77:
  Data.b %00000000
  Data.b %00000000
  Data.b %01101000 
  Data.b %01010100
  Data.b %01010100
  Data.b %01000100
  Data.b %01000100
  Data.b %00000000  
  ;n
    Char_78:
  Data.b %00000000
  Data.b %00000000
  Data.b %01011000 
  Data.b %01100100
  Data.b %01000100
  Data.b %01000100
  Data.b %01000100
  Data.b %00000000
  ;o
    Char_79:
  Data.b %00000000
  Data.b %00000000
  Data.b %00111000 
  Data.b %01000100
  Data.b %01000100
  Data.b %01000100
  Data.b %00111000
  Data.b %00000000
  ;p
    Char_80:
  Data.b %00000000
  Data.b %00000000
  Data.b %01111000 
  Data.b %01000100
  Data.b %01111000
  Data.b %01000000
  Data.b %01000000
  Data.b %00000000  
  ;q
    Char_81:
  Data.b %00000000
  Data.b %00000000
  Data.b %00111100 
  Data.b %01000100
  Data.b %00111100
  Data.b %00000100
  Data.b %00000100
  Data.b %00000000 
  ;r
   Char_82:
  Data.b %00000000
  Data.b %00000000
  Data.b %01011000 
  Data.b %01100100
  Data.b %01000000
  Data.b %01000000
  Data.b %01000000
  Data.b %00000000
  ;s
    Char_83:
  Data.b %00000000
  Data.b %00000000
  Data.b %00111000 
  Data.b %01000000
  Data.b %00111000
  Data.b %00000100
  Data.b %01111000
  Data.b %00000000
  ;t
    Char_84:
  Data.b %00100000
  Data.b %00100000
  Data.b %01110000 
  Data.b %00100000
  Data.b %00100000
  Data.b %00100100
  Data.b %00011000
  Data.b %00000000
  ;u
    Char_85:
  Data.b %00000000
  Data.b %00000000
  Data.b %01000100 
  Data.b %01000100
  Data.b %01000100
  Data.b %01001100
  Data.b %00110100
  Data.b %00000000
  ;v
   Char_86:
  Data.b %00000000
  Data.b %00000000
  Data.b %01000100 
  Data.b %01000100
  Data.b %01000100
  Data.b %00101000
  Data.b %00010000
  Data.b %00000000
  ;w
    Char_87:
  Data.b %00000000
  Data.b %00000000
  Data.b %01000100 
  Data.b %01000100
  Data.b %01000100
  Data.b %01010100
  Data.b %00101000
  Data.b %00000000
  ;x
   Char_88:
  Data.b %00000000
  Data.b %00000000
  Data.b %01000100 
  Data.b %00101000
  Data.b %00010000
  Data.b %00101000
  Data.b %01000100
  Data.b %00000000
  ;y
    Char_89:
  Data.b %00000000
  Data.b %00000000
  Data.b %01000100 
  Data.b %01000100
  Data.b %00111100
  Data.b %00000100
  Data.b %00111000
  Data.b %00000000
  ;z
   Char_90:
  Data.b %00000000
  Data.b %00000000
  Data.b %01111100 
  Data.b %00001000
  Data.b %00010000
  Data.b %00100000
  Data.b %01111100
  Data.b %00000000
  ;{
    Char_91:
  Data.b %00001100
  Data.b %00010000
  Data.b %00100000 
  Data.b %01100000
  Data.b %00100000
  Data.b %00010000
  Data.b %00001100
  Data.b %00000000
  ;|
   Char_92:
  Data.b %00010000
  Data.b %00010000
  Data.b %00010000 
  Data.b %00010000
  Data.b %00010000
  Data.b %00010000
  Data.b %00010000
  Data.b %00000000
  ;}
    Char_93:
  Data.b %01100000
  Data.b %00010000
  Data.b %00001000 
  Data.b %00001100
  Data.b %00001000
  Data.b %00010000
  Data.b %01100000
  Data.b %00000000
  ;~
   Char_94:
  Data.b %00100100
  Data.b %01011000
  Data.b %00000000 
  Data.b %00000000
  Data.b %00000000
  Data.b %00000000
  Data.b %00000000
  Data.b %00000000
  ;А
    Char_95:
  Data.b %00111110
  Data.b %01000110
  Data.b %11000110 
  Data.b %11000110
  Data.b %11111110
  Data.b %11000110
  Data.b %11000110
  Data.b %00000000
  ;Б
    Char_96:
  Data.b %11111110
  Data.b %11000110
  Data.b %11000000 
  Data.b %11111100
  Data.b %11000110
  Data.b %11000110
  Data.b %11111100
  Data.b %00000000
  ;В
    Char_97:
  Data.b %11111100
  Data.b %11000110
  Data.b %11000110 
  Data.b %11111100
  Data.b %11000110
  Data.b %11000110
  Data.b %11111100
  Data.b %00000000
  ;Г
    Char_98:
  Data.b %11111110
  Data.b %11000110
  Data.b %11000000 
  Data.b %11000000
  Data.b %11000000
  Data.b %11000000
  Data.b %11000000
  Data.b %00000000
  ;Д
    Char_99:
  Data.b %00001110
  Data.b %00010110
  Data.b %00100110 
  Data.b %01100110
  Data.b %01100110
  Data.b %11111111
  Data.b %11000011
  Data.b %00000000
  ;Е
    Char_100:
  Data.b %11111110
  Data.b %11000110
  Data.b %11000000 
  Data.b %11111000
  Data.b %11000000
  Data.b %11000110
  Data.b %11111110
  Data.b %00000000
  ;Ж
    Char_102:
  Data.b %11010110
  Data.b %11010110
  Data.b %01111100 
  Data.b %00111000
  Data.b %01111100
  Data.b %11010110
  Data.b %11010110
  Data.b %00000000
  ;З
    Char_103:
  Data.b %01111100
  Data.b %11000110
  Data.b %00000110 
  Data.b %00011100
  Data.b %00000110
  Data.b %11000110
  Data.b %01111100
  Data.b %00000000
  ;И
    Char_104:
  Data.b %11000110
  Data.b %11000110
  Data.b %11001110 
  Data.b %11011110
  Data.b %11110110
  Data.b %11100110
  Data.b %11000110
  Data.b %00000000
  ;Й
    Char_105:
  Data.b %11010110
  Data.b %11000110
  Data.b %11001110 
  Data.b %11011110
  Data.b %11110110
  Data.b %11100110
  Data.b %11000110
  Data.b %00000000
  ;К
    Char_106:
  Data.b %11000110
  Data.b %11000110
  Data.b %11001100 
  Data.b %11111000
  Data.b %11001100
  Data.b %11000110
  Data.b %11000110
  Data.b %00000000
  ;Л
    Char_107:
  Data.b %00111110
  Data.b %01100110
  Data.b %01100110 
  Data.b %01100110
  Data.b %01100110
  Data.b %01100110
  Data.b %11000110
  Data.b %00000000
  ;М
    Char_108:
  Data.b %11000110
  Data.b %11000110
  Data.b %11101110 
  Data.b %11010110
  Data.b %11000110
  Data.b %11000110
  Data.b %11000110
  Data.b %00000000
  ;Н
    Char_109:
  Data.b %11000110
  Data.b %11000110
  Data.b %11000110 
  Data.b %11111110
  Data.b %11000110
  Data.b %11000110
  Data.b %11000110
  Data.b %00000000
  ;О
    Char_110:
  Data.b %01111100
  Data.b %11000110
  Data.b %11000110 
  Data.b %11000110
  Data.b %11000110
  Data.b %11000110
  Data.b %01111100
  Data.b %00000000
  ;П
    Char_111:
  Data.b %11111110
  Data.b %11000110
  Data.b %11000110 
  Data.b %11000110
  Data.b %11000110
  Data.b %11000110
  Data.b %11000110
  Data.b %00000000
  ;Р
    Char_112:
  Data.b %11111100
  Data.b %11000110
  Data.b %11000110 
  Data.b %11000110
  Data.b %11111100
  Data.b %11000000
  Data.b %11000000
  Data.b %00000000
  ;С
    Char_113:
  Data.b %01111100
  Data.b %11000110
  Data.b %11000000 
  Data.b %11000000
  Data.b %11000000
  Data.b %11000110
  Data.b %01111100
  Data.b %00000000
  ;Т
    Char_114:
  Data.b %11111110
  Data.b %11010110
  Data.b %00010000 
  Data.b %00010000
  Data.b %00010000
  Data.b %00010000
  Data.b %00010000
  Data.b %00000000
  ;У
    Char_115:
  Data.b %11000110
  Data.b %11000110
  Data.b %11000110 
  Data.b %01111110
  Data.b %00000110
  Data.b %11000110
  Data.b %01111100
  Data.b %00000000
  ;Ф
    Char_116:
  Data.b %01111100
  Data.b %11010110
  Data.b %11010110 
  Data.b %11010110
  Data.b %11010110
  Data.b %01111100
  Data.b %00010000
  Data.b %00000000
  ;Х
    Char_117:
  Data.b %11000110
  Data.b %11000110
  Data.b %01101100 
  Data.b %00010000
  Data.b %01101100
  Data.b %11000110
  Data.b %11000110
  Data.b %00000000
  ;Ц
    Char_118:
  Data.b %11000110
  Data.b %11000110
  Data.b %11000110 
  Data.b %11000110
  Data.b %11000110
  Data.b %11000110
  Data.b %11111110
  Data.b %00000011
  ;Ч
    Char_119:
  Data.b %11000110
  Data.b %11000110
  Data.b %11000110 
  Data.b %11000110
  Data.b %01111110
  Data.b %00000110
  Data.b %00000110
  Data.b %00000000
  ;Ш
    Char_120:
  Data.b %11010110
  Data.b %11010110
  Data.b %11010110 
  Data.b %11010110
  Data.b %11010110
  Data.b %11010110
  Data.b %11111110
  Data.b %00000000
  ;Щ
    Char_121:
  Data.b %11010110
  Data.b %11010110
  Data.b %11010110 
  Data.b %11010110
  Data.b %11010110
  Data.b %11010110
  Data.b %11111111
  Data.b %00000011
  ;Ъ
    Char_122:
  Data.b %11100000
  Data.b %01100000
  Data.b %01100000 
  Data.b %01111100
  Data.b %01100110
  Data.b %01100110
  Data.b %01111100
  Data.b %00000000
  ;Ы
    Char_123:
  Data.b %11000110
  Data.b %11000110
  Data.b %11000110 
  Data.b %11100110
  Data.b %11010110
  Data.b %11010110
  Data.b %11100110
  Data.b %00000000
  ;Ь
    Char_124:
  Data.b %01100000
  Data.b %01100000
  Data.b %01100000 
  Data.b %01111100
  Data.b %01100110
  Data.b %01100110
  Data.b %01111100
  Data.b %00000000
  ;Э
    Char_125:
  Data.b %01111100
  Data.b %11000110
  Data.b %00000110 
  Data.b %00111110
  Data.b %00000110
  Data.b %11000110
  Data.b %01111100
  Data.b %00000000
  ;Ю
    Char_126:
  Data.b %11001100
  Data.b %11010110
  Data.b %11010110 
  Data.b %11110110
  Data.b %11010110
  Data.b %11010110
  Data.b %11001100
  Data.b %00000000
  ;Я
    Char_127:
  Data.b %01111110
  Data.b %11000110
  Data.b %11000110 
  Data.b %11000110
  Data.b %01111110
  Data.b %00110110
  Data.b %11100110
  Data.b %00000000
  ;а
    Char_128:
  Data.b %00000000
  Data.b %00000000
  Data.b %00111000 
  Data.b %01000100
  Data.b %01000100
  Data.b %01000100
  Data.b %00111010
  Data.b %00000000
  ;б
    Char_129:
  Data.b %01111100
  Data.b %00100000
  Data.b %00010000 
  Data.b %00111000
  Data.b %01000100
  Data.b %01000100
  Data.b %00111000
  Data.b %00000000
  ;в
    Char_130:
  Data.b %00110000
  Data.b %01001000
  Data.b %01001000 
  Data.b %01111000
  Data.b %01000100
  Data.b %01000100
  Data.b %00111000
  Data.b %00000000
  ;г
    Char_131:
  Data.b %00000000
  Data.b %00000000
  Data.b %00111000 
  Data.b %00000100
  Data.b %00111000
  Data.b %01000000
  Data.b %00111100
  Data.b %00000000
  ;д
    Char_132:
  Data.b %00000000
  Data.b %00000000
  Data.b %00011100 
  Data.b %00100100
  Data.b %00100100
  Data.b %01111110
  Data.b %01000010
  Data.b %00000000
  ;е
    Char_133:
  Data.b %00000000
  Data.b %00000000
  Data.b %00111000 
  Data.b %01000100
  Data.b %01111000
  Data.b %01000000
  Data.b %00111000
  Data.b %00000000

  ;ж
    Char_135:
  Data.b %00000000
  Data.b %00000000
  Data.b %01010100 
  Data.b %01010100
  Data.b %00111000
  Data.b %01010100
  Data.b %01010100
  Data.b %00000000
  ;з
    Char_136:
  Data.b %00000000
  Data.b %00000000
  Data.b %00111000 
  Data.b %01000100
  Data.b %00001000
  Data.b %01000100
  Data.b %00111000
  Data.b %00000000
  ;и
    Char_137:
  Data.b %00000000
  Data.b %00000000
  Data.b %01001000 
  Data.b %01001000
  Data.b %01001000
  Data.b %01001000
  Data.b %00110100
  Data.b %00000000
  ;й
    Char_138:
  Data.b %00000000
  Data.b %00010000
  Data.b %01001000 
  Data.b %01001000
  Data.b %01001000
  Data.b %01001000
  Data.b %00110100
  Data.b %00000000
  ;к
    Char_139:
  Data.b %00000000
  Data.b %00000000
  Data.b %01000100 
  Data.b %01001000
  Data.b %01110000
  Data.b %01001000
  Data.b %01000100
  Data.b %00000000 
  ;л
    Char_140:
  Data.b %00000000
  Data.b %00000000
  Data.b %00011100 
  Data.b %00100100
  Data.b %00100100
  Data.b %00100100
  Data.b %01000100
  Data.b %00000000  
  ;м
    Char_141:
  Data.b %00000000
  Data.b %00000000
  Data.b %01000100 
  Data.b %01101100
  Data.b %01010100
  Data.b %01000100
  Data.b %01000100
  Data.b %00000000 
  ;н
    Char_142:
  Data.b %00000000
  Data.b %00000000
  Data.b %01000100 
  Data.b %01000100
  Data.b %01111100
  Data.b %01000100
  Data.b %01000100
  Data.b %00000000
  ;о
    Char_143:
  Data.b %00000000
  Data.b %00000000
  Data.b %00111000 
  Data.b %01000100
  Data.b %01000100
  Data.b %01000100
  Data.b %00111000
  Data.b %00000000
  ;п
    Char_144:
  Data.b %00000000
  Data.b %00000000
  Data.b %00111000 
  Data.b %01000100
  Data.b %01000100
  Data.b %01000100
  Data.b %01000100
  Data.b %00000000
  ;р
    Char_145:
  Data.b %00000000
  Data.b %00000000
  Data.b %01111000 
  Data.b %01000100
  Data.b %01000100
  Data.b %01111000
  Data.b %01000000
  Data.b %00000000
  ;с
    Char_146:
  Data.b %00000000
  Data.b %00000000
  Data.b %00111000 
  Data.b %01000100
  Data.b %01000000
  Data.b %01000100
  Data.b %00111000
  Data.b %00000000
  ;т
    Char_147:
  Data.b %00000000
  Data.b %00000000
  Data.b %00101000 
  Data.b %01010100
  Data.b %01010100
  Data.b %01010100
  Data.b %01010010
  Data.b %00000000
  ;у
    Char_148:
  Data.b %00000000
  Data.b %00000000
  Data.b %01000100 
  Data.b %01000100
  Data.b %00111100
  Data.b %00000100
  Data.b %00111000
  Data.b %00000000
  ;ф
    Char_149:
  Data.b %00000000
  Data.b %00010000
  Data.b %00111000 
  Data.b %01010100
  Data.b %01010100
  Data.b %00111000
  Data.b %00010000
  Data.b %00000000
  ;х
    Char_150:
  Data.b %00000000
  Data.b %00000000
  Data.b %01000100 
  Data.b %00101000
  Data.b %00010000
  Data.b %00101000
  Data.b %01000100
  Data.b %00000000
  ;ц
    Char_151:
  Data.b %00000000
  Data.b %00000000
  Data.b %01001000 
  Data.b %01001000
  Data.b %01001000
  Data.b %01001000
  Data.b %00111100
  Data.b %00000100
  ;ч
    Char_152:
  Data.b %00000000
  Data.b %00000000
  Data.b %01000100 
  Data.b %01000100
  Data.b %01000100
  Data.b %00111100
  Data.b %00000100
  Data.b %00000000
  ;ш
    Char_153:
  Data.b %00000000
  Data.b %00000000
  Data.b %01010100 
  Data.b %01010100
  Data.b %01010100
  Data.b %01010100
  Data.b %00111100
  Data.b %00000000
  ;щ
    Char_154:
  Data.b %00000000
  Data.b %00000000
  Data.b %01010100 
  Data.b %01010100
  Data.b %01010100
  Data.b %01010100
  Data.b %00111110
  Data.b %00000010
  ;ъ
    Char_155:
  Data.b %00000000
  Data.b %00000000
  Data.b %11000000 
  Data.b %01000000
  Data.b %01110000
  Data.b %01001000
  Data.b %01110000
  Data.b %00000000
  ;ы
    Char_156:
  Data.b %00000000
  Data.b %00000000
  Data.b %01000100 
  Data.b %01000100
  Data.b %01100100
  Data.b %01010100
  Data.b %01100100
  Data.b %00000000
  ;ь
    Char_157:
  Data.b %00000000
  Data.b %00000000
  Data.b %01000000 
  Data.b %01000000
  Data.b %01110000
  Data.b %01001000
  Data.b %01110000
  Data.b %00000000
  ;э
    Char_158:
  Data.b %00000000
  Data.b %00111000
  Data.b %01000100 
  Data.b %00000100
  Data.b %00011100
  Data.b %01000100
  Data.b %00111000
  Data.b %00000000
  ;ю
    Char_159:
  Data.b %00000000
  Data.b %00000000
  Data.b %01001000 
  Data.b %01010100
  Data.b %01100100
  Data.b %01010100
  Data.b %01001000
  Data.b %00000000
  ;я
    Char_160:
  Data.b %00000000
  Data.b %00000000
  Data.b %00111100 
  Data.b %01000100
  Data.b %00111100
  Data.b %00010100
  Data.b %01100100
  Data.b %00000000
  
    ;Ё
    Char_101:
  Data.b %00101000
  Data.b %00000000
  Data.b %11111110 
  Data.b %11000010
  Data.b %11111000
  Data.b %11000010
  Data.b %11111110
  Data.b %00000000
  
    ;ё
    Char_134:
  Data.b %00101000
  Data.b %00000000
  Data.b %00111000 
  Data.b %01000100
  Data.b %01111000
  Data.b %01000000
  Data.b %00111000
  Data.b %00000000
  
  ;№
    Char_161:
  Data.b %00000000
  Data.b %00000000
  Data.b %00000000 
  Data.b %10010110
  Data.b %11010110
  Data.b %10110000
  Data.b %10010110
  Data.b %00000000  
EndDataSection

0

267

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

Данные симоволов надо было располагать

Сначала сделал, а потом увидел как надо было.

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

Переделал.

Спасибо.

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

Получился от такой

За это отдельное спасибо. :cool:

0

268

Вот код матрици на VB:

Код:
'MATRIX
        If RadioButton2.Checked = True Then
            Timer1.Interval = TrackBar2.Value * 10
            Dim col, row
            For col = 7 To 1 Step -1
                For row = 0 To 7
                    st_led = (8 * col + row)
                    ellipseRect = New Rectangle(x(st_led), y(st_led), 13, 13)

                    If buf_USB(st_led - 8) = 1 Then
                        myPath.AddEllipse(ellipseRect)
                        buf_USB(st_led) = 1
                    Else
                        myPath1.AddEllipse(ellipseRect)
                        buf_USB(st_led) = 0
                    End If
                Next
            Next
            For row = 0 To 7
                st_led = row
                ellipseRect = New Rectangle(x(st_led), y(st_led), 13, 13)
                random = Int(Rnd() * (20 - TrackBar1.Value))
                If random = 1 Then
                    If CheckBox2.Checked = False Then
                        myPath1.AddEllipse(ellipseRect)
                        buf_USB(st_led) = 0
                    Else
                        myPath.AddEllipse(ellipseRect)
                        buf_USB(st_led) = 1
                    End If
                Else
                    If CheckBox2.Checked = False Then
                        myPath.AddEllipse(ellipseRect)
                        buf_USB(st_led) = 1
                    Else
                        myPath1.AddEllipse(ellipseRect)
                        buf_USB(st_led) = 0
                    End If
                End If
            Next

        End If

Пытаюсь перевести на пурик:

Код:
For d = 7 To 1 Step -1
                For e = 0 To 7
                    st_led = (8 * e + d)
                  ;  ellipseRect = New Rectangle(x(st_led), y(st_led), 13, 13)

                Next e
            Next d
            For d = 0 To 7
                st_led = d
               ; ellipseRect = New Rectangle(x(st_led), y(st_led), 13, 13)


            Next

Вместо

Код:
ellipseRect = New Rectangle(x(st_led), y(st_led), 13, 13)

Думаю надо применить ImageDraw. А как это сделать?

0

269

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

Пытаюсь перевести на пурик:

Чем не подошла процедура Draw_Image?

0

270

Должно быть так?

Код:
  Procedure Draw_Image(*Infa.DrawInfo)
  
  If StartDrawing(ImageOutput(0))
    Box(83,0,148,148,0) ; Очистка рисунка
For col = 7 To 1 Step -1
  For row = 0 To 7
    x = 8 * row + col
    y = 8 * row + col
                Next row
            Next col
            For row = 0 To 7
    x = row
    y = row   

  Next row
        If *Infa\row[row] << col & %10000000
          Color = RGB(255, 102, 00)
        Else
          Color = RGB(102, 102, 102)
        EndIf
        Circle(x, y, 5, Color)
      Next
    Next
    StopDrawing()
  EndIf
  SetGadgetState(0, ImageID(0))
EndProcedure

0


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