Basic Univers

Enumeration
#Window
#Btn_About
EndEnumeration


FlagWin = #PB_Window_SystemMenu| #PB_Window_ScreenCentered |#PB_Window_TitleBar
If OpenWindow(#Window, 0, 0, 200, 100, "ABOUT", FlagWin)= 0 Or CreateGadgetList(WindowID(#Window))= 0
  End
EndIf
ButtonGadget(#Btn_About, 25, 30, 150, 40, "About Windows")
Repeat
  Event = WaitWindowEvent()
  If Event = #PB_Event_Gadget
    Select EventGadget()
   
      Case #Btn_About : ShellAbout_(WindowID(#Window), "WINDOWS ABOUT REQUESTER", "Copyright " + Chr(169)+" 2006 - PB4. Tous droits réservés.", 0)
     
    EndSelect
  EndIf
Until Event = #PB_Event_CloseWindow
CloseWindow(#Window)


;----------------------- Partie 2 ----------------------

Procedure.l AboutRequester(Title.s, Text.s = #NULL$, Window.l = #PB_Any, Beep.l = #MB_ICONINFORMATION)
  Protected About.l, WindowID.l, IconID.l, Word.w
 
  If Not IsWindow(Window) : Window = EventWindow() : EndIf
  If IsWindow(Window) : WindowID = WindowID(Window) : EndIf
 
  MessageBeep_(Beep)
 
  IconID = ExtractAssociatedIcon_(GetModuleHandle_(#Null), ProgramFilename(), @Word)
  About  = ShellAbout_(WindowID, Title, Text, IconID)
 
  If IconID : DestroyIcon_(IconID) : EndIf
 
  ProcedureReturn About
EndProcedure

AboutRequester("AboutRequester")