PureBasic - форум

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

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


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


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

Сообщений 391 страница 420 из 974

391

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

PureCOLOR_SetButtonColor(i, 0, $6E77FA) ; Устанавливаем цвет кнопки

Какого типа переменная должна быть для $6E77FA, если я хочу задать этот параметр в виде переменной ??

0

392

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

Какого типа переменная должна быть для $6E77FA

Та что по умолчанию, т. е. Long или Integer (4 байта).
Пиши так:

Код:
Color=$6E77FA
PureCOLOR_SetButtonColor(i, 0, Color)

0

393

Спасибо, получилось.

Код:
Dim col.l(11) 
col.l(1)=$6E77FA     
col.l(2)=$FF6699
For a=0 To 11 
  If 5+(40*a)<446+80 
   ButtonGadget(a,45+(40*a), 5, 30,30,Str(a)) 
  EndIf
  PureCOLOR_SetButtonColor(a, 0,col.l(a)) ; Устанавливаем цвет кнопки

Осваиваем дальше.

0

394

Тут neo спрашивал про вставки Си, здесь пишут что можно делать UserLibraries из Сишного кода, так как, тоже интересен этот вопрос, может кто объяснить как этим пользоваться?(примеры в папке SDK - не понял)

0

395

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

здесь пишут что можно делать UserLibraries из Сишного кода

Да можно, но по сути это мало чем отличается от создания DLL или LIB файла, в плане, Си кода.
Скажем, часть библиотеки PBOSL написана на Си.
Для этого нужен инструмент LibraryDesigner и компилятор LccWin32.

0

396

Пётр

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

Для этого нужен инструмент LibraryDesigner и компилятор LccWin32

Это в лине работать будет? Если будет объясни как этим пользоваться(В Си дуб-дубом).

0

397

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

Это в лине работать будет?

Как думаешь если компилятор имеет в имени Win32?

0

398

Пётр
Я понимаю что для линя есть свой компилятор Си. Меня интересует теоретическая возможность создания UserLibraries из Си кода, в лине. Как правильно пользоваться? Допустим есть библиотека написанная на Сях, возможно её переделать в UserLibraries пурика? :question:

0

399

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

Меня интересует теоретическая возможность создания UserLibraries из Си кода, в лине. Как правильно пользоваться? Допустим есть библиотека написанная на Сях, возможно её переделать в UserLibraries пурика?

Как это делать в лине - не знаю.
Думаю что проще создать статическую библиотеку (типа LIB в винде) и импортировать функции с помощью оператора Import.

0

400

1.Из учебника:
Процедуры в PureBasic'e - это функции, которые мы сами можем создавать и использовать в последствии.

Вопрос. А может процедура не быть функцией ?
Поясню: у меня процедура - это набор команд, которые отрабатывают в программе несколько раз, но никаких параметров при этом мне передавать не надо. Как описать такую процедуру?

2. Использование Global для массива:
Global Dim massiv(10) или каждую переменную массива описывать как Global ?

0

401

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

Поясню: у меня процедура - это набор команд, которые отрабатывают в программе несколько раз, но никаких параметров при этом мне передавать не надо. Как описать такую процедуру?

Код:
Procedure Test()
  a=10
  b=20
  Debug a+b
EndProcedure

Test() ; Вызов процедуры
a1951 написал(а):

Global Dim massiv(10) или каждую переменную массива описывать как Global ?

Каждую не надо, объявляется массив целиком, а число в скобках это количество переменных массива.

0

402

a1951
Используй:
  Macro <name> [(Parameter [, ...])]
    ...
  EndMacro
Параметры задавать не обязательно, но после имени должны стоять скобки.

0

403

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

Используй:  Macro

Макрос это автоматизированное действие копипаст, что не всегда приемлемо.

0

404

Пётр
Не видя примера сложно понять смысл задумки человека, но

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

А может процедура не быть функцией ?

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

у меня процедура - это набор команд, которые отрабатывают в программе несколько раз, но никаких параметров при этом мне передавать не надо. Как описать такую процедуру?

Если я правильно понимаю человеку как раз подойдёт макрос :confused:

0

405

Как нажать кнопку в программе, а не мышью? Надо, чтобы при нажатии на одну из кнопок оказывалась нажатой еще одна (автоматически).

0

406

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

Надо, чтобы при нажатии на одну из кнопок оказывалась нажатой еще одна (автоматически).

Нужно чтобы кнопка визуально выглядела нажатой (при использовании флага #PB_Button_Toggle) либо же, нужно выполнить часть кода, выполняемого при программном нажатии кнопки?

0

407

А как обновить окно? Например в одной моей программе я сворачиваю окно, потом его разворачиваю и гаджетов открытых до того как я свернул окно нет. Я вожу мышкой по окну и когда я мышкой провожу по месту где должен быть гаджет он повляется. Кстати, на фоне стоит изображение которое после разворота остаётся. Только оно и появляетя. Я не приважу программы, потому-что она содержит много изображений и придётся пересылать целую папку.

0

408

Илья написал(а):

Например в одной моей программе я сворачиваю окно, потом его разворачиваю и гаджетов открытых до того как я свернул окно нет. Я вожу мышкой по окну и когда я мышкой провожу по месту где должен быть гаджет он повляется. Кстати, на фоне стоит изображение которое после разворота остаётся.

Не замечал такого.
Попробовал повторить код по описанию - проблемы нет http://pure-basic.narod.ru/forum/Back_Image.rar

Код:
OpenWindow(0,10,10,635,480,"окно",#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)
UseJPEGImageDecoder()
LoadImage(1, "D:\b.jpg")  
ImageGadget(888,  0, 0, 0, 0, ImageID(1)) : DisableGadget(888,1)
ButtonGadget(2,10,10,100,100,"button1")
ComboBoxGadget(3,20,200,80,22)
For a = 1 To 5
  AddGadgetItem(3, -1,"ComboBox item " + Str(a))
Next

StringGadget(4,540,20,100,20,"")

Repeat
  q=WaitWindowEvent()
  If EventGadget()=2
    Debug "Гаджет был нажат!!!"
  EndIf
Until q=#PB_Event_CloseWindow

0

409

Каким образом создать список как на первом рисунке?
Если использовать ExplorerListGadget, то не красивое дерева папок.
А при ExplorerTreeGadget -отображается дерево всей системы, а надо только определённой директории.

Код:
; Последнее изменение:4 Март, 2011 @ 9:45:57 PM
Enumeration
 #Window_0
 #Explor
EndEnumeration


OpenWindow(#Window_0,0,0,800,600,"Окно",#PB_Window_MinimizeGadget|#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
 ExplorerListGadget(#Explor, 5, 30,430,480,GetCurrentDirectory(),#PB_Explorer_AutoSort|#PB_Explorer_NoFiles)
 ;ExplorerTreeGadget(#Explor, 5, 30,430,480,GetCurrentDirectory(),#PB_Explorer_AutoSort|#PB_Explorer_NoFiles)

 ;RemoveGadgetColumn(#Explor, 1)
 ;RemoveGadgetColumn(#Explor, 2)

;SetGadgetAttribute(#Explor,#PB_Explorer_DisplayMode ,#PB_Explorer_List)
 SetGadgetItemAttribute(#Explor,0, #PB_Explorer_ColumnWidth, 400)

Repeat
Event =  WaitWindowEvent() 
Until Event = #PB_Event_CloseWindow

http://purebasic.ucoz.com/99.png

Отредактировано mirashic (04.03.2011 23:08:37)

0

410

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

Каким образом создать список как на первом рисунке?

Используй TreeGadget.
Здесь делали что-то похожее на то, что нужно http://purebasic.info/phpBB2/viewtopic. … p;start=15

0

411

Спасибо, сильно запутано и мудрено...

0

412

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

Спасибо, сильно запутано и мудрено...

Там использовано обычное сканирование диска (код в первых постах той темы) и  извлечение значков по расширению файлов.
Может реализовано, мудрено, но алгоритм довольно простой.

0

413

Да, принцип я понял, облегчает работу, что название папок и их наполнение известно и не изменяется, можно по идее без сканирования, завтра попробую...

0

414

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

Нужно чтобы кнопка визуально выглядела нажатой (при использовании флага #PB_Button_Toggle) либо же, нужно выполнить часть кода, выполняемого при программном нажатии кнопки?

Первое

0

415

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

Первое

Из описания функции ButtonGadget:

- SetGadgetState(): Used with #PB_Button_Toggle buttons to set the actual state (1 = toggled, 0 = normal).

Код:
  If OpenWindow(0, 0, 0, 222, 100, "ButtonGadgets", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    ButtonGadget(4, 10,40, 200, 20, "Toggle Button", #PB_Button_Toggle)
    SetGadgetState(4, 1) ; Программное нажатие (визуальное) на кнопку
    Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
  EndIf

0

416

Возможно ли из программы выполнить код что бы она себя удалила. ( Единственное что приходит на ум извлечение из ресурсов программeу во временную папку , которая удалит первую) Возможно ли это и как это реализовавать на примере

Отредактировано neo (06.03.2011 23:29:37)

0

417

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

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

Так работает

Код:
comspec$=Space(255) : GetEnvironmentVariable_("comspec",comspec$,255) 
d$=Space(255) : GetCurrentDirectory_(255,d$) : If Right(d$,1)<>"\" : d$+"\" : EndIf 
tmp$=Space(255) : GetModuleFileName_(0,tmp$,255) : n$=GetFilePart(tmp$) 
RunProgram(comspec$,"/c del "+Chr(34)+d$+n$+Chr(34),"",2) 
 
End

+1

418

Скажите, а в одном из видеоуроков "Создание браузера" прилогаются программы. Последняя версия браузера - "4". Но там проблемы, когда я ввожу в командную строку какой-то сайт то он на него переходит, но в командной строке пишется какаято ерунда. А как это исправить?

Отредактировано Илья (09.03.2011 19:41:58)

0

419

Илья написал(а):

в командной строке пишется какаято ерунда

Да я тоже заметил

0

420

Здравствуйте, у меня такой вопрос, есть приложение на PureBasic (только exe-файл), мне нужно его выложить на сайте, чтобы на страничке был интерфейс и соответственно человек зайдя на сайт мог ввести что либо и нажать пару кнопок. Мне сказали, чтобы так сделать приложение надо обязательно компилировать под Linux, так ли это? Само приложение у меня уже имеет интерфейс в виде окна, где есть гаджеты для ввода и вывода, ну и кнопки соответственно. Не помешает то, что уже есть интерфейс в виде окна, или к примеру нужно окно? И прошу Вас рассказать, с помощью чего и как можно выложить на страничке приложение?

0


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