PB 4.00. My little examples for the new version.

Share your advanced PureBasic knowledge/code with the community.
User avatar
Hroudtwolf
Addict
Addict
Posts: 803
Joined: Sat Feb 12, 2005 3:35 am
Location: Germany(Hessen)
Contact:

PB 4.00. My little examples for the new version.

Post by Hroudtwolf »

Code updated For 5.20+

Code: Select all

; 2006 Hroudwolf
; Gadgetcolor example for PB 4.00

wID.l=OpenWindow (#PB_Any,0,0,500,370,"PB 4.00. ListIconGadget",#PB_Window_ScreenCentered|#WS_SYSMENU)
If wID.l ;And CreateGadgetList (WindowID(wID.l))

   ListID.l=ListIconGadget(#PB_Any,10,10,480,300,"",0,#PB_ListIcon_GridLines|#PB_ListIcon_FullRowSelect)
   AddGadgetColumn (ListID.l,0,"Name",235)
   AddGadgetColumn (ListID.l,1,"Telefon",120)
   AddGadgetColumn (ListID.l,2,"Fax",120)
   SetGadgetColor(ListID.l,#PB_Gadget_BackColor,$D7FFF6)
   SetGadgetColor(ListID.l,#PB_Gadget_LineColor,$000000)
   SetGadgetColor(ListID.l,#PB_Gadget_FrontColor,$8E0000)
   
   AddGadgetItem (ListID.l,-1,"Fred"+Chr(10)+"00213/889 3030"+Chr(10)+"00213/889 3031")
   AddGadgetItem (ListID.l,-1,"Beriko"+Chr(10)+"06331/646100"+Chr(10)+"006331/646101")
   AddGadgetItem (ListID.l,-1,"Freak"+Chr(10)+"01234/331331"+Chr(10)+"01234/331332")
   AddGadgetItem (ListID.l,-1,"Andre"+Chr(10)+"03431/181950"+Chr(10)+"k.A.")
   
   For x=1 To CountGadgetItems (ListID.l)
      CStep.l+1
      Select CStep.l
        Case 1
          SetGadgetItemColor(ListID.l,x-1,#PB_Gadget_BackColor,$D7FFF6,0)
          SetGadgetItemColor(ListID.l,x-1,#PB_Gadget_BackColor,$FFF0DF,1)
          SetGadgetItemColor(ListID.l,x-1,#PB_Gadget_BackColor,$D7FFF6,2)
        Case 2
          CStep.l=0
          SetGadgetItemColor(ListID.l,x-1,#PB_Gadget_BackColor,$FFF0DF,0)
          SetGadgetItemColor(ListID.l,x-1,#PB_Gadget_BackColor,$D7FFF6,1)
          SetGadgetItemColor(ListID.l,x-1,#PB_Gadget_BackColor,$FFF0DF,2)
      EndSelect
   Next x
   
     
   
 
Repeat
   Event.l=WaitWindowEvent ()
   
Until Event.l=#WM_CLOSE
EndIf
End 

Code: Select all

; 2006 Hroudtwolf
; Directory example for PB 4.00

#MeinDir=1
ExamineDirectory (#MeinDir,"g:\","*.*")
While NextDirectoryEntry (#MeinDir)
  DType.l=DirectoryEntryType(#Meindir)
  DEntry.s=DirectoryEntryName(#MeinDir)
  If DType.l=2
    tmp.s="<"+DEntry.s+">":DEntry.s=tmp.s 
  EndIf
  DLines.s+DEntry.s+Chr(10)
Wend
MessageBox_(0,DLines.s,"Directory",#MB_OK) 

Code: Select all

; 2006 Hroudtwolf
; Enviromentvariables example for PB 4.00

ExamineEnvironmentVariables()         
While NextEnvironmentVariable()
  Debug EnvironmentVariableName() + ": "+EnvironmentVariableValue()
Wend  

Code: Select all

; 2006 Hroudtwolf
; Menuexample for PB 4.00

Declare ChangeLanguage (Flag.l)

Enumeration
  #Window
  #Menu_ID
  #Menu_Item_New
  #Menu_Item_Load
  #Menu_Item_Save
  #Menu_Item_Exit
  #Menu_Item_German 
  #Menu_Item_English
EndEnumeration

#WindowFlag=#PB_Window_ScreenCentered|#WS_SYSMENU
#German=0
#English=1

If OpenWindow (#Window,0,0,500,300,"PB 4.00. Menü",#WindowFlag)

  If CreateMenu (#Menu_ID,WindowID(#Window))
    MenuTitle ("")
    MenuItem (#Menu_Item_New,"")
    MenuItem (#Menu_Item_Load,"")
    MenuItem (#Menu_Item_Save,"")
    MenuBar()
    MenuItem (#Menu_Item_Exit,"")
    MenuTitle ("")
    MenuItem (#Menu_Item_German, ""):SetMenuItemState (#Menu_ID,#Menu_Item_German,#True)
    MenuItem (#Menu_Item_English, "")
  EndIf


  ChangeLanguage (#German)
  Repeat
    Event.l=WaitWindowEvent ()
    Select Event.l
      Case #PB_Event_Menu
        Select EventMenu()
          Case #Menu_Item_German
            ChangeLanguage (#German)
            SetMenuItemState (#Menu_ID,#Menu_Item_German,#True)
            SetMenuItemState (#Menu_ID,#Menu_Item_English,#False)
          Case #Menu_Item_English
            ChangeLanguage (#English)
            SetMenuItemState (#Menu_ID,#Menu_Item_German,#False)
            SetMenuItemState (#Menu_ID,#Menu_Item_English,#True)
        EndSelect
    EndSelect
 
 
  Until Event.l=#WM_CLOSE
EndIf
End


Procedure ChangeLanguage (Flag.l) 
   ShowWindow_(WindowID(#Window),#SW_HIDE)
   If Flag.l=0
      Restore deutsch
   Else
      Restore english
   EndIf
   Read.s tmp.s:SetMenuTitleText(#Menu_ID, 0,tmp.s)
   Read.s tmp.s:SetMenuItemText(#Menu_ID, #Menu_Item_New,tmp.s)
   Read.s tmp.s:SetMenuItemText(#Menu_ID, #Menu_Item_Load,tmp.s)
   Read.s tmp.s:SetMenuItemText(#Menu_ID, #Menu_Item_Save,tmp.s)
   Read.s tmp.s:SetMenuItemText(#Menu_ID, #Menu_Item_Exit,tmp.s)
   Read.s tmp.s:SetMenuTitleText(#Menu_ID, 1,tmp.s)
   Read.s tmp.s:SetMenuItemText(#Menu_ID, #Menu_Item_German,tmp.s)
   Read.s tmp.s:SetMenuItemText(#Menu_ID, #Menu_Item_English,tmp.s)
   ShowWindow_(WindowID(#Window),#SW_NORMAL)
EndProcedure


DataSection
  deutsch:
  Data.s "Datei","Neu","Laden","Speichern","Ende","Einstellungen","Deutsch","Englisch"
  english:
  Data.s "File","New","Load","Save","Exit","Settings","German","English"
EndDataSection
User avatar
Hroudtwolf
Addict
Addict
Posts: 803
Joined: Sat Feb 12, 2005 3:35 am
Location: Germany(Hessen)
Contact:

PB 4.00. My little examples for the new version.

Post by Hroudtwolf »

Code updated For 5.20+

Code: Select all

    ; 2006 Hroudtwolf
    ; LinkedList2Procedure example

    Structure _TestStruct
      name.s
      postbox.s
    EndStructure



    Procedure ShowPersonalData (List AliasListe._TestStruct(),Index.l)
      SelectElement(AliasListe(),Index.l)
      MessageBox_(0,AliasListe()\name+" haves "+AliasListe()\postbox+" postbox.","Postbox",#MB_OK)
    EndProcedure
     

    NewList Person._TestStruct()

    AddElement (Person())
    Person()\name="Jim Hampton"
    Person()\postbox="64319"
    AddElement (Person())
    Person()\name="Bill Littlefox"
    Person()\postbox="64252"

    ShowPersonalData (Person._TestStruct(),0)
    ShowPersonalData (Person._TestStruct(),1)
Berikco
Administrator
Administrator
Posts: 1326
Joined: Wed Apr 23, 2003 7:57 pm
Location: Belgium
Contact:

Post by Berikco »

WTF! hey where did you get my phnone number ? :shock:
SFSxOI
Addict
Addict
Posts: 2970
Joined: Sat Dec 31, 2005 5:24 pm
Location: Where ya would never look.....

Post by SFSxOI »

You have to do a 'AddElement (Person())' for each entry or person?
Hroudtwolf wrote:

Code: Select all

; 2006 Hroudtwolf
; LinkedList2Procedure example

Structure _TestStruct
  name.s
  postbox.s
EndStructure



Procedure ShowPersonalData (AliasListe._TestStruct(),Index.l)
  SelectElement(AliasListe(),Index.l)
  MessageBox_(0,AliasListe()\name+" haves "+AliasListe()\postbox+" postbox.","Postbox",#MB_OK)
EndProcedure 
 

NewList Person._TestStruct()

AddElement (Person())
Person()\name="Jim Hampton"
Person()\postbox="64319"
AddElement (Person())
Person()\name="Bill Littlefox"
Person()\postbox="64252"

ShowPersonalData (Person._TestStruct(),0)
ShowPersonalData (Person._TestStruct(),1)
Berikco
Administrator
Administrator
Posts: 1326
Joined: Wed Apr 23, 2003 7:57 pm
Location: Belgium
Contact:

Re: PB 4.00. My little examples for the new version.

Post by Berikco »

Hroudtwolf wrote:

Code: Select all

...
 
Repeat
   Event.l=WaitWindowEvent ()
   
Until Event.l=#WM_CLOSE
EndIf
End 
Beter use official PB constants like #PB_Event_CloseWindow and your source will work also on Linux and Mac.
dmoc
Enthusiast
Enthusiast
Posts: 739
Joined: Sat Apr 26, 2003 12:40 am

Post by dmoc »

WTF! hey where did you get my phnone number ?
We posted it all over sex sites - it'll be removed once you update VD and tailbite :P

Oops: bit of a pun slipped in there
User avatar
Hroudtwolf
Addict
Addict
Posts: 803
Joined: Sat Feb 12, 2005 3:35 am
Location: Germany(Hessen)
Contact:

Re: PB 4.00. My little examples for the new version.

Post by Hroudtwolf »

Berikco wrote:
Hroudtwolf wrote:

Code: Select all

...
 
Repeat
   Event.l=WaitWindowEvent ()
   
Until Event.l=#WM_CLOSE
EndIf
End 
Beter use official PB constants like #PB_Event_CloseWindow and your source will work also on Linux and Mac.
Yes, it's true of course.
So far I didn't think.
WTF! hey where did you get my phnone number ? Shocked
Ok, in the next example follows your homeadress :D
Intrigued
Enthusiast
Enthusiast
Posts: 501
Joined: Thu Jun 02, 2005 3:55 am
Location: U.S.A.

Re: PB 4.00. My little examples for the new version.

Post by Intrigued »

Hroudtwolf wrote:
Berikco wrote:
Hroudtwolf wrote:

Code: Select all

...
 
Repeat
   Event.l=WaitWindowEvent ()
   
Until Event.l=#WM_CLOSE
EndIf
End 
Beter use official PB constants like #PB_Event_CloseWindow and your source will work also on Linux and Mac.
Yes, it's true of course.
So far I didn't think.
WTF! hey where did you get my phnone number ? Shocked
Ok, in the next example follows your homeadress :D
Don't forget DNA! (we have to clone Fred so we can get to PB 5 twice as fast!)

:wink:
Intrigued - Registered PureBasic, lifetime updates user
User avatar
NoahPhense
Addict
Addict
Posts: 1999
Joined: Thu Oct 16, 2003 8:30 pm
Location: North Florida

Post by NoahPhense »

Very nice..

- np
Post Reply