PureBasic - форум

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

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


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


Вопросы новичка

Сообщений 481 страница 510 из 1000

481

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

Для этого используется функция SetGadgetItemText.

Спасибо!!

0

482

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

0

483

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

0

484

Путь и не самый оптимальный вариант, но вполне рабочий

Код:
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

0

485

Спасибо! Что то не могу сообразить как по клику меню перейти на сайт? с помощью RunProgram()?

0

486

Код:
RunProgram("http://purebasic.mybb.ru")

0

487

Извиняюсь за тупой вопрос. Каким образом лучше создать электронный учебник с текстом и картинками? При этом можно конечно веб гаджет использовать, но что бы в папке с exe файлов html не было видно. И что бы учебник не онлайн был. Как такую возможнойть осуществить, если уроков около 10-20 будет

0

488

Кажется уже обсуждали это.
Создаём из HTML, веб-архивы и пишем программу, наподобие этой http://pure-basic.narod.ru/docs/e_book.html

0

489

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

пишем программу, наподобие этой

вот она та мне и нужна. Спасибо

0

490

Петр, что то я не нашел как правильно с помощью цикла добавить в ComboBoxGadget заранее запланированный текст. Например у меня будет около 30-50 слов и все мне их нужно засунуть в ComboBoxGadget. В справке делается просто:

Код:
For a = 1 To 5
        AddGadgetItem(1, -1,"ComboBox item " + Str(a))
      Next

но мой случай чуть другой, так как будут слова. Их же не нужно вручную добавлять? o.O

0

491

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

Код:
If ReadFile(0, "GismeteoCodSity.txt")   
    While Eof(0) = 0           
         AddGadgetItem(#ComboBox_0, -1,ReadString(0))
    Wend
    CloseFile(0)               
  Else
    MessageRequester("Information","Нет файла - справочника")
  EndIf

0

492

Слова можно предварительно поместить в массив, загружать из файла или ДатаСекции.
Всё зависит от конкретной задачи.

К примеру, загрузка слов из ДатаСекции

Код:
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

0

493

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

К примеру, загрузка слов из ДатаСекции

То что нужно!

0

494

Подскажите как вызвать уже созданное событие? То есть для меню прописано например действие End выход. Как данное событие навесить на кнопку, что бы не дублироваться?

0

495

Сделай обработку события кнопки и помести туда оператор Break (прерывает цикл) или End (завершает программу).
Так проще будет.

0

496

Подскажите как создать событие наведение мыши на гаджет и отведение. Что то не найду в справке..

0

497

Посмотри как это реализовано в этой проге http://pure-basic.narod.ru/miscfiles/skin.rar

0

498

Здравствуйте!

Решил тоже занятся програмированием, до этого занимался только сайтостроением в Html языке.

Я пока новичек, но стараюсь учится быстрее.
Выбрал пока этот язык  PureBasic, потому как на нем легче учится, чем на С и Паскале

Меня интересуют пока некоторые шаблоны, тэги и гаджеты создания программ

Вот как будет создать окно с менюшкой ввода ссылков сайтов и других интернет ресурсов?

потом кликать или скачивать их автоматом

Например
И чтобы прога сама нажимала автоматом на ссылки,  с переходами c одного сайта  на ссылк depositfiles сайта depositfiles.com , чтобы можно было скачать фаил , ибо там засчитывается скаченный фаил не прямым вводом на ссылк фаила депозита, а переходом с одного сайта на депозит и потом только нажатием кнопки скачать

потом после скачки фаила отрубала выход в интернет , чтобы поменялся динамический ip и вновь автоматом могла скачивать фаилы со
вставленные ссылков,

хочу сделать прогу что то вроде программы downloader ,
видел пару программ в сети но захотелось сделать , что то свое,.

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

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

Отредактировано Xland (28.06.2010 14:01:45)

0

499

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

и еще где можно скачать что то вроде азбуки этого языка , чтобы знать значение всех основных функций

Посмотри здесь http://pure-basic.narod.ru/docs.html
В первую очередь, прочитай перевод книги "PureBasic - A Beginners Guide". Там самые основы.

0

500

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

Посмотри здесь http://pure-basic.narod.ru/docs.htmlВ первую очередь, прочитай перевод книги "PureBasic - A Beginners Guide". Там самые основы.

Благодарю Друже!

0

501

Пока играюсь с шаблонами, вроде разобрался,..

Теперь мне интересно как продолжить какое нибудь действие здесь дальше,  вот здесь?

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)
EndIf

If A=#PB_Event_CloseWindow
Q=1
EndIf

Until Q=1

EndIf
End

как присоеденить новое действие , после завершение предыдущих действий?

Чет вот здесь пока добавляю новые действия: гаджеты, тэги, скрипты и константы и масcивы ошибку выдает.

Хотел, чтобы после открытия закрытия кнопок, продолжить новые функции, но чет пока не получается,
со стыковками вот дествий программ теперь у меня вопрос,

0

502

Что подрузомивается под словм "действие"? Выполнение определённого кода при клике по кнопке?

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

как присоеденить новое действие , после завершение предыдущих действий?

Честно, не понял вопроса.

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

тэги, скрипты

Это из разряда веб-языков. В прикладном и системном программировании, нет таких понятий.

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

ошибку выдает

Что за ошибка? Скриншот можно?

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

Хотел, чтобы после открытия закрытия кнопок, продолжить новые функции, но чет пока не получается,
со стыковками вот дествий программ

Не совсем понял о чём речь...

0

503

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

пока вот ошибки выскакивают, что то я не так делаю.

0

504

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

Что подрузомивается под словм "действие"? Выполнение определённого кода при клике по кнопке?

Именно так.
Нажать на еще одну добавленную  кнопку.

0

505

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

Что за ошибка? Скриншот можно?

Да пытался из другого шаблона что нить добавить :huh: , новую операцию программы ,..

Но чет пока не срастается,..

0

506

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

Не совсем понял о чём речь...

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

0

507

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

открыть еще одно окно, к примеру

Вот код.
Дополнительное окно "повешано" на четвёртую кнопку

Код:
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 ; Прерывание основного цикла программы и завершение её работы при щелчке по крестику в заголовке главного окна.

0

508

Спасибо , здесь мне подкинули на другом форуме одну "болваночку" , сейчас "обтачиваю ее" и развиваю дальше, переделал ее, убрал пока пару кнопок, и перевел все в автоматический режим.

Но столкнулся с проблемой.

Как 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
EndProcedure

OpenWindow_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!

0

509

Как создать окно с таким бордюром? Может константу какую нужно добавить?
http://s44.radikal.ru/i105/1006/20/c282a29d0734.jpg

0

510

В 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

0


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