АвторСообщение
постоянный участник




Пост N: 62
Зарегистрирован: 27.04.07
Откуда: Россия, Воркута
Рейтинг: 0
Фото:
ссылка на сообщение  Отправлено: 25.06.07 11:28. Заголовок: Программирование на PureBasic. Часть 1




Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 136 , стр: 1 2 3 4 All [только новые]





Пост N: 259
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 22.06.07 13:50. Заголовок: Re:


vintik пишет:

 цитата:
А где можно качнуть PureBasic?

Для начала, зайди сюда Там есть ссылка на учебник и форум
Скачать грограмму можно отсюда http://www.rampark.narod.ru/ текущая версия 4.0, вес 8.2 Мб

vintik пишет:

 цитата:
Подкупило, что можно управлять COM портом.

На PureBasic тоже можно, причём для этого совсем не объязатально знать как этот порт работает. Правда в самом компиляторе функций для работы с портами нет, но можно установить дополнительную библиотеку с требуемыми функциями.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 263
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 23.06.07 11:27. Заголовок: Re:


Evgeny Korabelnikov пишет:

 цитата:
Петр, как на счет "затравки" в виде первичного "въезда" в PureBasic?



Первичный "въезд" думаю организовать так:
Сначала следует скачать программу PureBasic 4.0 (ссылка была дана выше).
русификатор
Затем, следует ознакомится с учебником Именно с его помощью я и начал изучать этот язык.
В этом учебнике информация изложена толково, жаль только что её (информации) очень мало.
Далее нужно будет организовать специальный раздел где я мог бы вылаживать набольшие программки и объяснять как они работают. Это можно сделать на нашем форуме или Здесь
Кстати на этом форуме есть тема "COM порт".


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 267
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 24.06.07 10:25. Заголовок: Re:


MAZ пишет:

 цитата:
Как подключать к тексту программы Vizual Designer не понял?

В меню "Projeck" следует выбрать пункт "PureBasic Editor". В этом случае будет сгенерирован код и помещён в окно редактора. Только если Вы попытаетесь его скомпилировать, окно не увидите. Дело в том что текст представлен в виде процедуры и для того чтобы увидеть это окно, предварительно следует её вызвать.
Делается это следующим образом: Ищем строку содержащую в слово Procedure. После него указанно имя этой процедуры (например, Open_Window_0() ). Теперь берём это слово (в месте со скобками) и помещаем в конец текста.
Должно получится примерно следующее: (окно пустое)
Enumeration 
#Window_0
EndEnumeration

Procedure Open_Window_0()
If OpenWindow(#Window_0, 216, 0, 600, 300, "New window ( 0 )", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
If CreateGadgetList(WindowID(#Window_0))

EndIf
EndIf
EndProcedure

Open_Window_0()


Вот теперь окно уже появится, но только на долю секунды.
Дело в том что был выполнен весь код до самого конца. Для того чтобы зделать окно устойчивым, следует добавить так называемый "цикл окна"
Добавте в конец текста такой код:

Repeat 
Event=WaitWindowEvent()
If Event=#PB_Event_CloseWindow
exit=1
EndIf

Until exit=1


В общем должно получится:

Enumeration 
#Window_0
EndEnumeration


Procedure Open_Window_0()
If OpenWindow(#Window_0, 216, 0, 600, 300, "New window ( 0 )", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
If CreateGadgetList(WindowID(#Window_0))

EndIf
EndIf
EndProcedure

Open_Window_0()

Repeat
Event=WaitWindowEvent()
If Event=#PB_Event_CloseWindow
exit=1
EndIf

Until exit=1


Теперь окно не только устойчивое, но его ещё можно закрыть, щёлкнув по крестику в заголовке окна.

Более подробно объясню как это всё работает чуть позже. Объяснять буду по принципу "от простого к сложному", а пока можете посмотреть примеры программ, в папке "Examples".

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 270
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 25.06.07 11:48. Заголовок: Re:


vintik пишет:

 цитата:
но ничего не нашел ни по COM

Посмотри здесь Там правда есть только ссылка на нужную библиотеку с функциями и больше ничего. Думаю пока рано думать о порте, сначала язык освоить нужно.

vintik пишет:

 цитата:
Мне сдается, что если на форуме будеш вести тему по "пурику"...

Естествено буду. Только на форуме сложно будет размещать, допустим таблицы, так что несколько первых разделов нужно по почте отправлять.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 178
Зарегистрирован: 26.12.06
Откуда: Одесса
Рейтинг: 0
ссылка на сообщение  Отправлено: 25.06.07 13:35. Заголовок: Re:


Пётр пишет:

 цитата:
Посмотри здесь


Качнул библиотеку. Теперь есть стимул

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 179
Зарегистрирован: 26.12.06
Откуда: Одесса
Рейтинг: 0
ссылка на сообщение  Отправлено: 25.06.07 20:22. Заголовок: Re:


Получил рассылку с первой статьей, круто, если учесть что написана в короткий срок да еще и
с примерами... Боюсь перехвалить
Есть первый вопрос(ы):
Довольно часто попадается текст, не выровненный по левой стороне. Напоминает елочку, это
делается специально для читабельности?

Потом вот такая строка:
If OpenWindow(0, 100, 100, 350, 400, "Заголовок", #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget) And CreateGadgetList(WindowID(0)) она должна писаться в одну строку?
И как посмотреть выполнение программы в пошаговом режиме, с первой строки?
Ну и насколько сложно переделать USART.exe под ЛПТ?

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 180
Зарегистрирован: 26.12.06
Откуда: Одесса
Рейтинг: 0
ссылка на сообщение  Отправлено: 25.06.07 21:25. Заголовок: Re:


Уже кое чего слепил


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 271
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 25.06.07 22:04. Заголовок: Re:


vintik пишет:

 цитата:
Потом вот такая строка:
If OpenWindow(0, 100, 100, 350, 400, "Заголовок", #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget) And CreateGadgetList(WindowID(0)) она должна писаться в одну строку?

Да, хотя можно и записать в две строки. Примерно так:
If OpenWindow(0, 100, 100, 350, 400, "Заголовок", #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget) 
CreateGadgetList(WindowID(0))

В следующем разделе, я разберу на молекулы создание окон.

vintik пишет:

 цитата:
Довольно часто попадается текст, не выровненный по левой стороне. Напоминает елочку, это
делается специально для читабельности?

Да, так проще найти нужный фрагмент текста.

vintik пишет:

 цитата:
И как посмотреть выполнение программы в пошаговом режиме, с первой строки?

По правде говоря, такой необходимости пока небыло. Если мне нужно было узнать какие значения принимают переменные в определённом месте программы, я использовал контрольную точку. Для её установки, следует поместить курсор на нужную сторку и нажать на кнопку "F9". Далее запускаем программу и как только рабочая точка программы переместится на нужную позицию, работа программы остановится. Чтобы посмотреть что какие значения записаны в переменные, следует в меню "Отладчик" выбрать пункт "Переменные"
Сейчас попробую разобратся с пошаговым режимом.

vintik пишет:

 цитата:
Ну и насколько сложно переделать USART.exe под ЛПТ?

Это будет посложнее. Во первых, пока не смог найти библиотеку с функциями для LPT порта, а во вторых, программо реализовать последовательный интерфейс будет сложно.

vintik пишет:

 цитата:
Уже кое чего слепил

Поздравляю с первым успехом!
Помню, я тоже радовался когда написал свою первую программу, можно так сказать "укротил" комп.


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 272
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 25.06.07 22:24. Заголовок: Re:


vintik пишет:

 цитата:
как посмотреть выполнение программы в пошаговом режиме

Делается это следующим образом:
"Ставим" курсор на нужную стоку (в данном случае, первую) и нажимаем на кнопку "F9". Запускаем программу. Поскольку контрольная точка установлена в первой строке, программа будет остановлена. Далее нажимаем на кнопку "F8". Каждое нажатие производит один шаг.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 181
Зарегистрирован: 26.12.06
Откуда: Одесса
Рейтинг: 0
ссылка на сообщение  Отправлено: 25.06.07 22:30. Заголовок: Re:


Полез в справку посмотреть что такое Debug, и .... споткнулся, о команду DebugLevel,
не хочется тебя дергать за каждым разом, попробую разобраться сам
Дааа, если БЫ справка к басику была написана тобой, то почитателей этой программы
намного бы преувеличила все ожидания ее создателей



Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 273
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 25.06.07 22:40. Заголовок: Re:


vintik пишет:

 цитата:
Полез в справку посмотреть что такое Debug

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

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 182
Зарегистрирован: 26.12.06
Откуда: Одесса
Рейтинг: 0
ссылка на сообщение  Отправлено: 25.06.07 23:00. Заголовок: Re:


Пётр пишет:

 цитата:
"Ставим" курсор на нужную стоку (в данном случае, первую) и нажимаем на кнопку "F9".


Получилось!
Тут оказывается можно задавать количество выполненных шагов

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 274
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 26.06.07 09:51. Заголовок: Re:


vintik пишет:

 цитата:
Потом вот такая строка:
If OpenWindow(0, 100, 100, 350, 400, "Заголовок", #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget) And CreateGadgetList(WindowID(0)) она должна писаться в одну строку?

А, тебя насторожило то, что в этой строке две функции разделены оператором "And"?
Сделано это вот для чего: Почти каждая функция после завершения своей работы, возвращает какой-либо результат. Причём он равен нулю если во время работы функции произошла ошибка (например, почему то неудалось открыть окно). Для того чтобы было проще понять, оставлю от имён функций только одну первую букву.
Получилось следующее:
If O And C
Компилятор воспринимает это как
If O>0 And C>0
Из этого следует, что код расположенный между операторами If и EndIf будет выполнен только в том случае, если результат работы этих функций будет больше нуля. Это необходимо для блокировки обращений к окну, в том случае если его не удалось создать.


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 183
Зарегистрирован: 26.12.06
Откуда: Одесса
Рейтинг: 0
ссылка на сообщение  Отправлено: 26.06.07 11:30. Заголовок: Re:


Понятно, дело в том, что этих "#PB_Window_....." гаджетов целая куча.
И если их писать в одну строку, то строчка выходит за поле редактора, тем самым усложняя обзор.
Ну я и подумал, что можно продолжать с новой строки, только отступив.
И ... вобщем вижу, что заблуждался

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 275
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 26.06.07 11:42. Заголовок: Re:


vintik пишет:

 цитата:
Ну я и подумал, что можно продолжать с новой строки

Можно и с новой строки. Возмём п примеру такой код:

If OpenWindow(0, 100, 100, 350, 400, "Заголовок", #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget) And CreateGadgetList(WindowID(0))  

Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_CloseWindow
Exit=1
EndIf
Until Exit=1

EndIf
End

Это одна строка.

А вот здесь этот код уже разбит на две строки.
If OpenWindow(0, 100, 100, 350, 400, "Заголовок", #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget)  
If CreateGadgetList(WindowID(0))

Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_CloseWindow
Exit=1
EndIf
Until Exit=1

EndIf
EndIf
End

Как видишь, добавился ешё один оператор If и завершающий его оператор EndIf.
Логика работы программы не изменилась.


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 276
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 26.06.07 11:47. Заголовок: Re:


Только что скопировал код через буфер обмена, а он в редакторе расположился в одну строку.
Это что, ещё один глюк форума?

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 184
Зарегистрирован: 26.12.06
Откуда: Одесса
Рейтинг: 0
ссылка на сообщение  Отправлено: 26.06.07 12:20. Заголовок: Re:


Работает:
If OpenWindow(0, 100, 100, 350, 400, "Заголовок", #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget)    
If CreateGadgetList(WindowID(0))
Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_CloseWindow
Exit=1
EndIf
Until Exit=1
EndIf
EndIf
End

Ты здесь добавил цикл опроса "закрыто ли окно"?

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 277
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 26.06.07 13:29. Заголовок: Re:


Ну да.
С помощью функции WaitWindowEvent() узнаём какое произошло событие. Если возвращается число равное константе #PB_Event_CloseWindow , тогда присваеваем переменной Exit значение равное единице (по умолчанию, все переменные обнулены). При этом выполняется условие в стрке Until Exit=1 и работа программы завершается. Если условие не выполняется т. е. в переменной Exit число отличное от единицы, Программа зацикливается между операторами Repeat и Until.
У функции WaitWindowEvent() есть ещё одно важное назначание - она позволяет эканомить процессорное время. Попробуй её заменить на WindowEvent() при этом программа полностью работоспособна.
Получиться следующее:

If OpenWindow(0, 100, 100, 350, 400, "Заголовок", #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget)
If CreateGadgetList(WindowID(0))
Repeat
Event = WindowEvent()
If Event = #PB_Event_CloseWindow
Exit=1
EndIf
Until Exit=1
EndIf
EndIf
End


Перед запуском этой программы, открой "Деспетчер задач" (Ctrl+Alt+Del). Посмотри как "грузит" систему программа с функцией WaitWindowEvent() и с функцией WindowEvent()

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 185
Зарегистрирован: 26.12.06
Откуда: Одесса
Рейтинг: 0
ссылка на сообщение  Отправлено: 26.06.07 13:48. Заголовок: Re:


Факт на лицо!

Смотрел в Debugger/CPU Monitor

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 278
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 26.06.07 18:25. Заголовок: Re:


А почему ты не русифицировал программу (если конечно это не секрет)?
Мне гораздо удобнее работать с русифицированой программой.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 186
Зарегистрирован: 26.12.06
Откуда: Одесса
Рейтинг: 0
ссылка на сообщение  Отправлено: 26.06.07 20:52. Заголовок: Re:


Так справка на английском.
Кстати, а есть еще какие нибудь ресурсы, по PureBasic?

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 279
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 26.06.07 21:45. Заголовок: Re:

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 187
Зарегистрирован: 26.12.06
Откуда: Одесса
Рейтинг: 0
ссылка на сообщение  Отправлено: 26.06.07 22:21. Заголовок: Re:


Читал, что код от старых версий не подходит к 4.0 и вроде есть транслятор.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 280
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 27.06.07 10:08. Заголовок: Re:


vintik пишет:

 цитата:
Читал, что код от старых версий не подходит

К сожалению это правда.
И для того чтобы использовать исходники от версий 3.x, следует их сначала преобразовать с помошью конвертера

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 188
Зарегистрирован: 26.12.06
Откуда: Одесса
Рейтинг: 0
ссылка на сообщение  Отправлено: 27.06.07 23:55. Заголовок: Re:


Спасибо качнул.

Качнул КодАрхив, стал запускать прграмы(приложения), потом некоторые не
смог закрыть.
Alt+F4 не срабатывала, только через заветные три кнопки.
Это считается в порядке вещей?

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 281
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 28.06.07 11:32. Заголовок: Re:


Гений Квитали подбросил мне инфу по LPT порту. http://pbasic.spb.ru/phpBB2/viewtopic.php?t=102&postdays=0&postorder=asc&start=30 Сейчас вот разбираюсь.


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 282
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 28.06.07 11:40. Заголовок: Re:


vintik пишет:

 цитата:
некоторые не смог закрыть.



Если в программе не предусмотрен код, закрывающий программу, закрыть обычным способом не получится. А какой исходник не хотел закрываться?
Да, кстати, Программы можно ещё "убивать" с помощью кнопки с черепом, которая расположена последней на панели инструментов.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 189
Зарегистрирован: 26.12.06
Откуда: Одесса
Рейтинг: 0
ссылка на сообщение  Отправлено: 28.06.07 13:42. Заголовок: Re:


Игрался с кнопками и заметил, что программа выполняется не последовательно, скачет в теле цикла.
При закрытии окна мессаги "Была нажата кнопка", по плану должна выскочить мессага
("Предупреждение","Вы уверенны что хотите выйти?"), а выводится ("Сообщение","Вы снова нажали на кнопку")
If OpenWindow(0, 100, 100, 350, 400, "Заголовок", #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget) And CreateGadgetList(WindowID(0))  
ButtonGadget(8, 10, 100, 80, 25, "Кнопка")
Repeat
Event = WaitWindowEvent()
Gadget = EventGadget()

If Event=#PB_Event_Gadget And Gadget=8
MessageRequester("Сообщение","Была нажата кнопка")
EndIf

If Event = #PB_Event_CloseWindow
MessageRequester("Предупреждение","Вы уверенны что хотите выйти?")
EndIf

If Event = #PB_Event_CloseWindow
MessageRequester("Сообщение","Тогда нажмите на красный крестик?")
EndIf

If Event = #PB_Event_CloseWindow
MessageRequester("Сообщение","Да да надо повторить")
EndIf

If Event=#PB_Event_Gadget And Gadget=8
MessageRequester("Сообщение","Вы снова нажали на кнопку")
EndIf

If Event = #PB_Event_CloseWindow
Exit=1
EndIf
Until Exit=1
EndIf
End

Пётр пишет:

 цитата:
Гений Квитали подбросил мне инфу

Сейчас тоже гляну.

 цитата:
можно ещё "убивать" с помощью кнопки с черепом


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

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 283
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 28.06.07 13:48. Заголовок: Re:


Сейчас вот, готовлю третью часть учебника.
Уже написал две программки.
Одна из этих программ - конвертер чисел (HEX/DEC/BIN)
Получилась программа относительно небольшая, 32 строки.
Осталось только описать принцип их работы.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 284
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 28.06.07 14:06. Заголовок: Re:


vintik пишет:

 цитата:
Была прога по графике, на весь экран.

Тогда попробуй нажать на кнопку "AP2"
vintik пишет:

 цитата:
Игрался с кнопками и заметил

Всё совсем не так. Сообщение Предупреждение","Вы уверенны что хотите выйти появится только в том случае если будет в переменную Event, записанно число эквивалентное числу в константе #PB_Event_CloseWindow, а в данный момент там число эквиволентное константе #PB_Event_Gadget .


 цитата:
выводится ("Сообщение","Вы снова нажали на кнопку")

Потому что условие If Event=#PB_Event_Gadget And Gadget=8 выполняется.
Чуть позже, я переделаю эту программу так чтобы было как задумано.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 190
Зарегистрирован: 26.12.06
Откуда: Одесса
Рейтинг: 0
ссылка на сообщение  Отправлено: 28.06.07 15:31. Заголовок: Re:


Прочитал статью про ЛРТпорт, былобы здорово, если бы ее реределать под пурик.
Заглянул в BIOS у меня выставлено так:
I/O Device Configuration 
--------------------------------------------------
Parallel port: Disabled
v Enabled
Auto
--------------------------------------------------
Mode: Output only
Bi – directional
EPP
v ECP
--------------------------------------------------
Base I/O address: v 378
278
--------------------------------------------------
Interrupt: v IRQ 7
--------------------------------------------------
DMA channel: v DMA1
DMA3
--------------------------------------------------
 
EPP режим есть, и порт может работать на прием и на передачу.
С окошками еще разбираюсь, так что сильно не "гони лошадей"
Информация находится во взвешенном состоянии, и нужно немного времени, чтобы все "устаканилось"

ЗЫ: Что то не получилось красиво вывести таблицу с BIOSa

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 191
Зарегистрирован: 26.12.06
Откуда: Одесса
Рейтинг: 0
ссылка на сообщение  Отправлено: 28.06.07 15:52. Заголовок: Re:


Таблица из ВОРДа всавляется не корректно, после блокнота ставится нормально
По окошкам, не совсем понял,
где выполняются окошки из программы, а где с винды(хрюши).
Получается, что MessageRequester("Сообщение","Была нажата кнопка") , это
"хрюшино" окошко???
Ведь мы нигде не задавали ни координат нового окна ни кнопок. Только название окна и
текст в окне.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 285
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 28.06.07 17:33. Заголовок: Re:


Пётр пишет:

 цитата:
Чуть позже, я переделаю эту программу так чтобы было как задумано.


Переделал.
Давай разберёмся, почему код работает не так как нужно?
Всё дело в том что в пределах одного цикла располагаются несколько операторов If с одинаковыми условиями. По этой причине происходит не то что было задумано.
Например, за один виток цикла встречаются 4 одинаковых строки If Event = #PB_Event_CloseWindow и если в переменной Event будет число эквивалентное константе #PB_Event_CloseWindow, код между оператором If и завершающим его оператором EndIf будет выполнен.

Для того чтобы программа в этой ситуации работала как надо, следует организовать счётчик, который будет считать количество нажатий на кнопку и уже в зависимости от результата в этом счётчике, выводить нужное сообщение.
программа должна выглядеть так:
Скрытый текст


Теперь разберёмся что и как работает.
Перед оператором начала цикла Repeat мы присваеваем переменным knopka и closeclose нулевые значания. Это будущие счётчики.

После того как будет нажата кнопка и в строке If Event=#PB_Event_Gadget And Gadget=8 условие будет выполнено, проверяется равна ли переменная нулю. Если да (т. е. это первое нажатие на кнопку) выводится сообщение "Была нажата кнопка" и присваевается переменной knopka значение 1. При последующих нажатиях на эту кнопку, условие If knopka=0 уже не выполняется, поскольку в этой переменной находится число 1 и появится сообщение расположенное после оператора Else.

Примерно тоже самое нужно сделать и с кнопкой "закрыть окно", но поскольку там несколько сообщений, выгоднее использовать не операторы If EndIf а Select Case EndSelect.
Работают эти операторы следующим образом:
Оператор Select запоминает значение переменной (в данном случае это close ), далее это значение поочерёдно сравнивается в операторах Case. Если будет совпадение числа в переменной с числом в одном из операторов Case, будет выполнен код расположеный после этого оперетора и до следующего оператора.
Например, если в переменной число 1, будет выполнен этот код:
MessageRequester("Сообщение","Тогда нажмите на красный крестик?")
close=close+1


вторая строчка этого кода увеличивает значение в переменной на единицу Т. Е. прикаждом нажатии на "крестик" в заголовке окна, будет увеличиватся число в переменной close и будет выполнен код, сначала после Case 0 потом после Case 1 и т. д. Когда в переменной окажется число 3, переменной Exit будет присвоено значение 1 и приграмма закроется.


Насчёт MessageRequester это окно создаёт система. Нужно оно в основном для вывода сообщений. У этой функции есть ещё и флаги
#PB_MessageRequester_YesNo - кнопки да, нет
#PB_MessageRequester_YesNoCancel - кнопки да, нет, отмена
#PB_MessageRequester_Ok - кнопка Ок

Есть ещё флаги
#MB_ICONERROR
#MB_ICONQUESTION
#MB_ICONWARNING
#MB_ICONINFORMATION


Можно например эту функцию записать так:
MessageRequester("Сообщение","Тогда нажмите на красный крестик?",#PB_MessageRequester_Ok|#MB_ICONWARNING )
Должено быть только по одину флагу из первого и второго списка или только из первого списка!
Подробнее можно узнать из справки, в разделе Requester есть описание этой функции.

vintik пишет:

 цитата:
былобы здорово, если бы ее реределать под пурик

Там же есть пример, файл UsingPrinterPort.pb
С его помощью, удалось "поморгать" светодиодами в программаторе.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 194
Зарегистрирован: 26.12.06
Откуда: Одесса
Рейтинг: 0
ссылка на сообщение  Отправлено: 28.06.07 18:21. Заголовок: Re:


Пётр пишет:

 цитата:
Там же есть пример


А что в окошко писать? И что за кнопки, (немецкого переводчика нет).
Вроде светодиодов, как и выходов (D0-D7)должно быть 8, а в окошко входит только 7цифр.


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 286
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 28.06.07 18:48. Заголовок: Re:


vintik пишет:

 цитата:
А что в окошко писать

Один байт в десятичном формате (0-255) записывать следует в правое окошко и нажимать под ним кнопку.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 196
Зарегистрирован: 26.12.06
Откуда: Одесса
Рейтинг: 0
ссылка на сообщение  Отправлено: 28.06.07 22:30. Заголовок: Re:


Пётр пишет:

 цитата:
есть пример, файл UsingPrinterPort.pb


Похоже, что в (UsingPrinterPort.pb) что то не так.
Вот эта строчка:
If OpenLibrary(0, "INPOUT32.DLL")
должна высветить гдето надпись "INPOUT32.DLL", а нигде этого не происходит.
И такого текста, пол программы.
А DLL, вытащил из паки, и никаких тебе ошибок, как будто к ней никто и не обращался.


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 287
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 29.06.07 11:24. Заголовок: Re:


vintik пишет:

 цитата:
должна высветить где-то надпись "INPOUT32.DLL"

Функция OpenLibrary открывает динамическую библиотеку для последующего использования её подпрограмм. Никакой надписи она не выводит. Можешь посмотреть описание этой функции в разделе Library справки.

vintik пишет:

 цитата:
А DLL, вытащил из паки, и никаких тебе ошибок

А вот это действительно странно!
Поиск библиотек эта функция осуществляет следующим образом:
Сначала производится поиск в той же папке где EXE-шник, а если там отсутствует требуемый файл, он ищется в системной папке (System32). Только я там этот файл тоже не нашёл.
Сейчас спрошу об этом на форуме


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 197
Зарегистрирован: 26.12.06
Откуда: Одесса
Рейтинг: 0
ссылка на сообщение  Отправлено: 29.06.07 11:31. Заголовок: Re:


Поискал у себя, нашел:
C:\WINDOWS\system32

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 288
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 29.06.07 11:41. Заголовок: Re:


А у меня пишет "Поиск не дал результатов".

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 198
Зарегистрирован: 26.12.06
Откуда: Одесса
Рейтинг: 0
ссылка на сообщение  Отправлено: 29.06.07 12:03. Заголовок: Re:


У меня очевидно установилось с какойто программой. Специально не ставил.
Ктати, поищи эту дллку и попадеш в интересную папку, с кучей программ под
СОМ и LPT

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 289
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 29.06.07 13:27. Заголовок: Re:


vintik пишет:

 цитата:
У меня очевидно установилось с какойто программой

Скорее всего так и было.
Если я убираю ДЛЛ-ку из папки, появляется сообщение что она отсутствует. Вчера оно не появлялось только потому что эта ДЛЛ-ка была загружена в память.
vintik пишет:

 цитата:
попадеш в интересную папку, с кучей программ под
СОМ и LPT

А где искать то?

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 199
Зарегистрирован: 26.12.06
Откуда: Одесса
Рейтинг: 0
ссылка на сообщение  Отправлено: 29.06.07 13:35. Заголовок: Re:


Пётр пишет:

 цитата:
А где искать то?


CodeArchiv



Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 290
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 29.06.07 13:56. Заголовок: Re:


КодАрхив настолько большой, что не всегда можно найти то что нужно.
Вот сейчас посмотрел, есть нужные исходники.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 200
Зарегистрирован: 26.12.06
Откуда: Одесса
Рейтинг: 0
ссылка на сообщение  Отправлено: 29.06.07 14:13. Заголовок: Re:


CodeArchiv_v4-Beta.zip/Input+Output/Ports/inpout32.dll
Или сразу включить поиск inpout32.dll.

Хотел на кнопке изменить цвет надписи, посбивал все колени, нашел
SetGadgetColor(1, #PB_Gadget_FrontColor, $FFFF00)
но как прилепить...
Скрытый текст


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 292
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 29.06.07 14:56. Заголовок: Re:


На обычной кнопке изменить цвет нельзя (по крайней мере с помощью функций "пурика").
В самом низу описания функции SetGadgetColor есть список поддерживаемых гаджетов, ButtonGadget туда не входит.
При использовании строки
SetGadgetColor(1, #PB_Gadget_FrontColor, $FFFF00) должно появиться сообщение об ошибке а сама строка окрасится в красный цвет.
Почему так происходит?
Всё дело в том, что функции начинающиеся с Get или Set - это функции считывающие и записывающие информацию в гаджеты. В них в качестве идентификатора, следует указать тот, что у требуемого гаджета, т. е. должна быть цифра 8.
Это касается всех функций начинающихся с Get или Set из раздела Gadget

Строка должна быть такой:
SetGadgetColor(8, #PB_Gadget_FrontColor, $FFFF00)
Теперь ошибки не будет, но цвет на кнопке всё равно будет чёрным.


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 293
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 29.06.07 15:05. Заголовок: Re:


vintik пишет:

 цитата:
;SetGadgetColor(1, #PB_Gadget_FrontColor, $FFFF00) ;Как эту строчку прилепить?

Замени идентификатор 1 на 0. Поскольку собираешься изменять цвет текста в гаджете StringGadget, а у него идентификатор 0 т. е. нужно указать в каком гаджете следует цвет менять.


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 294
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 29.06.07 18:01. Заголовок: Re:


vintik пишет:

 цитата:
Хотел на кнопке изменить цвет надписи, посбивал все колени, нашел
SetGadgetColor(1, #PB_Gadget_FrontColor, $FFFF00)

Вижу, начал гаджеты осваивать. Чтобы помочь, "слепил" такой код:
Скрытый текст


Эта программа складывает два числа. Пользоваться ней очень просто, следует ввести два числа и нажать на кнопку "Равно".

Работает она следующим образом:
В самом начале, объявляются дле переменные строкового типа, т. е. к имени переменной просто добавляется тип, в данном случае это ".s" означающий что это строковая переменная и в ней в последствие будет хранится строка текста.
Далее открывается окно.
После чего создаются 5 гаджетов.
StringGadget - поле для ввода текста, таких гаджета два.
TextGadget - Гаджет, отображающий текст в окне.
ButtonGadget - кнопка

Синтаксис у них одинаков за исключением флагов.
Первый параметр - уникальный идентификатор.
Второй и третий параметр - координаты гаджета относительно окна.
Четвёртый и пятый параметр - ширина и высота гаджета.
Шестой параметр - Текст в кавычках или переменная строкового типа.

Так чтоже происходит после нажатия кнопки "Равно"?
В двух словах, считывается информация из двух полей для ввода текста, потом складывается и записывается в TextGadget с идентификатором 4.

Теперь разберёмся более подробно как это происходит.

Нам нужно прочитать информацию из StringGadget, открываем в справке раздел Gadget и ищем описание этой функции. Смотрим, информацию можно прочитать с помощью GetGadgetText. Переходим по гиперссылке на описание этой функции. Она требует указать идентификатор гаджета с которого требуется считать информацию, вот только она возвращает результат в виде текста.
Приехали!!
Если мы попытаемся складывать строковые переменные, то получится не то что нам нужно!
Значит, перед тем как складывать, следует преобразовать стороковые данные в числовые. Послольку нам предстоит работать со строкой, переходим в раздел String справки. Ищем там функцию, преобразующую текст в число.
Это делает функция Val.
Считываем текст из двух полей и преобразовываем этот текст в число.
Далее мы эт два числа складываем, после чего выводим результат. Его записываем в TextGadget с идентификатором 4. Смотрим описание этой функции. Для того чтобы поместить туда какую либо информацию, нужно использовать функцию SetGadgetText, тоько вот записать туда можно строку а не число, значит это число следует преобразовать в строку текста. Функцию выполняющую это преобразование ищем в разделе String справки. Нам подходит Str.
После преобразования, записываем информацию.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 202
Зарегистрирован: 26.12.06
Откуда: Одесса
Рейтинг: 0
ссылка на сообщение  Отправлено: 29.06.07 20:30. Заголовок: Re:


Пётр пишет:

 цитата:
Чтобы помочь, "слепил" такой код:


Да, так все поня тно...

Так что, надо весь "хелр" перевести
Или ставить конкретную задачу, потом искать приблизительно похожие примеры в исходниках
Пока в голове сплошная муть.
Откуда было бы мне узнать, что

 цитата:
перед тем как складывать, следует преобразовать стороковые данные в числовые


что "пурик" их не различает.
Что-то не могу найти методики поиска ответов




Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 295
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 29.06.07 21:50. Заголовок: Re:


vintik пишет:

 цитата:
перед тем как складывать, следует преобразовать стороковые данные в числовые

Дело в том что если выполнить сложение строковых данных, например, "2"+"3", получится "23", а это не то что нужно.

vintik пишет:

 цитата:
Пока в голове сплошная муть.

Когда я "въежал" в "пурик" тоже сложно было, учился на собственых ошибках. Но как только понял суть языка, стало намного проще.

vintik пишет:

 цитата:
Или ставить конкретную задачу

Так следует делать, по крайней мене в начале, потом проще будет.

vintik пишет:

 цитата:
Так что, надо весь "хелр" перевести

Так я в начале и делал. Очень сложно. Прерводил с помощью "Сократ интернет 3.0" и записывал в тетрадь. А потом понял, что без практики это делать почти бесполезно. Забросил тетрадь, начал ставить перед собой конкретную задачу и выполнять её.
Первая программа которую я написал - конвертер для HD44780. Когда писал эту программу, хелп изрядно "перелопатил" но урок получил хороший. Чем больше писал программ, тем проще было, сложно было только в начале.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 205
Зарегистрирован: 26.12.06
Откуда: Одесса
Рейтинг: 0
ссылка на сообщение  Отправлено: 30.06.07 12:16. Заголовок: Re:


Пётр пишет:

 цитата:
Но как только понял суть языка, стало намного проще.


Вот-вот, нужно чтобы полученная информация нашла свои полочки в моем скворешнике
А то пока все в куче.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 298
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 03.07.07 16:19. Заголовок: Re:


А что, кроме Андрея никто больше не планирует писать программы для компьютера?
Может Вас не устраивает язык PureBasic?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 138
Зарегистрирован: 26.12.06
Откуда: Россия, Заозерск, Мурманской обл.
Рейтинг: 1
ссылка на сообщение  Отправлено: 03.07.07 20:17. Заголовок: Re:


Устраивает. Массу информации переварить довольно трудно...

Удивление рождает жажду познания... Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 115
Зарегистрирован: 03.01.07
Откуда: Россия, Рассказово Тамбовская обл
Рейтинг: 0
ссылка на сообщение  Отправлено: 03.07.07 20:22. Заголовок: Re:


Ага, Лето. Ничего не успеваю.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 299
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 03.07.07 21:35. Заголовок: Re:


Завтра продолжу писать "Учебник..."

PS.
Я за это время сделал конвертер систем исчисления, он войдёт в следующую версию AsmEditor'а
Он отличается от BCONV32.exe тем что позволяет работать 7-мю байтами и преобразует также двоичные числа.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 207
Зарегистрирован: 26.12.06
Откуда: Одесса
Рейтинг: 0
ссылка на сообщение  Отправлено: 03.07.07 22:12. Заголовок: Re:


Обьемы инфы действительно большие
Нашел еще по ЛПТ порту программы, но времени тестировать нет.
Скрытый текст


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 8
Info: Настороженное
Зарегистрирован: 05.03.07
Откуда: Шуя
Рейтинг: 0
ссылка на сообщение  Отправлено: 09.07.07 19:19. Заголовок: Re:


Наверное, мое мнение здесь…
В общем, большинство людей пока не готовы приступить к изучению пурика. Ведь они сейчас читают разделы самоучителя и не могут отвлекаться на такие глобальные темы. Но это совсем не значит, что им не интересно, прейдет время и труды Петра окажут им бесценную помощь. Просто не все сразу. А пока для большинства работа Петра это уровень, к которому стремишься. Лично для меня подключение самодельного устройства к компьютеру это горизонт мечтаний, и в тоже время стимул который тянет вперед.


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 203
Зарегистрирован: 12.02.07
Откуда: Argentina, Lincoln
Рейтинг: 1

Награды: Отлично!',
ссылка на сообщение  Отправлено: 23.07.07 19:47. Заголовок: Re:


MAZ пишет:

 цитата:
Ага, Лето. Ничего не успеваю.


везет же людям, а у нас зима... но тоже не успеваю. А за двумя зайцами погонишься... Но тема очень актуальная. В принципе все понятно, вот только руку набить нужно. И здесь я с Петром полностью согласен: нужна конкретная задача и уже от нее плясать: легче искать пути к цели пусть и далекой, и в тумане, чем просто тыкаться влево-вправо.
vintik пишет:

 цитата:
Откуда было бы мне узнать, что... стороковые данные... и числовые "пурик" их не различает.


тут бы очень помогла любая книжка по Бейсику, можно и N-летней давности. Я в свое время писал программы на Клиппере (еще под ДОС), некоторые вещи понятны только потому что я уже прошел через это. Гляну есть ли у меня литература по Бейсику. Основы они и в Африке основы.

Не ошибается только тот, кто ничего не делает. Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 304
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 23.07.07 21:34. Заголовок: Re:


Alberto пишет:

 цитата:
везет же людям, а у нас зима...

Ещё неизвестно кому повезло.
У меня уже больше недели термометр зашкаливает за 40 градусов в тени.
На солнце примерно +60


Alberto пишет:

 цитата:
тут бы очень помогла любая книжка по Бейсику

Ага, есть у меня описания интерплетатора языка Бейсик для компьютера "Вектор 06Ц". Так там почти всё что касается функций работы со строками соответствует описанию аналогичных функций из раздела "String" справки пурика.
Подойдёт также описание Бейсика для компьютера "Радио 86РК", которое можно найти в журналах "Радио".


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 204
Зарегистрирован: 12.02.07
Откуда: Argentina, Lincoln
Рейтинг: 1

Награды: Отлично!',
ссылка на сообщение  Отправлено: 24.07.07 14:22. Заголовок: Re:


Пётр пишет:

 цитата:
уже больше недели термометр зашкаливает за 40 градусов в тени.


прошлым летом у нас больше месяца температура была под 45 градусов... а сейчас зима... впервые за 89 лет в наших широтах снег выпал, правда через пару часов растаял, но все-таки...
Пётр пишет:

 цитата:
описание Бейсика... в журналах "Радио".


а вот про это я и не подумал. Действительно хорошее подспорье.
На выходных хочу попробовать связать 877-ой ПИК с компом, так что ждите МНОГО вопросов .

Не ошибается только тот, кто ничего не делает. Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 305
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 24.07.07 16:45. Заголовок: Re:


Alberto пишет:

 цитата:
ждите МНОГО вопросов

Жду.
А пока скачайте библиотеку с функциями для работы с COM портом MVCOM_LIBRARYV12 и установите её.
Если нужно, вышлю исходник программы USART.exe (раздел 6_2_4 практикума). Правда, там всё так запутано я эту программу писал, когда только начал изучать PureBasic.

Если Вас заинтерисовал пурик (PureBasic), можете зайти на форум http://pbasic.spb.ru/phpBB2/index.php там найдёте очень много ответов на различные вопросы. Если бы не этот форум, я скорее всего так и не освоил пурик, ведь при малейшем затруднении, которое не мог решить самостоятельно, обращался туда и всегда получал ответ.

PS.
До связи компа с ПИКом, я дойду через несколько разделов.
Текущая тема - работа с файлами, затем планирую рассказать о подпрограммах и процедурах. После чего, рассказу как создавать меню. И уже после этого, перейду к связи компа с ПИКом.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 206
Зарегистрирован: 12.02.07
Откуда: Argentina, Lincoln
Рейтинг: 1

Награды: Отлично!',
ссылка на сообщение  Отправлено: 24.07.07 17:36. Заголовок: Re:


Библиотеку скачал... Исходник ОЧЕНЬ интересно посмотреть, буду благодарен.
Пока же есть один вопрос, хотел создать выпадающее меню, типа такого:

но вместо менюшки только тонкая черная линия, при щелчке по ней идет выборка, но... что не так?
Вот кусок кода:
ComboBoxGadget(#Combo_1, 130, 30, 80, 30, #PB_ComboBox_LowerCase) 

AddGadgetItem(#Combo_1, -1, "123")
AddGadgetItem(#Combo_1, -1, "234")
AddGadgetItem(#Combo_1, -1, "345")
AddGadgetItem(#Combo_1, -1, "567")
AddGadgetItem(#Combo_1, -1, "789")

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

Не ошибается только тот, кто ничего не делает. Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 207
Зарегистрирован: 12.02.07
Откуда: Argentina, Lincoln
Рейтинг: 1

Награды: Отлично!',
ссылка на сообщение  Отправлено: 24.07.07 18:16. Заголовок: Re:


Разобрался , у меня просто параметр Height был очень маленький (30) вот данные и не влазили . Поставил 100 и все пошло.

Не ошибается только тот, кто ничего не делает. Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 306
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 24.07.07 18:30. Заголовок: Re:


Похоже что всё правильно!
Хотелось-бы взглянуть на всю программу.
Вот набросал код
Скрытый текст



Исходник USART залил на 3 разных файлообменика, может хоть с одного скачаете.
http://ifolder.ru/2776026
http://webfile.ru/1477964
http://slil.ru/24660802

Я эту программу писал, когда только начал изучать пурик, так что там всё довольно сильно запутано нет комментариев. Это так для ознакомления.
Сообщите с какого файлообменника скачаете исходник и я туда через некоторое время залью этот исходник но уже с комментариями.


PS.
Возможно (уже точно не помню что использовал) при компиляции появиться сообщение, об ошибке, что то типа is not a function array macro or linked list. Для его устранения, установите библиотеки с функциями Droopy Library и PBOSL. Инструкция по установке есть в 4 разделе "Учебника...".


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 307
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 25.07.07 11:22. Заголовок: Re:


Начал разбираться с исходником USART и понял что толково объяснить работу программмы с помощью комментариев будет непросто.
Поэтому сделал более простой вариант. http://ifolder.ru/2783041 там есть исходник и скомпилированая программа (exe-шник)
На тот случай если не получится скачать, вылаживаю программу здесь Скрытый текст


Я эту программу разберу подробно в следующем разделе "Учебника..." поскольку ещё не рассказал о подпрограммах и процедурах.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 208
Зарегистрирован: 12.02.07
Откуда: Argentina, Lincoln
Рейтинг: 1

Награды: Отлично!',
ссылка на сообщение  Отправлено: 25.07.07 12:45. Заголовок: Re:


Скачал все. Правда на http://webfile.ru/1477964 похоже уже удалили. Два других файлообменника работают. Большое спасибо . То что запутано, так это не страшно: главное принцып, я вроде бы понял, но нужна проверка на реальном устройстве. Буду заниматься этим уже дома, на работе работа (извиняюсь) подвалила.
Пётр пишет:

 цитата:
Хотелось-бы взглянуть на всю программу.


вообще - то это калькулятор для расчета веса листовой стали. В двух окошках вводятся размеры, а в выпадающем меню выбирается толщина (американскя система мер, наверняка будет не совсем понятно), результат в кг отображается в своем окошке. Я ее еще не доделал: неправильно считываются данные (вернее привязка к весу: кг/м2) из выпадающего списка, но если интересно, то исходник здесь:
http://up-file.com/download/2ec119128094/calculator.zip.html
может закончу сегодня на работе (вроде понял в чем причина), если нет, то доделаю уже вечером дома. По правде говоря вещь не нужная, но мне больше нравится решать какую-то конкретную задачу, так проще если значешь чего хочешь. Хотя это лично мое мнение.

Не ошибается только тот, кто ничего не делает. Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 308
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 25.07.07 13:37. Заголовок: Re:


Посмотрел исходник прогресс большой!

Alberto пишет:

 цитата:
неправильно считываются данные (вернее привязка к весу: кг/м2)

Привязка есть, только вот при изменении пункта в выпадающем списке не происходит перерассчёт результата. Я немного изменил программу. Теперь рассчёт происходит в подпрограмме. Также немного доработал обработку событий от выпадающего списка.http://ifolder.ru/2784652

Alberto пишет:

 цитата:
мне больше нравится решать какую-то конкретную задачу, так проще если значешь чего хочешь. Хотя это лично мое мнение.

У меня такое же мнение.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 309
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 25.07.07 14:19. Заголовок: Re:


Alberto пишет:

 цитата:
главное принцип, я вроде бы понял

Чтобы Вы не наступили на "грабли" при приёме байта от контроллера, расскажу об одной особенности. Если код, принимающий инфу от порта, поместить внутрь цикла Repeat - Until, можно наблюдать такую картину: информация принимается только когда перемещаете курсор (стрелку) мышки в пределах окна этой программы, а когда курсор за пределами окна информация не принимается!
Это происходит потому что рабочая точка программы находится внутри функции WaitWindowEvent до тех, пока не произойдёт в программе какое-либо событие.
Для того чтобы можно было принимать информацию из порта, следует соответствующий код поместить в процедуру, которую будем вызывать по таймеру.
Чтобы проще было понять, представьте что эта процедура вызывается от прерываний аппаратного таймера аналогично ПП прерываний от TMR0 у ПИКа.

Таймер создаётся с помощью функции SetTimer_, а уничтожается с помощью KillTimer_. Это API функции на что указывает нижний пробел ("_"), таких функций в языке PureBasic нет!

Синтаксис у них таков:
SetTimer_(Windowid , Number , time , @Procedure() )
Windowid - Системный идентификатор окна
Number - Номер таймера, используется для его последующего отключения
time - Время в миллисекундах через которое будет вызываться процедура
Procedure() - Имя процедуры. Собачка обязательно должна быть!

KillTimer_(Windowid , Number)
Windowid - Системный идентификатор окна
Number - Номер таймера, который следует отключить.

Обычно функцию KillTimer_ помещают перед директивой end


Есть и другие функции создающие таймер. Например, в программе USART были использованы функции StartTimer и EndTimer из библиотеки с функциями PBOSL



Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 210
Зарегистрирован: 12.02.07
Откуда: Argentina, Lincoln
Рейтинг: 1

Награды: Отлично!',
ссылка на сообщение  Отправлено: 25.07.07 14:31. Заголовок: Re:


Привязка есть, но она неправильная. И то что перерасчет не производится при выборе пункта из выпадающего меню тоже верно, но это на потом.
Пётр пишет:

 цитата:
Я немного изменил программу.


пока что не смотрел (хочу дойти сам, а вечером посмотрю: чужой опыт великая сила), но переделал свою программу, правда пока что без перерасчета, но привязка правильная. Теперь все работает как надо:
http://up-file.com/download/2ec119753486/calculator.zip.html
Спасибо за советы и реальную помощь . Теперь надо добавить пунктик выбора типа стали: гальванизированная, черная, перерасчет при выборе из выпадающего списка и будет то, что я и хотел сделать. Вечером займусь детальным въездом в программу USART.
Еще раз спасибо.

Не ошибается только тот, кто ничего не делает. Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 310
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 25.07.07 15:47. Заголовок: Re:


Насколько я понял в полях Largo и Ancho можно вводить только цифры. Тогда добавте к StringGadget где будут вводиться цифры, флаг #PB_String_Numeric, а то в данном случае можно вводить и буквы тоже.

Например так
StringGadget(#String_0, 130, 80, 90, 20, "",#PB_String_Numeric)
StringGadget(#String_1, 130, 120, 90, 20, "",#PB_String_Numeric)

Ещё могу порекомендовать включить стиль XP. Для этого загрузите исходник в компилятор и в меню "Компилятор" выберите "Настройки компилятора". В открывшемся окне, поставте галочку в пункте "Поддержка стиля XP".

Если Вы хотите чтобы стиль XP был установлен по умолчанию для всех создаваемых исходников, вменю "файл" выберите пункт "настройки". В открывшемся окне, откройте список "Редактор" и перейдите на пункт "по умолчанию". Там поставьте галочку в пункте "Поддержка стиля XP".

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 211
Зарегистрирован: 12.02.07
Откуда: Argentina, Lincoln
Рейтинг: 1

Награды: Отлично!',
ссылка на сообщение  Отправлено: 25.07.07 16:22. Заголовок: Re:


Пётр пишет:

 цитата:
могу порекомендовать включить стиль XP


хорошая идея, я про это не подумал
Пётр пишет:

 цитата:
огда добавте к StringGadget где будут вводиться цифры, флаг #PB_String_Numeric


а про это просто забыл.
Спасибо.

Не ошибается только тот, кто ничего не делает. Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 213
Зарегистрирован: 12.02.07
Откуда: Argentina, Lincoln
Рейтинг: 1

Награды: Отлично!',
ссылка на сообщение  Отправлено: 25.07.07 23:25. Заголовок: Re:


Пётр, вопрос к Вам, как к единственному профи по Бейсику, как запретить изменение размера окна? Где-то видел, а сейчас все перерыл, не могу найти...

Не ошибается только тот, кто ничего не делает. Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 311
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 26.07.07 10:34. Заголовок: Re:


Alberto пишет:

 цитата:
как запретить изменение размера окна?

Для того чтобы запретить изменение размера окна с помощью курсора мыши (когда подводите курсор к краю окна, он превращается в двойную стрелку и если нажать на кнопку мышки, то можно изменять размер окна), следует убрать флаг #PB_Window_SizeGadget из функции OpenWindow.

Alberto пишет:

 цитата:
как к единственному профи по Бейсику

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

Всё забывал написать.
Есть в пурике одна хитрость, которая позволит быстрее его изучить.
Предположим, встретилась функция, назначение которой Вам неизвестно. Чтобы не переворачивать на изнанку всю справку при поиске описания функции, можно сделать следующее: просто выделяете имя функции (например, ButtonGadget) и нажимаете на кнопку F1. При этом будет открыта справка с описанием этой функции.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 214
Зарегистрирован: 12.02.07
Откуда: Argentina, Lincoln
Рейтинг: 1

Награды: Отлично!',
ссылка на сообщение  Отправлено: 26.07.07 13:47. Заголовок: Re:


Пётр пишет:

 цитата:
следует убрать флаг


спасибо, Пётр, я уже вчера нашел сам. Еще раз все прсмотрел и... я искал флаг "запретить изменение размера окна", а надо было просто убрать флаг "разрешить..." . Ну, что сказать? Невнимательность... Все равно, спасибо.
Вчера же родилась и окончательная версия, кое-что взял из Вашего примера. Если интересно, то исходник здесь:
http://up-file.com/download/c73973402942/Calculator-1.zip.html
Пётр пишет:

 цитата:
Есть в пурике одна хитрость


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

Не ошибается только тот, кто ничего не делает. Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 312
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 26.07.07 14:16. Заголовок: Re:


Alberto пишет:

 цитата:
исходник

Хорошая работа!
Вы очень быстро осваиваете PureBasic, рад за Вас!

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 313
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 27.07.07 14:59. Заголовок: Re:


Пётр пишет:

 цитата:
Я эту программу разберу подробно в следующем разделе "Учебника..." поскольку ещё не рассказал о подпрограммах и процедурах.

Ну вот, с подпрограммами и процедурами закончил.
Теперь можно и за обмен информацией с ПИКом взятся.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 215
Зарегистрирован: 12.02.07
Откуда: Argentina, Lincoln
Рейтинг: 1

Награды: Отлично!',
ссылка на сообщение  Отправлено: 27.07.07 18:35. Заголовок: Re:


Пётр пишет:

 цитата:
Поэтому сделал более простой вариант.


Разобрался с программой COM.pb, там настолько все подробно расписано, что другого описание просто и не нужно. Здорово. Правда остался один вопрос (я не силен в API-функциях): перед выходом из программы нужно убивать таймер (ведь порт же мы зачем-то закрываем) может ли таймер продолжать работать после закрытия программы? Я на всякий случай вписал команду KillTimer_(WindowID(0),0) перед командой end.

Не ошибается только тот, кто ничего не делает. Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 314
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 27.07.07 21:25. Заголовок: Re:


Alberto пишет:

 цитата:
Я на всякий случай вписал команду KillTimer_(WindowID(0),0) перед командой end.

И правильно сделали. Это я просто забыл эту функцию туда добавить.

Alberto пишет:

 цитата:
я не силен в API-функциях

Да я тоже в них не очень разбираюсь. Кое что можно узнать здесь. http://pbasic.spb.ru/phpBB2/viewtopic.php?t=24&sid=c81d2d35a20bb1864c7823be048b47bd

Alberto пишет:

 цитата:
может ли таймер продолжать работать после закрытия программы

Скорее всего нет, компилятор за всем этим следит.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 325
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 03.08.07 09:06. Заголовок: Re:


Пётр пишет:

 цитата:
Теперь можно и за обмен информацией с ПИКом взятся

Этот раздел тоже закончил, теперь жду вопросов.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 218
Зарегистрирован: 12.02.07
Откуда: Argentina, Lincoln
Рейтинг: 1

Награды: Отлично!',
ссылка на сообщение  Отправлено: 06.08.07 21:14. Заголовок: Re:


Работа завалила, продохнуть некогда... , все планы коту под хвост .............

Не ошибается только тот, кто ничего не делает. Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 214
Зарегистрирован: 26.12.06
Откуда: Одесса
Рейтинг: 0
ссылка на сообщение  Отправлено: 06.08.07 23:24. Заголовок: Re:


Alberto пишет:

 цитата:
Гляну есть ли у меня литература по Бейсику. Основы они и в Африке основы.


Очень помогло бы, может ссылки на электронные варианты книг?

Петр, если есть инфа по основам, то тоже выложи пожалуйста.
Согласитесь, лопатить кучу литературы, а потом выяснить, что гдето есть
лучше и доходчивей...

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 326
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 07.08.07 10:28. Заголовок: Re:


vintik пишет:

 цитата:
Петр, если есть инфа по основам

К сожалению инфы на русском по Пурику очень мало.
Кое что здесь найти можно, только там очень мало инфы и она для версии PB 2.90, а у нас PB 4.0

Все дело в том, что непопулярен у нас бейсик. Все пишут на Си или Дельфи.
Я вот на одним форуме видел что некоторые люди до сих пор считают бейсик интерплитатором и что на нём ничего толкового не напишешь. Это далеко не так. Конечно, Пурик уступает по возможностям Си и Дельфи, но его можно быстрее изучить. Скорость работы созданых с его помощью приложений не уступает таким же программам написаным на Си и во много раз превосходит программы написаные на Дельфи
У нас ещё это не "пронюхали", а вот за бугром уже многие на Пурик начали преходить.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 215
Зарегистрирован: 26.12.06
Откуда: Одесса
Рейтинг: 0
ссылка на сообщение  Отправлено: 07.08.07 12:54. Заголовок: Re:


Пётр пишет:

 цитата:
Кое что здесь найти можно


Эта ссылка уже выставлялась, но всеравно спасибо.
Из тех материалов, что мне попадались выходит, что с ЛПТ портом на прямую не
поработаеш, а СОМ порта у меня нет.
По этому тяга, в этом направлении несколько поубавилась.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 327
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 07.08.07 13:33. Заголовок: Re:


vintik пишет:

 цитата:
Из тех материалов, что мне попадались выходит, что с ЛПТ портом на прямую не
поработаешь,

Почему же можно, только проще работать через файл inpout32.dll.
В принципе в этом не ничего очень сложного. Через некоторое время выложу исходник и объясню как он работает.
Только вот полноценный COM на LPT реализовать трудно, мешает этому многозадачность Винды. Нужно будет у проги ставить высокий приоритет или приоритет реального времени.
Что не есть хорошо.



Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 328
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 07.08.07 14:30. Заголовок: Re:



 цитата:
Очень помогло бы, может ссылки на электронные варианты книг?


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

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 330
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 07.08.07 17:48. Заголовок: Re:


http://webfile.ru/1490952
http://ifolder.ru/2925080
http://slil.ru/24711921

На этих файлообмениках можно найти пример обмена информацией через LPT1.
В исходнике 4 процедуры.
Процедура OpenInpOut32() открывает ДЛЛ-ку. Её следует вызывать перед работой с портом.
Процедура CloseInpOut32() закрывает ДЛЛ-ку. Её следует вызывать когда порт больше не нужен, например, в конце программы.
Процедура InLPT считывает один байт с линий DATA0-DATA7.
Процедура OutLPT записывает один байт на линии DATA0-DATA7.



Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 218
Зарегистрирован: 26.12.06
Откуда: Одесса
Рейтинг: 0
ссылка на сообщение  Отправлено: 07.08.07 17:51. Заголовок: Re:


Пётр пишет:

 цитата:
На русском языке инфу найти будет сложно,


Понятно, что за меня никто это не сделает

Р.С. Эх... Так хорошо было в отпуске...
Ладно, еще раз спасибо, пошел сгребать себя в кучу
Через пару дней в "рабство" опять на год

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 331
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 08.08.07 11:06. Заголовок: Re:


Пётр пишет:

 цитата:
пример обмена информацией через LPT1

Несколько часов не мог понять почему инфа в порт поступает а из порта нет.
Оказалось, что паралельный порт не поддерживает EPP


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 222
Зарегистрирован: 26.12.06
Откуда: Одесса
Рейтинг: 0
ссылка на сообщение  Отправлено: 08.08.07 12:37. Заголовок: Re:


Пётр пишет:

 цитата:
не поддерживает EPP


Не ругайся
EPP это как..., или что?

При написании программы работы с портом ЛПТ, потом нужно отдельно ставить
драйвер для порта. Тоесть, имея программу нужно чтобы этот драйвер был вместе с ней.
В противном случае, при переустановке системы (винХП), этот драйвер теряется и программа
перестает работать.
Получается, что в отличии от СОМ, для ЛПТ нужен воз и еще маленькая тележка

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 332
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 08.08.07 13:18. Заголовок: Re:


Пётр пишет:

 цитата:
Несколько часов не мог понять почему инфа в порт поступает а из порта нет.

Что-то я перепутал. Нужно читать так:
Несколько часов не мог понять почему инфа из порта поступает во внешнее устройство а в порт непоступает.

vintik пишет:

 цитата:
EPP это как..., или что

Это режим работы порта.
Его можно задать в BIOS.
В моём компе есть два LPT порта. Один на ISA плате разширения, другой на системной плате. Так вот, тот что на плате разширения не поддерживает на аппаратном уровне режим EPP. А может и поддерживает, только на плате куча перемычек, попробуй определи какая для чего.

vintik пишет:

 цитата:
При написании программы работы с портом ЛПТ, потом нужно отдельно ставить
драйвер для порта

Для работы с LPT портом в качестве драйвера используется файл inpout32.dll. Причём он может быть как в системной папке, так и в папке с программой (без разницы). Можно сделать ещё круче. Берём этот файл, помещаем в тело программы, и при каждом запуске программы проверяем есть ли в системной папке файл inpout32.dll. Если его там нет, просто извлекаем из программы его и помещаем в системную папку.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 223
Зарегистрирован: 26.12.06
Откуда: Одесса
Рейтинг: 0
ссылка на сообщение  Отправлено: 08.08.07 13:31. Заголовок: Re:


Пётр пишет:

 цитата:
Берём этот файл, помещаем в тело программы, и при каждом запуске программы проверяем есть ли в системной папке файл inpout32.dll. Если его там нет, просто извлекаем из программы его и помещаем в системную папку.


Так это совсем другое дело
На сколько понял, прога и inpout32.dll, будет одно целое -исполняемый файл хххх.ехе???

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 333
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 08.08.07 13:48. Заголовок: Re:


vintik пишет:

 цитата:
На сколько понял, прога и inpout32.dll, будет одно целое -исполняемый файл хххх.ехе???

Да.

PS.
Сейчас готовлю 7 раздел учебника. В нём расказу о обмене инфой через LPT.


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 241
Зарегистрирован: 26.12.06
Откуда: Одесса
Рейтинг: 0
ссылка на сообщение  Отправлено: 09.08.07 21:43. Заголовок: Re:


Спасибо получили, теперь слепить схемку как нарисунке, со светодиодами?

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 334
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 10.08.07 11:47. Заголовок: Re:


vintik пишет:

 цитата:
теперь слепить схемку как нарисунке, со светодиодами?

Можно и ту схему слепить. Есть там ещё и схема с кнопками, её тоже сделать можно.

Вот это
 цитата:
Берём этот файл, помещаем в тело программы, и при каждом запуске программы проверяем есть ли в системной папке файл inpout32.dll. Если его там нет, просто извлекаем из программы его и помещаем в системную папку

я ещё не реализовал. Для этого сначала следует с файлами разобраться (это будет следующий раздел).


PS.
К сожалению, я пока ещё не доконца разобрался как LPT порт работает, поэтому и так мало инфы о порте.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 235
Зарегистрирован: 12.02.07
Откуда: Argentina, Lincoln
Рейтинг: 1

Награды: Отлично!',
ссылка на сообщение  Отправлено: 10.08.07 12:11. Заголовок: Re:


Пётр пишет:

 цитата:
не доконца разобрался как LPT порт работает


у меня где-то есть информация по LPT, на выходных поищу, и если интересно, то в понедельник могу скинуть.

Не ошибается только тот, кто ничего не делает. Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 337
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 10.08.07 16:36. Заголовок: Re:


Alberto пишет:

 цитата:
на выходных поищу, и если интересно

Интересно.
Я хочу подключить к порту м/с 24C64 и попробовать её прошить с помощью своей программы.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 245
Зарегистрирован: 26.12.06
Откуда: Одесса
Рейтинг: 0
ссылка на сообщение  Отправлено: 10.08.07 22:29. Заголовок: Re:


Alberto пишет:

 цитата:
у меня где-то есть информация по LPT


Да конечно интересно, есть идея, управлять, (тактировать драйверы) шаговыми двпгателями.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 338
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 1
ссылка на сообщение  Отправлено: 11.08.07 10:52. Заголовок: Re:


Пётр пишет:

 цитата:
Берём этот файл, помещаем в тело программы, и при каждом запуске программы проверяем есть ли в системной папке файл inpout32.dll

Если скопировать этот код в программу LPT.pb то больше не понадобится тащить файл inpout32.dll. Скрытый текст

Помесить его следует в самое начало программы, просто скопировать.
При компиляции программы, файл inpout32.dll должен быть обязательно в одной папке с исходником. При этом, EXE-ник будет содержать в себе ДЛЛ-ку.
При каждом запуске, проверяться наличие файла inpout32.dll в системной папке (C:\WINDOWS\System32) и если его там не окажется, программа спросит Вас, установить его или нет.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 248
Зарегистрирован: 12.02.07
Откуда: Argentina, Lincoln
Рейтинг: 1

Награды: Отлично!',
ссылка на сообщение  Отправлено: 13.08.07 12:10. Заголовок: Re:


Alberto пишет:

 цитата:
у меня где-то есть информация по LPT


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

Не ошибается только тот, кто ничего не делает. Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 211
Зарегистрирован: 26.12.06
Откуда: Россия, Заозерск, Мурманской обл.
Рейтинг: 1
ссылка на сообщение  Отправлено: 17.08.07 19:02. Заголовок: Re:


Петр, здравствуйте. У меня к Вам вопрос: не смогли бы Вы в Pure Basic написать программу, аналогичную программе Марова Николая Андреевича "Pause"? Я очень часто пользуюсь этой программой (думаю, что и не только я), и очень благодарен ему за неё! Хотелось-бы, чтобы в программе была возможность формировать код задержки не только в машинных циклах, но и формировать код по необходимому времени задержки в сек, мс, мкс, с возможность самому выбирать тактовую частоту используемого процессора вплоть до 20 МГц. Я писал письмо Марову Николаю, но он сообщил, что пока нет времени.

Удивление рождает жажду познания... Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 339
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 2
ссылка на сообщение  Отправлено: 18.08.07 17:49. Заголовок: Re:


RW1ZK пишет:

 цитата:
не смогли бы Вы в Pure Basic написать программу, аналогичную программе Марова Николая Андреевича "Pause"

Ничего не обещаю но постараюсь.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 345
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 2
ссылка на сообщение  Отправлено: 20.08.07 17:08. Заголовок: Re:


RW1ZK пишет:

 цитата:
Вам вопрос: не смогли бы Вы в Pure Basic написать программу, аналогичную программе Марова Николая Андреевича "Pause"

Может для начала подойдёт простенький калькулятор, преобразующий частоту кварца и количество секунд в машинные циклы? А то начал я с этими задержками разбираться и наступил на "грабли".

Теперь об "Уроках программирования на PureBasic".
Судя по всему не всё понятно что я объяснял, возможно за это время скопилось много вопросов. Поэтому задавайте любые вопросы.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 215
Зарегистрирован: 26.12.06
Откуда: Россия, Заозерск, Мурманской обл.
Рейтинг: 1
ссылка на сообщение  Отправлено: 20.08.07 18:10. Заголовок: Re:


Пётр пишет:

 цитата:
...Может для начала подойдёт простенький калькулятор...

А куда деваться? Конечно подойдёт... Правда лишние промежуточные операции...

Удивление рождает жажду познания... Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 347
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 2
ссылка на сообщение  Отправлено: 21.08.07 17:51. Заголовок: Re:


Пётр пишет:

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

Вот Beta версия калькулятора. только что закончил.
http://ifolder.ru/3066138
Здесь пока можно вводить только целые числа.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 219
Зарегистрирован: 26.12.06
Откуда: Россия, Заозерск, Мурманской обл.
Рейтинг: 1
ссылка на сообщение  Отправлено: 21.08.07 18:09. Заголовок: Re:


Сейчас пощупаем... Да, работает правильно. Уже легче!
Огромное спасибо!

Удивление рождает жажду познания... Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 58
Зарегистрирован: 19.07.07
Откуда: Россия, Челябинская обл.
Рейтинг: 0
ссылка на сообщение  Отправлено: 24.08.07 16:55. Заголовок: Re:


Пётр пишет:

 цитата:
Судя по всему не всё понятно что я объяснял, возможно за это время скопилось много вопросов. Поэтому задавайте любые вопросы.



Пётр
Нашёл у себя на диске PureBasic 3.51 - имеет ли смысл на нём работать, или это уже устаревшая версия?


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 352
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 2
ссылка на сообщение  Отправлено: 24.08.07 17:13. Заголовок: Re:


kaligraf пишет:

 цитата:
Нашёл у себя на диске PureBasic 3.51

Есть он у меня, именно с него я и начинал.
Вам же советую скачать PureBasic 4.0 он намного лучше.

Между ними есть следующие отличия:
PureBasic 3.51 некорректно работает с Русскими буквами, в PureBasic 4.0 этот глюк устранён.
Между этими версиями есть много различий, например, изменился синтаксис языка, правда несильно.
Есть много других отличий, которые перечислять долго.



Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 353
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 2
ссылка на сообщение  Отправлено: 24.08.07 17:21. Заголовок: Re:


Да чуть не забыл
Прога PureBasic не бесплатна! Производитель за неё хочет 99$
Но с выше указанного сайта её можно скачать бесплатно.


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 364
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 2
ссылка на сообщение  Отправлено: 29.08.07 11:47. Заголовок: Re:


Пётр пишет:

 цитата:
К сожалению, я пока ещё не доконца разобрался как LPT порт работает, поэтому и так мало инфы о порте

Вот что на данный момент нашёл
http://www.lptport.ru/index.htm
http://z-ol.chat.ru/port/ports.htm
Может ещё что то найду.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 70
Зарегистрирован: 19.07.07
Откуда: Россия, Челябинская обл.
Рейтинг: 0
ссылка на сообщение  Отправлено: 30.08.07 09:13. Заголовок: Re:


Скачал файлы с ramparc.narod.ru - запустил реаниматор - архив появился. При распаковке архив требует вторую часть (которой нет) Setup.sfx.part2.rar

Не пойму пока в чём дело, ошибка при скачивании файлов произошла, или что-то ещё?


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 365
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 2
ссылка на сообщение  Отправлено: 30.08.07 11:24. Заголовок: Re:


С этого сайта следует скачать три файла Pure, Basic и REANIMATOR.exe расположив их в одной папке.
Затем, следует запустить программу REANIMATOR.exe, которая переименнует файл Pure в Setup.sfx.part1.exe а файл Basic в Setup.sfx.part2.rar
При необходимости эти файлы можно вручную переименовать.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 71
Зарегистрирован: 19.07.07
Откуда: Россия, Челябинская обл.
Рейтинг: 0
ссылка на сообщение  Отправлено: 30.08.07 13:42. Заголовок: Re:


Похоже была ошибка при скачивании программы. Скачал с http://www.rampark.70mb.ru/purebasic/ - там в виде целого архива файл лежит, установился нормально, буду осваивать.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 367
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 2
ссылка на сообщение  Отправлено: 03.09.07 22:04. Заголовок: Re:


kaligraf пишет:

 цитата:
Скачал с http://www.rampark.70mb.ru/purebasic/

А там какая версия программы?
Когда я качал, была PureBasic 4.0

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 73
Зарегистрирован: 19.07.07
Откуда: Россия, Челябинская обл.
Рейтинг: 0
ссылка на сообщение  Отправлено: 06.09.07 19:36. Заголовок: Re:


Пётр пишет:

 цитата:
А там какая версия программы?
Когда я качал, была PureBasic 4.0



То-же самое 4.0

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 268
Зарегистрирован: 12.02.07
Откуда: Argentina, Lincoln
Рейтинг: 1

Награды: Отлично!',
ссылка на сообщение  Отправлено: 10.09.07 13:18. Заголовок: Re:


Не совсем в тему, но может кому пригодится. Создание файла помощи (hlp - файл) для программ. Ссылка здесь:

http://www.rapidshare.ru/396152

Не ошибается только тот, кто ничего не делает. Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 382
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 2
ссылка на сообщение  Отправлено: 29.09.07 22:18. Заголовок: Re:


Кто пробовал Пурик осваивать?
У кого какие успехи?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 303
Зарегистрирован: 12.02.07
Откуда: Argentina, Lincoln
Рейтинг: 1

Награды: Отлично!',
ссылка на сообщение  Отправлено: 01.10.07 12:28. Заголовок: Re:


Пётр пишет:

 цитата:
какие успехи?


пока не очень , времени мало... Хотел вывести график температуры от времени, но что-то не получается нарисовать график на белом фоне, только на черном. Правда надо бы еще посидеть, хочется разобраться самому .

Не ошибается только тот, кто ничего не делает. Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 383
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 2
ссылка на сообщение  Отправлено: 04.10.07 16:41. Заголовок: Re:


Alberto пишет:

 цитата:
не получается нарисовать график на белом фоне

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

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 305
Зарегистрирован: 12.02.07
Откуда: Argentina, Lincoln
Рейтинг: 1

Награды: Отлично!',
ссылка на сообщение  Отправлено: 04.10.07 17:05. Заголовок: Re:


Если не забуду, завтра скину. Все исходники у меня дома.

Не ошибается только тот, кто ничего не делает. Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 396
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 2
ссылка на сообщение  Отправлено: 16.10.07 16:15. Заголовок: Re:


Alberto пишет:

 цитата:
Если не забуду

И всё таки забыли.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 322
Зарегистрирован: 12.02.07
Откуда: Argentina, Lincoln
Рейтинг: 2

Награды: Отлично!',
ссылка на сообщение  Отправлено: 16.10.07 17:07. Заголовок: Re:


Пётр пишет:

 цитата:
И всё таки забыли.


каюсь, моя вина.

Не ошибается только тот, кто ничего не делает. Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 328
Зарегистрирован: 12.02.07
Откуда: Argentina, Lincoln
Рейтинг: 2

Награды: Отлично!',
ссылка на сообщение  Отправлено: 17.10.07 16:00. Заголовок: Re:


Принес и только сейчас вспомнил... Исходник (тот кусок на котором я издевался) здесь:
http://www.rapidshare.ru/434349
буду благодарен за любые намеки на мою проблему.

Не ошибается только тот, кто ничего не делает. Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 405
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 2
ссылка на сообщение  Отправлено: 17.10.07 16:51. Заголовок: Re:


Как вариант, можно использовать функцию Box, предназначеную для создания прамоугольных фигур. Для этого параметры x и y делаем нулевыми, а размеры прямоугольника делаем равными размерам рисунка и устанавлеаваем нужный цвет. http://ifolder.ru/3772343
Этот вариант неидеален, потому что, если понадобится изменить цвет фона, то понадобится полностью переделывать рисунок.
Я ещё покопаюсь, может что то лучшее найду.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 330
Зарегистрирован: 12.02.07
Откуда: Argentina, Lincoln
Рейтинг: 2

Награды: Отлично!',
ссылка на сообщение  Отправлено: 17.10.07 17:22. Заголовок: Re:


В принципе я понял насчет БОКСА, согласен, такой вариант можно использовать, я хочу чтобы менялся цвет линии от заданных пределов температуры, т.е. если ниже порогра - синий цвет точек, выше - красный, норма - зеленый или белый, так что вариант с Боксом прокатит, но ведь должен же быть параметр задающий цвет фона всего рисунка. Я еще тоже покопаюсь. А пока что, спасибо за идею.

Не ошибается только тот, кто ничего не делает. Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 351
Зарегистрирован: 12.02.07
Откуда: Argentina, Lincoln
Рейтинг: 3

Награды: Отлично!',
ссылка на сообщение  Отправлено: 31.10.07 16:21. Заголовок: Вопрос к знатокам: к..


Вопрос к знатокам: как получить ID открытых окон (активных и неактивных)?

Не ошибается только тот, кто ничего не делает. Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 423
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 2
ссылка на сообщение  Отправлено: 31.10.07 17:15. Заголовок: Для этого нажна библ..


Для этого нажна библиотека Droopy Library
Вот пример показывающий заголовок окна и его СИСТЕМНЫЙ идентификатор.

Repeat
Temp.s=WindowsEnum() ; Узнаём заголовки всех окон.
Debug "Имя "+ Temp ;
Debug "SysID "+Str(GetHandle(Temp) ) ; Показываем Handle (системный ID окна).
Until Temp="" ; Завершаем цикл, если больше нет окон.

Этот код показывает только "видимые" окна.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 352
Зарегистрирован: 12.02.07
Откуда: Argentina, Lincoln
Рейтинг: 3

Награды: Отлично!',
ссылка на сообщение  Отправлено: 31.10.07 19:51. Заголовок: Надеюсь, что это то ..


Надеюсь, что это то что надо. Мне только видимые окна и нужны. Я так понимаю, что на каждом витке программы будет выводиться новый идентификатор, т.е. он сам перебирает ID и завершается если нет ни одного нового открытого окна?
Спасибо, Пётр, ты мне здорово помог. Вечером проверю одну идею.

Не ошибается только тот, кто ничего не делает. Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 424
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 2
ссылка на сообщение  Отправлено: 31.10.07 22:28. Заголовок: Alberto пишет: каж..


Alberto пишет:

 цитата:
каждом витке программы будет выводиться новый идентификатор

Да.
Вообще зная системный ID окна (Handle) можно сделать очень многое.
Например, можно узнать какой проге пренадлежит данное окно
Изменить приоритет проги, создавшей это окно.
Закрыть окно.
Закрыть прогу, которой пренадлежит окно.
Сделать окно активным.
И многое другое.

Прогу, которая изменяет приоритет у программы с текущим активным окном можно найти здесь
Может пригодится.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 355
Зарегистрирован: 12.02.07
Откуда: Argentina, Lincoln
Рейтинг: 3

Награды: Отлично!',
ссылка на сообщение  Отправлено: 01.11.07 13:09. Заголовок: Пётр пишет: можно с..


Пётр пишет:

 цитата:
можно сделать очень многое... закрыть окно... закрыть прогу...


вот именно это я и сделал, поставил на одни машины програмку которая делает окна невидимыми и сворачивает их, а через секунд 20-30 восстанавливает, на других окна активируются по кругу и т.д. Утро прошло весело .

Не ошибается только тот, кто ничего не делает. Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 464
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 2
ссылка на сообщение  Отправлено: 12.12.07 15:19. Заголовок: Alberto пишет: буду..


Alberto пишет:

 цитата:
буду благодарен за любые намеки на мою проблему.

Что-то получилось с выводом графика?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 469
Зарегистрирован: 12.02.07
Откуда: Argentina, Lincoln
Рейтинг: 3

Награды: Отлично!',
ссылка на сообщение  Отправлено: 12.12.07 15:39. Заголовок: Вчера времени небыло..


Вчера времени небыло, я сечас переделываю усилитель на TDA8425 (идеи новые появились), но до конца недели надеюсь проверить.

Не ошибается только тот, кто ничего не делает. Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 233
Зарегистрирован: 06.05.07
Откуда: Россия, Липецк
Рейтинг: 3
ссылка на сообщение  Отправлено: 16.01.08 17:17. Заголовок: Просьба не создавать..


Просьба не создавать сообщений в этой теме
    и продолжить ее в теме с названием "Программирование на PureBasic. Часть 2."


Безумству храбрых поем мы песню (А.М.Горький) Спасибо: 0 
ПрофильЦитата Ответить



Не зарегистрирован
Зарегистрирован: 23.06.13
Рейтинг: 0
ссылка на сообщение  Отправлено: 23.06.13 09:02. Заголовок: Петр, а где можно ск..


Петр, а где можно скачать Ваш учебник?

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 607
Зарегистрирован: 01.03.11
Рейтинг: 3
ссылка на сообщение  Отправлено: 24.06.13 00:26. Заголовок: Я думаю что Петр зде..


Я думаю что Петр здесь редко бывает


Спасибо: 0 
ПрофильЦитата Ответить



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 21.07.13 20:34. Заголовок: Александр, Вы наверн..


Александр, Вы наверное забыли что учетку Петра, Сергей Рослик удалил.

А по теме - подборка литературы. http://www.cyberforum.ru/pure-basic/thread354195.html

Спасибо: 0 
Цитата Ответить
moderator




Пост N: 608
Зарегистрирован: 01.03.11
Рейтинг: 3
ссылка на сообщение  Отправлено: 23.07.13 18:13. Заголовок: Эта да. Он был забан..


Эта да. Он был забанен. На сколько помню. Но новую учетку сделать ни кто не мешает. Хотя бы Петр_ 1.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 3
Зарегистрирован: 15.10.14
Рейтинг: 0
ссылка на сообщение  Отправлено: 07.05.16 16:38. Заголовок: Пётр Пётр Пётр ..


Пётр Пётр Пётр

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 136 , стр: 1 2 3 4 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 5
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет



Создай свой форум на сервисе Borda.ru
Текстовая версия