PureBasic - форум

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

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


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


Вопросы новичка (продолжение…)

Сообщений 331 страница 360 из 974

331

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

а как его принять

В справке ведь написано что с помощью функции EventType()

Код:
  If OpenWindow(0, 0, 0, 600, 300, "WebGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    WebGadget(0, 10, 10, 580, 280, "http://www.purebasic.com")
    ; Note: if you want to use a local file, change last parameter to "file://" + path + filename
    Repeat
      Event=WaitWindowEvent()
      If Event = #PB_Event_Gadget
        If EventGadget() = 0
          If EventType() = #PB_EventType_DownloadEnd
            Debug "Страница загружена"
          EndIf
        EndIf
      EndIf
    Until Event = #PB_Event_CloseWindow
  EndIf

0

332

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

0

333

Код:
  If OpenWindow(0, 0, 0, 245, 105, "ImageGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    If LoadImage(0, "q.jpg") 
      ImageGadget(0,  10, 10, 100, 83, ImageID(0))                    
      ImageGadget(1, 130, 10, 100, 83, ImageID(0), #PB_Image_Border)    
    EndIf
    Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
  EndIf

Эгзэшник этой программы находится в той же папки что и файл q.jpg. Но почемуто когда я запускаю эгзэшник на экран выходит пустое окно. А почему?

0

334

Забыл UseJPEGImageDecoder() перед кодом

Справка:

Код:
Result = LoadImage( #Image, Filename$ [, Flags] )

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

UseJPEGImageDecoder() 
UseJPEG2000ImageDecoder() 
UsePNGImageDecoder() 
UseTIFFImageDecoder() 
UseTGAImageDecoder()

Отредактировано mirashic (20.02.2011 00:01:12)

0

335

Скажите SetGadgetText(#WebGadget, "Адрес ссылки") а если я не знаю ссылку на сайте, как мне сделать это и предидущий вопрос.Спасибо за помощь.

0

336

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

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

Как перезагружаешь?

0

337

SetGadgetState(0,#PB_Web_Refresh)
           вот так

0

338

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

SetGadgetState(0,#PB_Web_Refresh)
вот так

Так работает!

Код:
  If OpenWindow(0, 0, 0, 600, 300, "WebGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    WebGadget(0, 10, 10, 580, 280, "http://www.purebasic.com")
    ; Note: if you want to use a local file, change last parameter to "file://" + path + filename
    x=0
    Repeat
      Event=WaitWindowEvent()
      If Event = #PB_Event_Gadget
        If EventGadget() = 0
          If EventType() = #PB_EventType_DownloadEnd
            If x=1
              Debug "Страница загружена"
              SetGadgetState(0,#PB_Web_Refresh)
            EndIf
            x=1
          EndIf
        EndIf
      EndIf
    Until Event = #PB_Event_CloseWindow
  EndIf

0

339

спасибо уважаемый,все работает как часы.

0

340

Код:
 If OpenWindow(0, 0, 0, 140, 110, "OptionGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)


    CheckBoxGadget(0, 30, 45, 60, 20, "")
 
    Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
 
  EndIf 
  Debug GetGadgetState(0)

эта программа даёт возможность поставить галочку, а мне надо чтобы галачка была поставлена с самого начала. Как это зделать?

0

341

Илья написал(а):

надо чтобы галачка была поставлена с самого начала.

Код:
 If OpenWindow(0, 0, 0, 140, 110, "OptionGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)


    CheckBoxGadget(0, 30, 45, 60, 20, "")
    SetGadgetState(0, 1)
 
    Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
 
  EndIf 
  Debug GetGadgetState(0)

0

342

Код:
OpenWindow (0,50,50,200,200,"okno",#PB_Window_SystemMenu | #PB_Window_ScreenCentered)
StringGadget (1,10,10,170,40,"")
 Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow

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

0

343

Илья написал(а):

А как ограничить ввод, например чтоб все цифры вводились

В справке на StringGadget об этом написано.

Код:
OpenWindow (0,50,50,200,200,"okno",#PB_Window_SystemMenu | #PB_Window_ScreenCentered)
StringGadget (1,10,10,170,40,"", #PB_String_Numeric)
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow

0

344

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

0

345

Илья написал(а):

Например цифру 0 вводить нельзя и т. п.

Тогда нужно сделать как здесь.

0

346

Здравствуйте, у меня вот есть такая строка в коде

Код:
If FindString(poisk.s, "слово1", 1)<>0 or FindString(poisk.s, "слово2", 1)<>0

Как мне сделать так, чтобы если в строке найдётся одно из этих двух слов(слово1 и слово2), присвоить отдельной строковой переменной то слово, которое нашлось (то есть это либо "слово1", либо "слово2")? Так вообще можно сделать? Потому что слово1 и 2 это именно не переменные.

0

347

Код:
String.s=""
If FindString(poisk.s, "слово1", 1)<>0 
  String="слово1"
ElseIf FindString(poisk.s, "слово2", 1)<>0
  String="слово2"
EndIf

0

348

Народ, подскажите пожалуста, например у меня есть переменная с записаным в неё числом и мне надо узнать сколько символов в этом числе. А как это сделать?

0

349

Раздел справки: String
Переводиш число в строку  String$= Str(Value.q)
и применяешь функцию Length = Len(String$)

0

350

Всем привет!
Такой вопрос: можно ли как-то считать скан коды клавиатуры ноутбука? Стандартными сниферами это сделать нельзя, так как клава PC/2.
Заранее спасибо!

0

351

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

можно ли как-то считать скан коды клавиатур

Код:
OpenWindow(0,0,0,230,150,"", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) 
EditorGadget(0,10,10,210,130 )
Repeat
  Event=WaitWindowEvent()
  If Event=#WM_KEYDOWN ; Была нажата кнопка
    AddGadgetItem(0,-1,Str( EventwParam())+"  " ) ; Помещаем её код в редактор
    SendMessage_(GadgetID(0),#EM_SETSEL,-1,-1) ; Прокрутка текста
  EndIf
Until Event=#PB_Event_CloseWindow

0

352

Спасибо!

0

353

Код:
OpenWindow(0, 100, 200, 195, 260, "window")
CreateMenu(0, WindowID(0))
MenuItem(1, "help")
     Repeat
      E = WaitWindowEvent(0)

If e= #PB_Event_Menu
OpenWindow(1, 500, 200, 155, 200, "help")
Repeat
r = WaitWindowEvent(0)
If r=#PB_Event_CloseWindow
qwe=123
CloseWindow(1)
EndIf
Until qwe=123
EndIf
Until e=#PB_Event_CloseWindow

В этой программе появляется окно с маленьким меню состоящим из одного пункта. Когда я нажимаю на пункт то появляется ещё одно окно (пустое). Его можно закрыть. Но когда это 2-е окно открываешь 2 раз и закрываешь то закрывается не только это окно, но и 1-е тоже. А почему это возникает и как это исправить?

0

354

Можно так:

Код:
OpenWindow(0,100, 200,380,200,"Окно")
 CreateMenu(0, WindowID(0))
 MenuItem(1, "help")
 

Repeat
Event =  WaitWindowEvent() 

 Select Event
    Case #PB_Event_CloseWindow
     If EventWindow()=0
      Break  
     EndIf 
     If EventWindow()=1
      CloseWindow(1)
     EndIf 
   Case #PB_Event_Menu
    OpenWindow(1, 500, 200, 155, 200, "help")
   Case #PB_Event_Gadget
    Select EventGadget()
     Case 3
     Case 4
     Case 5
   EndSelect             
EndSelect  

ForEver
Код:
OpenWindow(0, 100, 200, 195, 260, "window")
CreateMenu(0, WindowID(0))
MenuItem(1, "help")
Repeat
Event = WaitWindowEvent(0)

 If Event= #PB_Event_Menu
  OpenWindow(1, 500, 200, 155, 200, "help")
 EndIf
 
  If Event=#PB_Event_CloseWindow
   If EventWindow()=0
    Break
   EndIf
  If EventWindow()=1
    CloseWindow(1)
   EndIf
  EndIf
  
ForEver

Отредактировано mirashic (26.02.2011 23:48:46)

0

355

Спасибо

0

356

А вот у меня есть 2 окна. В 1 окне мне нужно разместить какойнибудь гаджет. Но гаджеты часто размещаются не в том окне которое мне нужно. А как настроить, в каком окне разместится гаджет?

0

357

Гаджеты размещаются в окне, созданном последним.
С помощью функции UseGadgetList, можно выбрать окно, в которому будут размещаться гаджеты.
Вот пример из справки:

Код:
  If OpenWindow(0, 0, 0, 500, 500, "Main Window", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
    ButtonGadget(0, 10, 10, 150, 25, "Button 1")
    
    ; Create Window with #PB_Window_NoGadgets to prevent automatic GadgetList creation
    If OpenWindow(1, 0, 0, 300, 200, "Child Window", #PB_Window_TitleBar|#PB_Window_WindowCentered|#PB_Window_NoGadgets, WindowID(0))     
      OldGadgetList = UseGadgetList(WindowID(1)) ; Create GadgetList and store old GadgetList
      
      ButtonGadget(10, 10, 10, 150, 25, "Child Window Button")
      
      UseGadgetList(OldGadgetList)               ; Return to previous GadgetList
    EndIf
    
    ButtonGadget(1, 10, 45, 150, 25, "Button 2") ; This will be on the main window again
    
    Repeat
    Until WaitWindowEvent() = #PB_Event_CloseWindow
  EndIf

0

358

А можно ли делать асм /Си вставки в коды пурика

P.S жетельно примеры ,    си интересует больше

Отредактировано neo (27.02.2011 10:27:35)

0

359

Асм можно, а Си нет.
Пример на асме из справки

Код:
Procedure Test(*Pointer, Variable)
    ! MOV dword [p.p_Pointer], 20
    ! MOV dword [p.v_Variable], 30
    Debug *Pointer
    Debug Variable
EndProcedure
  
Test(0, 0)

Если хочется использовать часть кода на Си, создай из него DLL и вызывай из программы.

0

360

Спасибо

0


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