Форум программистов, компьютерный форум, киберфорум
Pure Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.97/1078: Рейтинг темы: голосов - 1078, средняя оценка - 4.97
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502

PureBasic

13.03.2009, 15:00. Показов 238950. Ответов 1214

Студворк — интернет-сервис помощи студентам
Есть такая замечательная разновидность диалекта бейсика именуемая PureBasic.
Сайт разработчика http://www.purebasic.com/
Рускоязычное зеркало http://pbasic.spb.ru/

Как и любой другой бейсик он прост в освоении.
Заточен полностью под винду.
С его помощью можно разрабатывать консольные, окнонные (с поддержкой стиля XP) и игровые программы.
При этом не нужно знать как работает комп или искать инфу по API функциям, т. к. есть более 800 встроеных функций различного назначения, которых в большенстве случаев достаточно чтобы написать не сложную прогу. При необходимости можно использовать API (есть встроеная поддержка) или ассемблерные вставки. При необходимости можно добавить в среду дополнительные функции из внешних библиотек, большой выбор которых есть на страничке http://www.purearea.net/pb/english/userlibs.php

Вот простоейший пример программы отображающей надпись в окне
PureBasic
1
2
3
4
5
6
7
8
9
; Открываем окно
OpenWindow(1,200,250,300,50,"Заголовок окна",#PB_Window_MinimizeGadget)
CreateGadgetList(WindowID(1)) ; Создаём новый список гаджетов
TextGadget(2,80,20,180,15,"Демонстрационная программа") ;Отображаем текст
 
Repeat ; Начало главного цикла Repeat-Until
 Event=WaitWindowEvent() ; Получаем текущий идентификатор события
Until Event=#PB_Event_CloseWindow ; Прерываем цикл при попытке закрыть окно (щелчёк по крестику в заголовке окна)
End ; Завершаем работу программы
Размер скомпилированого файла всего 14КБ!

В архиве есть парочка примеров.

Высказывайте выше мнение об PureBasic
Вложения
Тип файла: rar Примеры_PB_1.rar (39.3 Кб, 2368 просмотров)
9
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.03.2009, 15:00
Ответы с готовыми решениями:

PureBasic 4.60
Пару дней назад вышла версия 4.60. Демо версии можно скачать на официальном сайте http://purebasic.com/download.php В этой версии...

Purebasic и AV
Добрый день, скажите почему Антивирусы так не любят пурик? достаточно 1 команды например rename() и все сразу детект 5 антивирусами на...

Purebasic 5.0 + html
Как использовать PB в web разработке ? Возможно ли применить его вместо JS и PHP ? Откликнитесь кто знает ответ !

1214
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
07.10.2010, 20:36  [ТС]
Студворк — интернет-сервис помощи студентам
однако он сразу уничтожает сразу после нажатия на первую кнопку выводит на 0.5 сек и исчезает
Странно.
Возможно что-то сделано не так...

Добавлено через 2 минуты
IF MouseButton(7)
У этой функции нет параметра с числом 7
1
12 / 12 / 0
Регистрация: 29.08.2010
Сообщений: 613
07.10.2010, 20:39
(7) это идентификатор кнопки?

Добавлено через 2 минуты
блин а щас вообще какая-то фигня то нормально кнопка закрыть всё делает то гаснет сразу сам в основном сам(((
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
07.10.2010, 20:43  [ТС]
В программе кнопки "самопальные" и функция MouseButton о них не знает.
Вот допустимые аргументы для этой функции
#PB_MouseButton_Left : Tests if the left mouse button is pressed
#PB_MouseButton_Right : Tests if the right mouse button is pressed
#PB_MouseButton_Middle: Tests if the middle mouse button is pressed
Добавлено через 1 минуту
блин а щас вообще какая-то фигня
Подозреваю что в коде есть неточность.
1
12 / 12 / 0
Регистрация: 29.08.2010
Сообщений: 613
07.10.2010, 20:51
вот смотри здесь я всё выложил кроме фоновой музыки(твою оставил) моя большая.
Вложения
Тип файла: rar anim(2).rar (2.70 Мб, 46 просмотров)
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
07.10.2010, 21:17  [ТС]
Как оказалось, при создании кнопки, генерируется событие клика (я не досмотрел).
Кроме того, доработал процедуру создания кнопки, чтобы блокировать возможность создания кнопок с одинаковыми идентификаторами. При попытке создать кнопку с уже имеющимся идентификатором, предыдущая будет удалена.
Вложения
Тип файла: rar anim(2).1.rar (167.3 Кб, 43 просмотров)
1
12 / 12 / 0
Регистрация: 29.08.2010
Сообщений: 613
08.10.2010, 19:43
вот я в коде новую кнопку добавляю ещё 1
PureBasic
1
2
3
4
5
6
Case 3
        PlayMovie(2,ScreenID())
        LoadSprite(6, ProgPath+"pic5.bmp", 0) 
        LoadSprite(7, ProgPath+"pic11.bmp", 0)
        AddButton(4,151,400, "pic7.bmp", "pic8.bmp")
        AddButton(9,400,400, "pic9.bmp", "pic10.bmp") ; вот она, а при направлении на неё она исчезает((
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
08.10.2010, 20:28  [ТС]
Скорее всего проблема с рисунком pic10.bmp
1
12 / 12 / 0
Регистрация: 29.08.2010
Сообщений: 613
08.10.2010, 20:44
всё уже нормально
0
12 / 12 / 0
Регистрация: 29.08.2010
Сообщений: 613
12.10.2010, 16:42
а можно сделать что бы было поле для текста а там всё что вводил было как string переменные(текстовые переменные)?
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
12.10.2010, 18:34  [ТС]
В консольном или оконном режиме это делается легко, средствами операционной системы, а вот в полноэкранном режиме, это нужно делать программными средствами, так же как и кнопку.
1
12 / 12 / 0
Регистрация: 29.08.2010
Сообщений: 613
12.10.2010, 18:41
а например при нажатии на кнопку открывалось окно там уже действия с текстом дальше в оконном легко кнопку ок и потом уже действия в полно экранном режиме это же всё равно 1 программа только бы при открытии окна блокировался полный экран можно как-нибудь так?
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
12.10.2010, 19:41  [ТС]
Может тогда лучше все сделать в оконном режиме?
1
12 / 12 / 0
Регистрация: 29.08.2010
Сообщений: 613
13.10.2010, 15:13
да не я по другому сделаю)

Добавлено через 17 минут
слушай а вот с файлами
PureBasic
1
2
3
4
5
6
7
        CreateFile(10, "Profile1.txt") ; создаю файл
        WriteInteger(10, 1) ; записываю цифру 1
        WriteInteger(10, 1) ; и ещё 3 цифры 1
        WriteInteger(10, 1)
        WriteInteger(10, 1)
        ReadFile(10, "Profile1.txt") ; "читаю" файл
        ReadInteger(10) ; вывожу цифру
в чём ошибка или как вывести эти 4 цифры на экран и можно ли так в полном окне?
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
13.10.2010, 15:33  [ТС]
Цитата Сообщение от aristov-96 Посмотреть сообщение
как вывести эти 4 цифры на экран и можно ли так в полном окне
Можно вот так.
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
If InitSprite()=0 Or InitKeyboard()=0
  MessageRequester("", "Ошибка инициализации библиотек")
  End
EndIf
 
If CreateFile(10, "Profile1.txt") ; создаю файл
  WriteInteger(10, 1) ; записываю цифру 1
  WriteInteger(10, 1) ; и ещё 3 цифры 1
  WriteInteger(10, 1)
  WriteInteger(10, 1)
  CloseFile(10)
Else
  MessageRequester("", "Не удалось создать файл")
EndIf
 
If ReadFile(10, "Profile1.txt") ; "читаю" файл
  Var1=ReadInteger(10)
  Var2=ReadInteger(10)
  Var3=ReadInteger(10)
  Var4=ReadInteger(10)
  CloseFile(10)
Else
  MessageRequester("", "Не удалось прочитать файл")
EndIf
 
If OpenScreen(1024,768,16,"") ; Переход в полноэкранный ражим, с параметрами 1024х768, 16 бит
  
  Repeat ; Главный цикл программы
    ClearScreen(RGB(57, 123, 65)) ; Очитска экрана, заполнением его темно-зеленым цветом
    
    If StartDrawing(ScreenOutput()) ; Начало рисования по экрану
      DrawingMode(#PB_2DDrawing_Transparent) ; При рисовании, будет прозрачный фон у надписи
      DrawText(20,20,Str(Var1), RGB(255, 255, 255))
      DrawText(20,50,Str(Var2), RGB(255, 255, 255))
      DrawText(20,80,Str(Var3), RGB(255, 255, 255))
      DrawText(20,110,Str(Var4), RGB(255, 255, 255))
      StopDrawing() ; Завершение рисования
    EndIf
      
    FlipBuffers() ; Отображение на эуране буфера, по которому рисовали
    ExamineKeyboard() ; Опрос кнопок клавиатуры
    
  Until KeyboardPushed(#PB_Key_Escape) ; Прерывание цикла при нажатии на кнопку Esc на клавиатуре
 
  
Else
  MessageRequester("", "Не удалось перейти в полноэкранный режим с параметрами"+Chr(10)+"1024х768, 16 бит")
EndIf
End
Но если это требуется для сохранения настроек программы, то можно использовать функции из библиотеки Preference, работающей со стандартными INI файлами.
1
12 / 12 / 0
Регистрация: 29.08.2010
Сообщений: 613
13.10.2010, 15:44
о спасибо как раз так хотел, а как сделать что бы всё с экрана очистилось) пусто стало?)
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
13.10.2010, 15:53  [ТС]
Очистка экрана осуществляется функцией ClearScreen при каждом выполнении кода цикла (насколько десятков раз в секунду).
Поэтому нужно просто запретить вывод информации на экран, т. е. не нужно выполнять код, между функциями ClearScreen и FlipBuffers
1
12 / 12 / 0
Регистрация: 29.08.2010
Сообщений: 613
13.10.2010, 16:01
ой чо то не понимаю((
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
13.10.2010, 16:17  [ТС]
Вот пример.
Пока в переменной State находится число 1, будет выполнятся код
Code
1
2
3
4
5
6
7
8
If State=1
      If StartDrawing(ScreenOutput()) ; Начало рисования по экрану
        DrawingFont(FontID(0))
        DrawingMode(#PB_2DDrawing_Transparent) ; При рисовании, будет прозрачный фон у надписи
        DrawText(220,320,"Текст исчезнет через 8 секунд", RGB(255, 255, 255))
        StopDrawing() ; Завершение рисования
      EndIf
    EndIf
но через 8 секунд с момента запуска программы, в переменую будет записано число ноль и поэтому текст исчезнет с экрана.
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
If InitSprite()=0 Or InitKeyboard()=0
  MessageRequester("", "Ошибка инициализации библиотек")
  End
EndIf
 
Global State=1
 
Procedure Thread(*x)
  Delay(8000)
  State=0
EndProcedure
 
LoadFont(0,"Arial", 30) ; Загрузка шрифта "Arial" с размером 30. Ему присваивается идентификатр 0
 
If OpenScreen(1024,768,16,"") ; Переход в полноэкранный ражим, с параметрами 1024х768, 16 бит
  
  CreateThread(@Thread(), 0) ; Запуск кода процедуры Thread() в параллельннои потоке
  
  Repeat ; Главный цикл программы
    ClearScreen(RGB(57, 123, 65)) ; Очитска экрана, заполнением его темно-зеленым цветом
    
    If State=1
      If StartDrawing(ScreenOutput()) ; Начало рисования по экрану
        DrawingFont(FontID(0))
        DrawingMode(#PB_2DDrawing_Transparent) ; При рисовании, будет прозрачный фон у надписи
        DrawText(220,320,"Текст исчезнет через 8 секунд", RGB(255, 255, 255))
        StopDrawing() ; Завершение рисования
      EndIf
    EndIf
    
    FlipBuffers() ; Отображение на эуране буфера, по которому рисовали
    ExamineKeyboard() ; Опрос кнопок клавиатуры
    
  Until KeyboardPushed(#PB_Key_Escape) ; Прерывание цикла при нажатии на кнопку Esc на клавиатуре
 
  
Else
  MessageRequester("", "Не удалось перейти в полноэкранный режим с параметрами"+Chr(10)+"1024х768, 16 бит")
EndIf
End
1
12 / 12 / 0
Регистрация: 29.08.2010
Сообщений: 613
15.10.2010, 15:19
вот тут по идеи всё правильно но при нажатии на "Кнопка1" должна удалиться эта кнопка а картинка смениться(эта убраться а новая открыться) у меня кнопка удаляется как надо а картинка на 0.5 сек меняется и снова та включается((( а мне надо ваще навсегда изменить)
Вложения
Тип файла: rar Anim2.rar (2.4 Кб, 29 просмотров)
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
15.10.2010, 16:00  [ТС]
А можно вкратце рассказать о назначении создаваемой программы?
Это позволит давать боле точные советы.

Потому как я сейчас вижу что обычный BMP рисунок (который раньше был GIF формата) загружается с помощью LoadMovie, основное назначение которой, отображение видео, а не рисунков. В этом случае логичнее использовать функцию LoadSprite.
Замена фонового рисунка в этом случае будет довольно простой - достаточно просто загрузить другой рисунок в спрайт.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.10.2010, 16:00

Возможности PureBasic
PureBasic Shaders Clothes Simulation Physics Демонстрация тестовой версии игры Домино3D Онлайн Демо Версия Меню SDP...

Изучать ли purebasic?
Здравствуйте. У меня такие цели, подскажите пожалуйста подойдет ли purebasic для них: 1. создание оконных приложений на только windows,...

Литература по PureBasic
Небольшая подборка учебников и обучающих материалов на русском. Она будет полезна тем, кто только начинает изучать язык PureBasic.

Из vbs в purebasic
Если есть, кто может помочь с переводом из vbs в purebasic, то просьба помочь. Нужно перевести код из скрипта vbs в код purebasic. Код...

Sound в PureBasic
Приветствую всех. Когда-то, очень давно, на cyberforum была моя тема о выборе бейсика для написания звуковой игры. Для информации: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
100
Закрытая тема Создать тему
Новые блоги и статьи
Контроль уникальности строк в табличной части документа
Maks 18.06.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ПланированиеСпецтехники" с табличной частью "НаличиеОборудования", разработанного в КА2. Задача: контроль уникальности строк в. . .
Клиент
Uhbif79 18.06.2026
Здесь простой клиент для работы с сервером.
Сервер
Uhbif79 18.06.2026
Выкладываю простейший сервер.
Дефенестрация
kumehtar 18.06.2026
Узнал интересное слово. Дефенестрация. Это когда ты выбрасываешь кого-либо или что-либо из окна. Возьму на вооружение)))
Дихотомия добра и зла
kumehtar 18.06.2026
Как Дзен-буддисты говорят о добре и зле: не нужно воевать против зла, нужно воевать против невежества. Тогда добро станет ествественным, и поэтому вечным. Но дело в том, что невежество всё время. . .
Своя Интернет-Компания
iceja 18.06.2026
Я программист с экономическим образованием, пишу свой проект, это SaaS для бизнесов. Мне нужен co-founder с высшим экономическим образованием, и/ или инвестор. Сейчас проект в интенсивной разработке,. . .
24 Мат модель здравосохранения: функциональные требования к строительству пищеблока
anaschu 18.06.2026
СРесурсами1: финансовый SD-контур, калькулятор функциональных требований пищеблока Сегодня разделили затраты в агенте Экономика по образцу модели НАСОСЫ, добавили расчёт ROI и построили первый. . .
23. что сделано за последнее время.
anaschu 17.06.2026
• Эталон: Клиника НИИ питания РАМН, Москва — централизованный пищеблок, 225 коек, 180 пациентов • Git: репозиторий med2, ветка абсентеизм. Рабочий файл: СРесурсами1_v4. alp • Смежный проект:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru