PureBasic - форум

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

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


Вы здесь » PureBasic - форум » Вопросы по PureBasic » Вопросы новичка (продолжение…)


Вопросы новичка (продолжение…)

Сообщений 661 страница 690 из 990

661

Разобрался в чем дело было: нужно было создать иконку. Теперь другая проблема: иконка не меняется на другую, а меняются местами. Что не так делаю?

Код:
;-----------------------USB-переключатель-------------------------

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

;{----------------------Глобальные переменные------------------
#USB_PID=$EF22                                            ;идентификатор PID
#USB_VID=$AAAA                                            ;идентификатор VID
#Name="USB-переключатель"                                 ;сообщения программы
#NO_Device="Нет связи с USB-переключателем"               ;сообщения программы
Global IN_TV.s="телевизор"                               ;сообщения программы
Global IN_Speakers.s="колонки"                           ;сообщения программы
Global R_DeviceHandle, W_DeviceHandle
;}---------------------------------------------------------------

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(0,"USB-переключатель подключён")
    Else
      HID_Lib_CloseDevice(R_DeviceHandle) : HID_Lib_CloseDevice(W_DeviceHandle)
      R_DeviceHandle=0 : W_DeviceHandle=0
      SetGadgetText(0,#NO_Device)
    EndIf
  EndIf
EndProcedure

Procedure SendDevice()
      IconName$ = "F:\USB-переключатель\Колонки.ico"
    IconName1$ = "F:\USB-переключатель\Телек.ico"
  Command.a=0
  Dim OutBytes.a(2)  
  If GetGadgetState(5)=1
    Command | 1
    TextGadget(54, 83, 17, 80 ,15, IN_TV)
    SetMenuItemState(68,4,1)
    SetMenuItemState(68,3,0)
    AddSysTrayIcon(1, WindowID(0), LoadImage(0, IconName$))
    ChangeSysTrayIcon (1, LoadImage(30, IconName1$))
  Else
    Command & %11111110
    TextGadget(54, 83, 17, 80 ,15, IN_Speakers)
    SetMenuItemState(68,3,1)
    SetMenuItemState(68,4,0)
    AddSysTrayIcon(2, WindowID(0), LoadImage(1, IconName1$))
    ChangeSysTrayIcon (2, LoadImage(31, IconName$))
  EndIf
  Command << 1
  If W_DeviceHandle
    OutBytes(0) = 0
    OutBytes(1) = Command
    HID_Lib_WriteDevice(W_DeviceHandle, @OutBytes(), 2)
  Else
    MessageRequester(#Name, #NO_Device, 16)
  EndIf
EndProcedure

Procedure DateStatusBar(); Эта процедура вызывается по таймеру два раза в секунду.  
  Time.s = FormatDate("%hh:%ii:%ss", Date() ) ; Узнаём текущее время
  Date.s = FormatDate("%dd.%mm.%yyyy", Date() ) ; узнаем дату
  StatusBarText(0, 0,Date, #PB_StatusBar_Center) ; Выводим строку в область с идентификатором 0.
  StatusBarText(0, 2,Time, #PB_StatusBar_Center) ; Выводим строку в область с идентификатором 2.
  
EndProcedure

    IconName$ = "F:\USB-переключатель\Колонки.ico"
    IconName1$ = "F:\USB-переключатель\Телек.ico"

OpenWindow(0, 0, 0, 230, 83, "USB-переключатель", #PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)
    
CompilerIf #PB_Editor_CreateExecutable
  ProgramAtStartup(1, "USB-переключатель");"Добавить в автозагрузку"
CompilerEndIf
StickyWindow(0,1);поверх всех открытых окон 
TextGadget(0,0,0,230,15,#NO_Device, #PB_Text_Center)
ButtonGadget(5,65,33,100,23,"Переключить",#PB_Button_Toggle)
TextGadget(2, 33, 17, 50 ,15,"Выход на ")
TextGadget(54, 83, 17, 80 ,15, IN_Speakers)

;-----------Создаём строку состояния-----------
CreateStatusBar(0, WindowID(0))
; Делим её на области
AddStatusBarField(70)
AddStatusBarField(90)
AddStatusBarField(70)
StatusBarText(0, 1,"Дата и время", #PB_StatusBar_Center) ; Выводим строку в область с идентификатором 1.
OpenLibrary(0,"user32.dll") ; Открываем файл "user32.dll"
CallFunction(0,"SetTimer",WindowID(0), 1, 500, @DateStatusBar() ) ; Вызываем функцию "SetTimer"

;-----------Системный трей----------- 
AddSysTrayIcon(67, WindowID(0), ExtractIcon_(0,ProgramFilename(),0))
SysTrayIconToolTip(67, "USB-переключатель") 
;Добавим к иконке меню
CreatePopupMenu(68) 
;MenuItem(1, "Развернуть") 
;MenuItem(2, "Свернуть") 
MenuItem(3, "Колонки") 
SetMenuItemState(68,3,1)
MenuItem(4, "Телевизор")
MenuBar() 
MenuItem(10, "Выход")   

HideWindow(0,0)

FindDevice_Timer()
AddWindowTimer(0, 2, 400)

Repeat
  Event=WaitWindowEvent()
  If Event=#PB_Event_Timer
    If EventTimer()=2
      FindDevice_Timer()
    EndIf
    
  ElseIf Event=#PB_Event_Gadget
    Select EventGadget()
      Case 5
        SendDevice()
    EndSelect
  EndIf
  
    If Event = #PB_Event_SysTray 
    
    If EventType() = #PB_EventType_RightClick ; Обработка правой кнопки мышки 
      DisplayPopupMenu(68, WindowID(0)) ; показ вспывающего меню 
        ; Break
    EndIf 
    
    If EventType() = #PB_EventType_LeftClick ; Обработка левой кнопки мышки     
      HideWindow(0, 1)
    EndIf
    
       If EventType() = #PB_EventType_LeftDoubleClick  ; Обработка двойного нажатия левой кнопки мышки    
       HideWindow(0, 0)
      SetWindowState(0, #PB_Window_Normal) 
    EndIf
    
  EndIf
  
  If Event = #PB_Event_Menu 
    Select EventMenu() 
     ; Case 1 ;"Развернуть"  
      ;  HideWindow(0, 0)
       ; SetWindowState(0, #PB_Window_Normal)     
      ;Case 2 ;"Свернуть" 
       ; HideWindow(0, 1)
      Case 3 ;"Колонки" 
        SetGadgetState(5, 0)
        SendDevice()
        TextGadget(54, 83, 17, 80 ,15, IN_Speakers)   
        SetMenuItemState(68,3,1)
        SetMenuItemState(68,4,0)
        AddSysTrayIcon(1, WindowID(0), LoadImage(0, IconName$))
        ChangeSysTrayIcon (1, LoadImage(30, IconName1$))
      Case 4 ;"Телевизор" 
        SetGadgetState(5, 1)
        SendDevice()
        TextGadget(54, 83, 17, 80 ,15, IN_TV)
        SetMenuItemState(68,4,1)
        SetMenuItemState(68,3,0)
        AddSysTrayIcon(2, WindowID(0), LoadImage(1, IconName1$))
        ChangeSysTrayIcon (2, LoadImage(31, IconName$))
      Case 10 ;"Выход"
        Break
    EndSelect 
  EndIf   
  
  If Event=#PB_Event_MinimizeWindow ;Событие при сворачивании окна
    HideWindow(0,1) ;свернуть окно
  EndIf
  
Until Event=#PB_Event_CloseWindow
; Вызываем функцию "KillTimer"
CallFunction(0,"KillTimer",WindowID(0),1)
; Закрываем файл "user32.dll".
CloseLibrary(0)

0

662

В программе изначально создается значок в трее и ему присваивается идентификатор 67.
Когда изменяем иконку, нужно указать этот же идентификатор.

Код:
;-----------------------USB-переключатель-------------------------

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

;{----------------------Глобальные переменные------------------
#USB_PID=$EF22                                            ;идентификатор PID
#USB_VID=$AAAA                                            ;идентификатор VID
#Name="USB-переключатель"                                 ;сообщения программы
#NO_Device="Нет связи с USB-переключателем"               ;сообщения программы
Global IN_TV.s="телевизор"                               ;сообщения программы
Global IN_Speakers.s="колонки"                           ;сообщения программы
Global R_DeviceHandle, W_DeviceHandle
;}---------------------------------------------------------------

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(0,"USB-переключатель подключён")
    Else
      HID_Lib_CloseDevice(R_DeviceHandle) : HID_Lib_CloseDevice(W_DeviceHandle)
      R_DeviceHandle=0 : W_DeviceHandle=0
      SetGadgetText(0,#NO_Device)
    EndIf
  EndIf
EndProcedure

Procedure SendDevice()
      IconName$ = "F:\USB-переключатель\Колонки.ico"
    IconName1$ = "F:\USB-переключатель\Телек.ico"
  Command.a=0
  Dim OutBytes.a(2)  
  If GetGadgetState(5)=1
    Command | 1
    TextGadget(54, 83, 17, 80 ,15, IN_TV)
    SetMenuItemState(68,4,1)
    SetMenuItemState(68,3,0)
    ChangeSysTrayIcon (67, LoadImage(30, IconName1$))
  Else
    Command & %11111110
    TextGadget(54, 83, 17, 80 ,15, IN_Speakers)
    SetMenuItemState(68,3,1)
    SetMenuItemState(68,4,0)
    ChangeSysTrayIcon (67, LoadImage(30, IconName$))
  EndIf
  Command << 1
  If W_DeviceHandle
    OutBytes(0) = 0
    OutBytes(1) = Command
    HID_Lib_WriteDevice(W_DeviceHandle, @OutBytes(), 2)
  Else
    MessageRequester(#Name, #NO_Device, 16)
  EndIf
EndProcedure

Procedure DateStatusBar(); Эта процедура вызывается по таймеру два раза в секунду.  
  Time.s = FormatDate("%hh:%ii:%ss", Date() ) ; Узнаём текущее время
  Date.s = FormatDate("%dd.%mm.%yyyy", Date() ) ; узнаем дату
  StatusBarText(0, 0,Date, #PB_StatusBar_Center) ; Выводим строку в область с идентификатором 0.
  StatusBarText(0, 2,Time, #PB_StatusBar_Center) ; Выводим строку в область с идентификатором 2.
  
EndProcedure

    IconName$ = "F:\USB-переключатель\Колонки.ico"
    IconName1$ = "F:\USB-переключатель\Телек.ico"

OpenWindow(0, 0, 0, 230, 83, "USB-переключатель", #PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)
    
CompilerIf #PB_Editor_CreateExecutable
  ProgramAtStartup(1, "USB-переключатель");"Добавить в автозагрузку"
CompilerEndIf
StickyWindow(0,1);поверх всех открытых окон 
TextGadget(0,0,0,230,15,#NO_Device, #PB_Text_Center)
ButtonGadget(5,65,33,100,23,"Переключить",#PB_Button_Toggle)
TextGadget(2, 33, 17, 50 ,15,"Выход на ")
TextGadget(54, 83, 17, 80 ,15, IN_Speakers)

;-----------Создаём строку состояния-----------
CreateStatusBar(0, WindowID(0))
; Делим её на области
AddStatusBarField(70)
AddStatusBarField(90)
AddStatusBarField(70)
StatusBarText(0, 1,"Дата и время", #PB_StatusBar_Center) ; Выводим строку в область с идентификатором 1.
OpenLibrary(0,"user32.dll") ; Открываем файл "user32.dll"
CallFunction(0,"SetTimer",WindowID(0), 1, 500, @DateStatusBar() ) ; Вызываем функцию "SetTimer"

;-----------Системный трей----------- 
AddSysTrayIcon(67, WindowID(0), ExtractIcon_(0,ProgramFilename(),0))
SysTrayIconToolTip(67, "USB-переключатель") 
;Добавим к иконке меню
CreatePopupMenu(68) 
;MenuItem(1, "Развернуть") 
;MenuItem(2, "Свернуть") 
MenuItem(3, "Колонки") 
SetMenuItemState(68,3,1)
MenuItem(4, "Телевизор")
MenuBar() 
MenuItem(10, "Выход")   

HideWindow(0,0)

FindDevice_Timer()
AddWindowTimer(0, 2, 400)

Repeat
  Event=WaitWindowEvent()
  If Event=#PB_Event_Timer
    If EventTimer()=2
      FindDevice_Timer()
    EndIf
    
  ElseIf Event=#PB_Event_Gadget
    Select EventGadget()
      Case 5
        SendDevice()
    EndSelect
  EndIf
  
    If Event = #PB_Event_SysTray 
    
    If EventType() = #PB_EventType_RightClick ; Обработка правой кнопки мышки 
      DisplayPopupMenu(68, WindowID(0)) ; показ вспывающего меню 
        ; Break
    EndIf 
    
    If EventType() = #PB_EventType_LeftClick ; Обработка левой кнопки мышки     
      HideWindow(0, 1)
    EndIf
    
       If EventType() = #PB_EventType_LeftDoubleClick  ; Обработка двойного нажатия левой кнопки мышки    
       HideWindow(0, 0)
      SetWindowState(0, #PB_Window_Normal) 
    EndIf
    
  EndIf
  
  If Event = #PB_Event_Menu 
    Select EventMenu() 
     ; Case 1 ;"Развернуть"  
      ;  HideWindow(0, 0)
       ; SetWindowState(0, #PB_Window_Normal)     
      ;Case 2 ;"Свернуть" 
       ; HideWindow(0, 1)
      Case 3 ;"Колонки" 
        SetGadgetState(5, 0)
        SendDevice()
        TextGadget(54, 83, 17, 80 ,15, IN_Speakers)   
        SetMenuItemState(68,3,1)
        SetMenuItemState(68,4,0)
        ChangeSysTrayIcon (67, LoadImage(30, IconName1$))
      Case 4 ;"Телевизор" 
        SetGadgetState(5, 1)
        SendDevice()
        TextGadget(54, 83, 17, 80 ,15, IN_TV)
        SetMenuItemState(68,4,1)
        SetMenuItemState(68,3,0)
        ChangeSysTrayIcon (67, LoadImage(30, IconName$))
      Case 10 ;"Выход"
        Break
    EndSelect 
  EndIf   
  
  If Event=#PB_Event_MinimizeWindow ;Событие при сворачивании окна
    HideWindow(0,1) ;свернуть окно
  EndIf
  
Until Event=#PB_Event_CloseWindow
; Вызываем функцию "KillTimer"
CallFunction(0,"KillTimer",WindowID(0),1)
; Закрываем файл "user32.dll".
CloseLibrary(0)
End

И лучше иконки поместить в исполняемый файл чтобы их не пришлось тащить за программой, тем более что сейчас указан абсолютный путь к файлам.

И непонятно зачем дублировать смену иконки в обработчике событий меню и в процедуре передачи, ведь она вызывается при событии в меню.

0

663

Спасибо.

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

И лучше иконки поместить в исполняемый файл

Так и сделаю.

0

664

Вот доделанная программа. Решил сделать кнопки добавления и удаления из автозагрузки.

Отредактировано max (06.11.2011 22:46:36)

0

665

Подскажите как определить папки общего доступа на компьютере в локальной сети?  :flag:

0

666

Виталий
Я же привёл рабочий код, у тебя дебагер то вообще включен? Что нибудь типа

Код:
Debug "123"

показывает, если нет включи дебагер ТАК
Сегодня специально на работе проверил вот для линя и вот для винды, всё работает!

0

667

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

Код:Debug "123"

Debug включён.

И мне надо, что бы показывало "шары" с компьютеров типа - "\\192.168.8.217", а не через "Обзор папок"
Тоесть должно получиться примерно так:

Directory$ = "\\192.168.8.217"
Debug Directory$
If ExamineDirectory(0, Directory$, "*.*") 
     While NextDirectoryEntry(0)
          Debug Directory$+DirectoryEntryName(0) +"----------"+Str(GetFileAttributes(Directory$+DirectoryEntryName(0)))
     Wend
     FinishDirectory(0)
EndIf

Отредактировано Виталий (07.11.2011 12:05:29)

0

668

Виталий
Ты ролик смотрел? У тебя через "Обзор папок" дебагер показывает тоже, что и в ролике?

0

669

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

ВиталийТы ролик смотрел? У тебя через "Обзор папок" дебагер показывает тоже, что и в ролике?

Да, всё так же показывает

0

670

Виталий
Ну так за чем дело стало? Вставляй сначала этот код

Код:
Directory$ = PathRequester("Выбери комп на котором находится шара","C:\")
Debug Directory$

выбирай комп, полученный адрес вставляй в переменную Directory$ в этом коде

Directory$ = "Сюда всавь результат из первого кода"
If ExamineDirectory(0, Directory$, "*.*") 
     While NextDirectoryEntry(0)
          Debug Directory$+DirectoryEntryName(0) +"----------"+Str(GetFileAttributes(Directory$+DirectoryEntryName(0)))
     Wend
     FinishDirectory(0)
EndIf

в полученном результате цифры обведённые красным, это и есть права на папки и файлы(можно смотреть или можно только читать или можно толко писать или можно и писать ичитать и смотреть и запускать на исполнение.
http://uploads.ru/t/6/c/u/6cu0O.png
Если и так не доходчиво объяснил, то извини :dontknow:

0

671

Мне надо, что бы компьютер на котором есть Шара, Вписать Например: "\\192.168.8.217", а не выбрать через обзор папок

0

672

Мдя :canthearyou:

0

673

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

Мдя

Я хочу написать сканер. И я же не буду постоянно вызывать "Обзор папок"

0

674

http://uploads.ru/t/S/W/8/SW8Pc.png

0

675

\\192.168.8.217\инет

Оно то показывает, что в этой папке, но мне надо что бы оно порделило что именно папка "инет" имеется

0

676

Покажи, что покажет

Код:
Debug GetFileAttributes("\\192.168.8.217\инет")

0

677

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

Покажи, что покажетКод:Debug GetFileAttributes("\\192.168.8.217\инет"

16 показало
Мне надо код, что бы оно показало какие папки на компьютере разшарены. А не то что в этих папках.
Если я выбираю через Directory$ = PathRequester("Выбери комп на котором находится шара","C:\") какой либо компьютер, то debug возвращает просто - "\", а если выбираю папку в этом компьютере, то всё нормально, всё показывает какие файлы или папки в ней есть. Так мне надо, что бы Debug показывало расшаренные папки на чужом компьютере.

Отредактировано Виталий (09.11.2011 12:26:38)

0

678

Людиии, кто подскажет-то?
Делаю сетевую папку (расшариваю)
Делаю так:
Directory$ = "\\127.0.0.1"
If ExamineDirectory(0, Directory$, "*.*") 
     While NextDirectoryEntry(0)
          Debug Directory$+DirectoryEntryName(0) +"----------"+Str(GetFileAttributes(Directory$+DirectoryEntryName(0)))
     Wend
     FinishDirectory(0)
EndIf

И не чего не выдаётся. Помогите  :question:

Отредактировано Виталий (10.11.2011 20:51:45)

0

679

Виталий написал(а):

Людиии, кто подскажет-то?

Тебе уже подсказали правильно, что же ты не внемлешь?

У тебя абсолютно рабочий код, ну естественно нужно подставить IP компа в сети и его расшареный диск. Диск пишется без точек т.е. \D или там \Е\Папка.
Без диска шару не увидишь!

Directory$ = "\\192.168.1.3\D"

If ExamineDirectory(0, Directory$, "*.*")
     While NextDirectoryEntry(0)
          Debug Directory$+DirectoryEntryName(0) +"----------"+Str(GetFileAttributes(Directory$+DirectoryEntryName(0)))
     Wend
     FinishDirectory(0)
EndIf

Другого тебе всё равно ни кто не скажет, так что прекрати уже тупить и сам экспериментируй.

0

680

Обьясняю вообщем что я хотел. Написал уже сам :)

Код:
Procedure GetConsole(*Point)
  Prog = RunProgram("cmd.exe","","",#PB_Program_Open|#PB_Program_Read|#PB_Program_Write|#PB_Program_Hide)   
  If Prog   
    WriteProgramStringN(Prog, "net view "+PeekS(*Point))
    Delay(1000)   
    While AvailableProgramOutput(Prog)>1
      String.s = ReadProgramString(Prog)      
      If String<>""
        OemToChar_(String, String)
        Position = FindString(String, "  ", 1)
        If Position < 18
          If Left(String,Position)<>""
            AddGadgetItem(0, -1, Left(String,Position))
          EndIf
        EndIf
      EndIf
    Wend
    KillProgram(Prog)
    CloseProgram(Prog)
    
  EndIf
  
EndProcedure

IP$ = "\\192.168.8.217"
If OpenWindow(0, 0, 0, 722, 550, "EditorGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  EditorGadget(0, 8, 8, 706, 533, #PB_Editor_ReadOnly)
  SetGadgetColor(0, #PB_Gadget_FrontColor, $FFFFFF)
  SetGadgetColor(0, #PB_Gadget_BackColor, 0)
  SetGadgetFont(0, LoadFont(0, "Lucida Console", 10))
  CreateThread(@GetConsole(), @IP$)
  Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf

Отредактировано Виталий (11.11.2011 03:03:13)

0

681

Всех С НОВЫМ 2012 ГОДОМ!

0

682

Возможно ли, чтобы процедура возвращала целый массив, а не отдельную переменную?

0

683

Тигрёнок написал(а):

Возможно ли, чтобы процедура возвращала целый массив

Процедуры

0

684

Благодарю, тема как раз по теме)) Я собрался именно ДЛЛ-ку писать.
Я прочитал там про стандартные описпные структуры, можно ли где-нибудть найти полный их перечень?

0

685

Тигрёнок написал(а):

Я прочитал там про стандартные описпные структуры, можно ли где-нибудть найти полный их перечень?

Меню "Инструменты" -> "Просмотр структур".

0

686

Привет.
Есть ли библиотеки для Пурика, что бы сделать нечто подобное?
http://s019.radikal.ru/i616/1204/de/582abf87ba63t.jpg
http://s019.radikal.ru/i644/1204/02/dedb8237a761t.jpg

0

687

Это рисованный интерфейс.
Пара примеров.
Рисованный интерфейс FM
http://purebasic.info/phpBB2/viewtopic.php?t=947

0

688

Спасибо!
Буду разбираться.

0

689

Привет.
Почему то не могу скомпелировать код отсюда. Все сделал как написано. Ругается на L=HIWORD(level).
Что делать не знаю. :dontknow:

0

690

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

Что делать не знаю.

Для компиляции необходим файл: RLibPlus.res (находится в архиве исходника)

Отвечает за функции:

HIWORD() ; выделяет левый канал
LOWORD() ; выделяет правый канал

Поместить RLibPlus.res в папку Residents в PureBasic.

0


Вы здесь » PureBasic - форум » Вопросы по PureBasic » Вопросы новичка (продолжение…)