Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 18.02.2008, 21:13  
Pit_PB
Прописка
 
Регистрация: 23.01.2008
Сообщений: 102
Сказал спасибо: 0
Сказали Спасибо 21 раз(а) в 19 сообщении(ях)
Pit_PB на пути к лучшему
По умолчанию

Цитата:
(rc-фаил + WinApi)
Это требует ещё и API изучать!

Набросал по быстрому программу на PureBasic.
Она содержит окно с меню, панелью инструментов и строкой состояния.
При щелчка по меню или панели, в редакторе отображается идентификатор и текст из меню.
При создании программы не было использовано ни одной API функции, только встроеные. Вот код с подробными комментариями
Код:
; Открываем окно
 OpenWindow(0,0,0,400,300,"Пример",#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadg  et|#PB_Window_SizeGadget|#PB_Window_ScreenCentered  |#PB_Window_Invisible)
 CreateGadgetList( WindowID(0) )
 EditorGadget(1,1,30,398,230) ; Создаём текстовый редактор
 
If CreateMenu(0,WindowID(0)) ; Создаём меню
 MenuTitle("Файл") ; Создаём заголовок
  MenuItem(1,"Новый") ; Заполняем меню
  MenuItem(2,"Открыть")
 
 MenuTitle("Правка") ; Новый заголовок
  MenuItem(3,"Отменить")
  MenuItem(4,"Повторить")
EndIf 

If CreateToolBar(0,WindowID(0)) ; Создаём панель инструментов
 ToolBarStandardButton(1,#PB_ToolBarIcon_New) ; Добавояем кнопки
 ToolBarStandardButton(2,#PB_ToolBarIcon_Open)
 ToolBarSeparator() ; Разделитель
 ToolBarStandardButton(3,#PB_ToolBarIcon_Undo)
 ToolBarStandardButton(4,#PB_ToolBarIcon_Redo)
  ; Подсказки для кнопок панели инструментов
 ToolBarToolTip(0,1,"Новый")
 ToolBarToolTip(0,2,"Открыть")
 ToolBarToolTip(0,3,"Отменить")
 ToolBarToolTip(0,4,"Повторить")
EndIf

If CreateStatusBar(0,WindowID(0)) ; Создаём строку состояния
 AddStatusBarField(200) ; Выделяем 200 пикселей
 StatusBarText(0,0,"PureBasic") ; Выводим текст на троку состояния
EndIf

SmartWindowRefresh(0, 1) ; Уменьшаем мерцания при изменении размеров окна
HideWindow(0,0) ; Отображаем окно

  Repeat
  Event=WaitWindowEvent() ; Узнаём текущее событие в программе
  Menu=EventMenu() ; Узнаём ID активного пункта меню
  
   If Event=#PB_Event_SizeWindow ; Размеры окна изменились
    ; Изменяем размеры редактора
    ResizeGadget(1,#PB_Ignore,#PB_Ignore,WindowWidth(0  )-2,WindowHeight(0)-78)
   EndIf
  
   If Event=#PB_Event_Menu ; Щелчёк по пункту меню или по кнопке на панели инструментов
   ; Выводим информацию в редактор текста.
    AddGadgetItem(1,-1,"ID - "+Str(Menu)+"    текст - "+GetMenuItemText(0,Menu) )
   EndIf
   
  Until Event=#PB_Event_CloseWindow ; Закрываем окно
  
  End ; Конец программы

-- Прилагается рисунок: --

Прикрепленный файл: 6483305.rar
Реклама:
Pit_PB вне форума  
Непрочитано 18.02.2008, 21:51  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию

Такс опять флуд развели...
Просил же...

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

И не забывайте , для чего я советовал его использовать.

Короче попробуйте хотя бы перед тем как писать здесь.

А вытирать я счас начну ...
dosikus вне форума  
Непрочитано 18.02.2008, 23:42  
EXIS
Прописка
 
Регистрация: 20.02.2006
Сообщений: 284
Сказал спасибо: 9
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
EXIS на пути к лучшему
По умолчанию

Вобще целью моего поста было, объяснить что такое FreeBasic и каковы его достоинства, а не то, лучше ли он Pure или нет.


Ты не причем , много других флудливых любителей С и ДЕЛФИ.
dosikus.
EXIS вне форума  
Непрочитано 19.02.2008, 10:57  
Popeye
Почётный гражданин KAZUS.RU
 
Аватар для Popeye
 
Регистрация: 05.08.2007
Адрес: Болгария Перник
Сообщений: 1,771
Сказал спасибо: 74
Сказали Спасибо 357 раз(а) в 245 сообщении(ях)
Popeye на пути к лучшему
По умолчанию

Сообщение от Evgen_F
Но чтобы человек мог сделать выбор, он должен знать что и из чего (все варианты) он выбирает. Затерев пост, Вы ограничиваете людям ВЫБОР!!
Как не вспомнить притчу о Буридановом осле ? Аж уши мои удлиняются и шерстью обрастают
__________________
Мыслю, следовательно существую
Popeye вне форума  
Непрочитано 19.02.2008, 11:16  
Pit_PB
Прописка
 
Регистрация: 23.01.2008
Сообщений: 102
Сказал спасибо: 0
Сказали Спасибо 21 раз(а) в 19 сообщении(ях)
Pit_PB на пути к лучшему
По умолчанию

Цитата:
Такую штуку в Делфи я (не программист, а радист, изучал делфю самомтоятельно 1 месяц) набросал бы мышой за 10 минут
PureBasic тоже имеет визуальный проектировщик окон, а кто Вам вообще сказал что я всё это вручную писал?
И ещё один момент, EXE-шник созданный на Делфи будет весить где-то 400Кб, а на PB только 21Кб, хоть с современным инетом это уже не так важно, но все же...
Я выложил этот пример, чтобы показать что на PureBasic можно создавать интерфейс без применения API функций, хотя если кому-то нравится, можно и API использовать.

Цитата:
Но чтобы человек мог сделать выбор, он должен знать что и из чего (все варианты) он выбирает
Согласен, тогда отдельно создавайте темы, посвещённые Си, Дельфи и т. д. Всё в кучу не надо, это только сбивает с толку.

Скачать полную версию PB 4.00 можно здесь http://gamefiles.ifolder.ru/1463137
Pit_PB вне форума  
Непрочитано 19.02.2008, 12:05  
Pit_PB
Прописка
 
Регистрация: 23.01.2008
Сообщений: 102
Сказал спасибо: 0
Сказали Спасибо 21 раз(а) в 19 сообщении(ях)
Pit_PB на пути к лучшему
По умолчанию

Скачать программу PureBasic 4.00 можно здесь http://gamefiles.ifolder.ru/1463137 Размер: 8.22 Мб, доступна до: 2008-03-17 20:31:04
В архиве есть всё (компилятор, редактор, визуальный разработчик окон и т. д.)
Пробуйте, а потом уже высказывайте своё мнение. (кто скачает, пожалуйста напишите, понравилась программа или нет)

В прекриплённом файле есть самораспаковывающийся архив с руссификатором (он находится в нутри обычного, поскольку нельзя загружать EXE-файлы). Его содержимое следует извлечь в папку с программой ( обычно это C:Program FilesPureBasic )

Вот скриншот редактора PureBasic

-- Прилагается рисунок: --


Прикрепленный файл: 3317311.rar
Pit_PB вне форума  
Непрочитано 19.02.2008, 14:53  
andrey-u
Частый гость
 
Регистрация: 27.11.2006
Сообщений: 11
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
andrey-u на пути к лучшему
По умолчанию

Скачал --попробовал--да ничего так прикольно--тока гдеб на него документацию на русском найти--а то никак неразберусь как назначить обработку событий от кнопок , меню и т.д.--на делфи то в сети полно документации)))
andrey-u вне форума  
Непрочитано 19.02.2008, 19:06  
Pit_PB
Прописка
 
Регистрация: 23.01.2008
Сообщений: 102
Сказал спасибо: 0
Сказали Спасибо 21 раз(а) в 19 сообщении(ях)
Pit_PB на пути к лучшему
По умолчанию

Цитата:
тока гдеб на него документацию на русском найти
Вот русскоязычный сайт. Там есть ссыки на учебник и форум. http://pbasic.spb.ru/
В этой теме форума http://pbasic.spb.ru/phpBB2/viewtopic.php?t=59&start=15 можно найти ссылку на архив с учебником на русском.

Вот оф. сайт (на английском) http://purebasic.com/
ещё один сайт (на английском) http://purearea.net/

Вот пример обработки событий от нажания на экранную кнопку
Код:
; Создаём окно.
  OpenWindow(1,150,200,200,100,"Заголовок окна",#PB_Window_MinimizeGadget)
  CreateGadgetList( WindowID(1) ) ; Создаём пустой список гаджетов.
  ButtonGadget(2,50,30,80,25,"Кнопка")
  
  Repeat ; Начало главного цикла.
  Event=WaitWindowEvent() ; Получаем идентификатор события.
  Gadget=EventGadget() ; Узнаём идентификатор активного гаджета.
  
   If Event=#PB_Event_Gadget And Gadget=2 ; Условие будет выполнено при щелчке по кнопке.
    MessageRequester("Сообщение","Была нажата кнопка") ; Выводим на экран сообщение.
   EndIf 
  
  Until Event = #PB_Event_CloseWindow ; Прерываем цикл если в переменной "Event" будет число равное числу в константе.
  
  End ; Директива, завершающая программу.
Обработка событий от меню
Код:
; Открываем окно
If OpenWindow(0, 200, 200, 290, 130,"Меню",#PB_Window_MinimizeGadget)
 If CreateGadgetList(WindowID(0))
 ; Создаём меню
  If CreateMenu(0,WindowID(0))
   ; Создаём новый заголовок меню
   MenuTitle("Файл")
    ; Создаём пункты меню
    MenuItem(0,"Открыть")
    MenuItem(1,"Сохранить")
    ; Разделитель между меню
    MenuBar()
    MenuItem(2,"Выход")
    ; Создаём новый заголовок меню
   MenuTitle("Справка")
    MenuItem(3,"О программе")
  EndIf

 Repeat
  Event=WaitWindowEvent() ; Узнаём текущее событие в программе
  Menu=EventMenu()  ; Получаем идентификатор активного пункта меню
   
   If Event=#PB_Event_Menu ; Условие будет выполнено, если произойдёт событие в меню
    Select Menu ; Запоминаем идентификатор меню для последующего сравнения в операторах Case
     Case 0 ; Произошло событие в пункте и идентификатором 0
      MessageRequester("Меню","Пункт 'Открыть'")
     Case 1 ; Произошло событие в пункте и идентификатором 1 
      MessageRequester("Меню","Пункт 'Сохранить'")
     Case 2 ; Произошло событие в пункте и идентификатором 2
      Exit=1 ; Записываем в переменную "Exit" число 1. Это прервёт цикл и программа закроется
     Case 3 ; Произошло событие в пункте и идентификатором 3
      MessageRequester("Меню","Пункт 'О программе'")
    EndSelect ; Этот оператор завершает операцию выбора, начатую оператором Select
   EndIf 
  
  If Event=#PB_Event_CloseWindow
   Exit=1 ; При попытке закрыть окно, записываем в эту переменную число 1
  EndIf
 Until Exit=1 ; Цикл прервётся и программа завершит свою работу когда в переменной "Exit" будет число 1
 
 EndIf
EndIf
End
Эти примеры были взяты из учебника (выше была дана ссылка на тему форума, где его можно найти).

Если у кого возникнут проблемы в освоении программы PureBasic - спрашивайте не стесняйтесть.

В прикреплённом файле есть эти примеры и скомпилированые EXE-шники.

Прикрепленный файл: 1303259.rar
Pit_PB вне форума  
Непрочитано 19.02.2008, 22:01  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию

Спасибо PIT_PB ,у меня просьба расскажи о своей программе
для ком порта .
Можно ее попробовать вместе с протеусом , есть драйвер виртульного порта...

Для любителей флуда...
Вынужден прибегнуть к крайним мерам.

пункт 1. Модератор всегда прав...
пункт 2. Если модератор не прав, смотри пункт 1.
dosikus вне форума  
Непрочитано 20.02.2008, 09:39  
Andy_ry1
Частый гость
 
Регистрация: 31.01.2008
Сообщений: 18
Сказал спасибо: 4
Сказали Спасибо 3 раз(а) в 2 сообщении(ях)
Andy_ry1 на пути к лучшему
По умолчанию

Сообщение от CERGEI1982
Я за С++ ...
к тому же может в будещем для микроконтролеров можно будет писать на С++.
Уже давно пишу программы для микроконтроллеров (семейство MCS-51 (8-ми разр.) и ST91x (32-разр.ARM9)) на ядрёной смеси С и С++. Различия между этими языками постепенно стираются, за исключением классов (в С их по-прежнему не используют). Насчёт сложности изучения С - это миф. Изучал многие языки программирования - они все похожи! В С несколько усложнённый синтаксис, вот и всё. Если стоит программа выбора - для микроконтроллеров однозначно С. Для ПК - С++. Таблица "быстродействия" программ, написанных на версиях Бэйсика, Delfi и С++ и выводы автора этого "тестирования" просто притянутый за уши к желаемому результату бред!!! Он бы ещё привел программу на асме и доказал, что на Бэйсике можно написать прогу короче и быстрее, чем на асме...
Andy_ry1 вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В какой среде лучше писать программы для MCS-51 контр. на С? Yegorvin Proteus, KiCAD и другие ECAD 17 02.11.2008 20:26
Кто умеет писать заготовки iButon (TM) ? MAXvaLL Микроконтроллеры, АЦП, память и т.д 34 19.03.2008 01:27
для тех кто программирует на CodeVisionAVR dimonbest Микроконтроллеры, АЦП, память и т.д 12 21.06.2007 12:32
спомощью какой программы можно писать программу на МК. golinskiy Proteus, KiCAD и другие ECAD 4 05.06.2006 10:43
Хочу научиться писать программы для МК 8051. filat Делимся опытом 22 03.06.2006 23:09


Часовой пояс GMT +4, время: 09:27.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot