Для этого используется функция SetGadgetItemText.
Спасибо!!
PureBasic - форум |
Привет, Гость! Войдите или зарегистрируйтесь.
Вы здесь » PureBasic - форум » Вопросы по PureBasic » Вопросы новичка
Для этого используется функция SetGadgetItemText.
Спасибо!!
Петр, какой существует наиболее правильный, оптимальный способ сохранить текст из ListIconGadget в файл, что бы при последующем запуске в этот гаджет снова загружался тот сохраненный текст.
Может быть через связанный список. Но с учетом того, что ListIconGadget один, а сохранять придется 7 раз в разные файлы и при этом разный текст
Путь и не самый оптимальный вариант, но вполне рабочий
Procedure ListIcon_OpenFile(Gadget, File.s) If ReadFile(4,File) While Eof(4) = 0 String.s=ReadString(4) String=ReplaceString(String,Chr(9),Chr(10)) AddGadgetItem(Gadget, -1, String) Wend CloseFile(4) Else MessageRequester("", "Не удалось открыть файл!", #MB_OK|#MB_ICONERROR) EndIf EndProcedure Procedure ListIcon_SaveFile(Gadget, File.s) If CreateFile(4,File) CountItems = CountGadgetItems(Gadget) - 1 For i=0 To CountItems String.s="" For z=0 To 3 ; Число колонок String+GetGadgetItemText(Gadget,i,z)+Chr(9) Next z WriteStringN(4,String) Next i CloseFile(4) Else MessageRequester("", "Не удалось создать файл!", #MB_OK|#MB_ICONERROR) EndIf EndProcedure If OpenWindow(0, 100, 100, 300, 150, "ListIcon Example", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) ListIconGadget(0, 5, 50, 290, 90, "1", 50, #PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection|#PB_ListIcon_GridLines) AddGadgetColumn(0, 1, "2", 50) AddGadgetColumn(0, 2, "3", 50) AddGadgetColumn(0, 3, "4", 50) AddGadgetItem(0, -1, "1") AddGadgetItem(0, -1, "2") SetGadgetItemText(0,0,"3",1) SetGadgetItemText(0,1,"4",1) SetGadgetItemText(0,0,"5",2) SetGadgetItemText(0,1,"6",2) SetGadgetItemText(0,0,"7",3) SetGadgetItemText(0,1,"8",3) ButtonGadget(1,10,10,100,24,"Открыть") ButtonGadget(2,150,10,100,24,"Сохранить") Repeat Event = WaitWindowEvent() If Event = #PB_Event_Gadget Select EventGadget() Case 1 File.s=OpenFileRequester("","","Text (*.txt)|*.txt",0) If File ClearGadgetItems(0) ListIcon_OpenFile(0, File) EndIf Case 2 File.s=SaveFileRequester("","1.txt","Text (*.txt)|*.txt",0) If File ListIcon_SaveFile(0, File) EndIf EndSelect EndIf Until Event = #PB_Event_CloseWindow EndIf
Спасибо! Что то не могу сообразить как по клику меню перейти на сайт? с помощью RunProgram()?
RunProgram("http://purebasic.mybb.ru")
Извиняюсь за тупой вопрос. Каким образом лучше создать электронный учебник с текстом и картинками? При этом можно конечно веб гаджет использовать, но что бы в папке с exe файлов html не было видно. И что бы учебник не онлайн был. Как такую возможнойть осуществить, если уроков около 10-20 будет
Кажется уже обсуждали это.
Создаём из HTML, веб-архивы и пишем программу, наподобие этой http://pure-basic.narod.ru/docs/e_book.html
пишем программу, наподобие этой
вот она та мне и нужна. Спасибо
Петр, что то я не нашел как правильно с помощью цикла добавить в ComboBoxGadget заранее запланированный текст. Например у меня будет около 30-50 слов и все мне их нужно засунуть в ComboBoxGadget. В справке делается просто:
For a = 1 To 5 AddGadgetItem(1, -1,"ComboBox item " + Str(a)) Next
но мой случай чуть другой, так как будут слова. Их же не нужно вручную добавлять?
Исправьте меня если не так. Легче загружать из файла вот так:
If ReadFile(0, "GismeteoCodSity.txt") While Eof(0) = 0 AddGadgetItem(#ComboBox_0, -1,ReadString(0)) Wend CloseFile(0) Else MessageRequester("Information","Нет файла - справочника") EndIf
Слова можно предварительно поместить в массив, загружать из файла или ДатаСекции.
Всё зависит от конкретной задачи.
К примеру, загрузка слов из ДатаСекции
If OpenWindow(0, 0, 0, 270, 50, "ComboBoxGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) ComboBoxGadget(0, 10, 10, 250, 22) Restore Spisok For i=1 To 4 Read.s String.s AddGadgetItem(0,-1,String) Next i SetGadgetState(0, 0) ; set (beginning with 0) the third item as active one Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow EndIf End DataSection Spisok: Data.s "Начало списка", "Слово", "Ещё слово", "Конец списка" EndDataSection
К примеру, загрузка слов из ДатаСекции
То что нужно!
Подскажите как вызвать уже созданное событие? То есть для меню прописано например действие End выход. Как данное событие навесить на кнопку, что бы не дублироваться?
Сделай обработку события кнопки и помести туда оператор Break (прерывает цикл) или End (завершает программу).
Так проще будет.
Подскажите как создать событие наведение мыши на гаджет и отведение. Что то не найду в справке..
Посмотри как это реализовано в этой проге http://pure-basic.narod.ru/miscfiles/skin.rar
Здравствуйте!
Решил тоже занятся програмированием, до этого занимался только сайтостроением в Html языке.
Я пока новичек, но стараюсь учится быстрее.
Выбрал пока этот язык PureBasic, потому как на нем легче учится, чем на С и Паскале
Меня интересуют пока некоторые шаблоны, тэги и гаджеты создания программ
Вот как будет создать окно с менюшкой ввода ссылков сайтов и других интернет ресурсов?
потом кликать или скачивать их автоматом
Например
И чтобы прога сама нажимала автоматом на ссылки, с переходами c одного сайта на ссылк depositfiles сайта depositfiles.com , чтобы можно было скачать фаил , ибо там засчитывается скаченный фаил не прямым вводом на ссылк фаила депозита, а переходом с одного сайта на депозит и потом только нажатием кнопки скачать
потом после скачки фаила отрубала выход в интернет , чтобы поменялся динамический ip и вновь автоматом могла скачивать фаилы со
вставленные ссылков,
хочу сделать прогу что то вроде программы downloader ,
видел пару программ в сети но захотелось сделать , что то свое,.
и еще где можно скачать что то вроде азбуки этого языка , чтобы знать значение всех основных функций: гаджетов и тегов и скриптов, и еще хотелось бы посмотреть коды шаблоны ваших или других программ, если вам не сложно и не секрет.
В качестве примера некоторые проги разной тематики, приложения, игры.
На этом пока все,.
Извиняюсь если что задал много влпросов,..
Но хочу побыстрее все освоить.
Отредактировано Xland (28.06.2010 14:01:45)
и еще где можно скачать что то вроде азбуки этого языка , чтобы знать значение всех основных функций
Посмотри здесь http://pure-basic.narod.ru/docs.html
В первую очередь, прочитай перевод книги "PureBasic - A Beginners Guide". Там самые основы.
Посмотри здесь http://pure-basic.narod.ru/docs.htmlВ первую очередь, прочитай перевод книги "PureBasic - A Beginners Guide". Там самые основы.
Благодарю Друже!
Пока играюсь с шаблонами, вроде разобрался,..
Теперь мне интересно как продолжить какое нибудь действие здесь дальше, вот здесь?
If OpenWindow(0, 100, 100, 350, 400, "Заголовок", #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget) And CreateGadgetList(WindowID(0))
ButtonGadget(1, 10, 10, 330, 20, "Button 1", #PB_Button_Default)
ButtonGadget(2, 10, 30, 330, 20, "Button 2", #PB_Button_Default)
ButtonGadget(3, 10, 60, 330, 20, "Button 3", #PB_Button_Default)
ButtonGadget(4, 10, 80, 330, 20, "Button 4", #PB_Button_Default)Repeat
A= WaitWindowEvent( )If A=#PB_Event_Gadget
B= EventGadget ( )
MessageRequester("Сообщение", "Нажата кнопка "+Str(B), 0)
EndIfIf A=#PB_Event_CloseWindow
Q=1
EndIfUntil Q=1
EndIf
End
как присоеденить новое действие , после завершение предыдущих действий?
Чет вот здесь пока добавляю новые действия: гаджеты, тэги, скрипты и константы и масcивы ошибку выдает.
Хотел, чтобы после открытия закрытия кнопок, продолжить новые функции, но чет пока не получается,
со стыковками вот дествий программ теперь у меня вопрос,
Что подрузомивается под словм "действие"? Выполнение определённого кода при клике по кнопке?
как присоеденить новое действие , после завершение предыдущих действий?
Честно, не понял вопроса.
тэги, скрипты
Это из разряда веб-языков. В прикладном и системном программировании, нет таких понятий.
ошибку выдает
Что за ошибка? Скриншот можно?
Хотел, чтобы после открытия закрытия кнопок, продолжить новые функции, но чет пока не получается,
со стыковками вот дествий программ
Не совсем понял о чём речь...
Меня интересеет любое действие, чтобы нажать там еще на одну кнопку и открыть еще одно окно, к примеру,
пока вот ошибки выскакивают, что то я не так делаю.
Что подрузомивается под словм "действие"? Выполнение определённого кода при клике по кнопке?
Именно так.
Нажать на еще одну добавленную кнопку.
Что за ошибка? Скриншот можно?
Да пытался из другого шаблона что нить добавить , новую операцию программы ,..
Но чет пока не срастается,..
Не совсем понял о чём речь...
Чтобы в программке было пять -шесть операций, а не как в шаблонах открыть и закрыть кнопку.
открыть еще одно окно, к примеру
Вот код.
Дополнительное окно "повешано" на четвёртую кнопку
Procedure NewWindow() ; Процедура, создающая окно. OpenWindow(1,0,0,200,80,"Дополнительное окно",#PB_Window_SystemMenu|#PB_Window_ScreenCentered) ButtonGadget(100,70,30,80,24,"Закрыть") EndProcedure OpenWindow(0, 100, 100, 350, 400, "Основное окно", #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget) ButtonGadget(1, 10, 10, 330, 20, "Button 1", #PB_Button_Default) ButtonGadget(2, 10, 30, 330, 20, "Button 2", #PB_Button_Default) ButtonGadget(3, 10, 60, 330, 20, "Button 3", #PB_Button_Default) ButtonGadget(4, 10, 80, 330, 20, "Button 4", #PB_Button_Default) Repeat Event=WaitWindowEvent() ; Идентификатор события Gadget=EventGadget() ; Идентификатор гаджета, в котором произошло событие Window=EventWindow() ; Идентифцикатор окна, в котором произошло событие If Window=0 ; - Обработка событий главного окна If Event=#PB_Event_Gadget ; Событие в гаджете Select Gadget Case 1 ; "Button 1" MessageRequester("Сообщение", "Button 1") Case 2 ; "Button 2" MessageRequester("Сообщение", "Button 2") Case 3 ; "Button 3" MessageRequester("Сообщение", "Button 3") Case 4 ; "Button 4" NewWindow() ; Вызов процедуры, создающей дополнительное окно EndSelect EndIf ElseIf Window=1 ; - Обработка событий дополнительного окна If Event = #PB_Event_CloseWindow ; Щелчок по крестику в заголовке окна CloseWindow(1) ; Закрытие окна ElseIf Event=#PB_Event_Gadget ; Событие в гаджете If Gadget=100 CloseWindow(1) ; Закрытие окна EndIf EndIf EndIf Until Event = #PB_Event_CloseWindow And Window=0 ; Прерывание основного цикла программы и завершение её работы при щелчке по крестику в заголовке главного окна.
Спасибо , здесь мне подкинули на другом форуме одну "болваночку" , сейчас "обтачиваю ее" и развиваю дальше, переделал ее, убрал пока пару кнопок, и перевел все в автоматический режим.
Но столкнулся с проблемой.
Как html язык, конвертировать в язык pureBasic?
Есть ли доступные методы и программки?
Столкнулся с проблемой мне нужно выполнить автомачическую команду в Internet браузере,
а имено нажать на кнопку скачивания депозит хостинга фаилов.
Но как ее выполнить если pureBasic не понимает Html и скриптов?
В частности нужно конвертировать вот этот код скачивания депозит фаила, на сайте депозит хостинга, который отвечает за скачивания фаила
<input type="submit" class="button2" value="Бесплатно"/>
и потом после конвертации вставить его в свою программу
чтобы не человек, а программа автоматом нажала и скачала фаил.
Пока развиваю свою простенькую прогу, учусь методом проб и ошибок.
;{- Enumerations / DataSections
;{ Windows
Enumeration
#Window_0
EndEnumeration
;}
;{ Gadgets
Enumeration
#Button_0
#Button_1
EndEnumeration
;}
Define.l Event, EventWindow, EventGadget, EventType, EventMenu
;}
Procedure OpenWindow_Window_0()
If OpenWindow(#Window_0, 450, 111, 400, 400, "Window_0", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
ButtonGadget(#Button_0, 35, 25, 310, 25, "Next_0")
ButtonGadget(#Button_1, 35, 65, 310, 25, "Next_1")
EndIf
EndProcedureOpenWindow_Window_0()
;{- Event loop
Repeat
Event = WaitWindowEvent()
Select Event
; ///////////////////
Case #PB_Event_Gadget
EventGadget = EventGadget()
EventType = EventType()
If EventGadget = #Button_0
RunProgram("http://oops-0.narod.ru/rederikt.html")
ElseIf EventGadget = #Button_1
RunProgram("http://solnceved.orgfree.com/redy.html")
EndIf
; ////////////////////////
Case #PB_Event_CloseWindow
EventWindow = EventWindow()
If EventWindow = #Window_0
CloseWindow(#Window_0)
Break
EndIf
EndSelect
ForEver
;
Убрал пока две кнопки, чтобы пока попроще было, оставил две c двумя адресными переходами, перевел все в автоматический режим с переходом с одного сайта с задержкой
две секунды на депозит хостинг скачивания фаилов.
Сейчас вот пока работа встала, не знаю как быть с кодом депозита который отвечает за скачивания фаила.
пока роюсь в интернете, читаю литературу, но пока все найдешь и поймешь это долго, и трата драгоценного времени, хотелось бы вашей помощи.
Up!
Up!
Как создать окно с таким бордюром? Может константу какую нужно добавить?
В PB 4.40 или выше, есть константа #PB_Window_Tool.
OpenWindow(0,0,0,100,80,"Окно",#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_Tool) Repeat : Until WaitWindowEvent()=#PB_Event_CloseWindow
В предыдущих версиях, нужно использовать API
OpenWindow(0,0,0,100,80,"Окно",#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_Invisible) SetWindowLong_(WindowID(0), #GWL_EXSTYLE, #WS_EX_TOOLWINDOW) HideWindow(0,0) Repeat : Until WaitWindowEvent()=#PB_Event_CloseWindow
Вопросы новичка (продолжение…) | Вопросы по PureBasic | 29.06.2024 |
Скорее, это теоретический вопрос о правах в директории. | OffTop | 16.09.2022 |
Вопрос по отладке | Вопросы по PureBasic | 26.01.2017 |
Три вопроса по созданию браузера. | Вопросы по PureBasic | 01.11.2010 |
вопрос о точности типов данных | Вопросы по PureBasic | 20.05.2021 |
Вы здесь » PureBasic - форум » Вопросы по PureBasic » Вопросы новичка