Skinner une application.

Sujets variés concernant le développement en PureBasic
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Skinner une application.

Message par nico »

Pour ceux qui ne vont jamais sur le Forum anglais, il y a un truc vraiment sympa à essayer.

C'est une DLL qui permet de skinner une application, elle est très facile d'emploi car deux lignes de codes suffise pour l'utiliser.
La configuration du Skin se fait par l'intermédiaire de fichiers à l'extension .urf que la dll charge.

Quelques un de ses fichiers sont fournit avec la Démo.

Il faut dans un premier temps télécharger la dll Appface à l'adresse suivante:
http://www.goldtach.com/matinsoft/eng/appface/index.htm

Il faut exécuter le fichier qui va s'installer comme un programme

Ensuite aller dans le répertoire:
Program Files\Matinsoft\AppFace\AUDK\output

c'est ici que se trouve la dll et les fichiers à l'extension .urf nécessaire pour le Skin.

Ensuite copier ce code dans l'éditeur et l'enregitrer dans ce répertoire:

Il vous reste plus qu'a le lancer.
Pour changer de Skin, changer le fichier "*.urf" lors de l'appel à la fonction de la Dll (il y en a plusieurs fournit avec la démo).

Le Topic original vers le Forum Anglais:
http://forums.purebasic.com/english/vie ... hp?t=16689

Code : Tout sélectionner

; Auteur du code:
; DoubleDutch
;
; Origine du code:
; http://forums.purebasic.com/english/viewtopic.php?t=16689

Enumeration 4 
   #GTP_LOAD_FILE_ONLY              
   #GTP_LOAD_MEMORY_ONLY        
   #GTP_LOAD_RESOURCE_ONLY 
EndEnumeration      

Enumeration #WM_USER+$361 
   #WM_MDICLIENT_NOTIFY    
   #WM_DATETIME_LBUTTONUP  
   #WM_SETMENU_NOTIFY 
EndEnumeration 

Enumeration 1 
   #GTP_LOAD_FILE              
   #GTP_LOAD_MEMORY            
   #GTP_LOAD_RESOURCE          
   #GTP_LOAD_FILE_ONLY              
   #GTP_LOAD_MEMORY_ONLY        
   #GTP_LOAD_RESOURCE_ONLY      
EndEnumeration 

Enumeration 
   #WINDOW_TYPE_AUTOFILTER      
   #WINDOW_TYPE_SDK            
   #WINDOW_TYPE_VC              
   #WINDOW_TYPE_VB6            
   #WINDOW_TYPE_BCB            
   #WINDOW_TYPE_DELPHI          
   #WINDOW_TYPE_NET            
EndEnumeration 

Enumeration 
   #SKIN_CLASS_NOSKIN          
   #SKIN_CLASS_AUTOFILTER        
   #SKIN_CLASS_UNKNOWN = 6 
   #SKIN_CLASS_SCROLLWIN = 10 
   #SKIN_CLASS_FRAMEWIN = 101 
   #SKIN_CLASS_FRAMEDIALOG 
   #SKIN_CLASS_INSIDEDIALOG 
   #SKIN_CLASS_MDICLIENT    
   #SKIN_CLASS_COMBOBOX = 201 
   #SKIN_CLASS_DATETIME      
   #SKIN_CLASS_HEADER        
   #SKIN_CLASS_GROUPBOX      
   #SKIN_CLASS_IMAGEBUTTON    
   #SKIN_CLASS_MENU          
   #SKIN_CLASS_PROGRESS      
   #SKIN_CLASS_PUSHBUTTON    
   #SKIN_CLASS_SCROLLBAR      
   #SKIN_CLASS_SLIDER        
   #SKIN_CLASS_SPIN          
   #SKIN_CLASS_SPILTER        
   #SKIN_CLASS_STATUSBAR      
   #SKIN_CLASS_TAB            
   #SKIN_CLASS_TEXT          
   #SKIN_CLASS_TOOLBAR        
   #SKIN_CLASS_TOOLBAREX      
   #SKIN_CLASS_PANEL          
   #SKIN_CLASS_PANELEX        
   #SKIN_CLASS_PANELELIXIR       
   #SKIN_CLASS_HYPERLINK      
   #SKIN_CLASS_STATUSBAR_VB6 
EndEnumeration 

Enumeration 1 
   #BK_DIALOGPANEL    
   #BK_MDICLIENT      
   #BK_MDICHILD      
   #BK_SPLITTER      
   #BK_STATUSBAR      
   #BK_MENUBARBK      
   #BK_MENUBARHOVER  
   #BK_MENUBARDOWN    
   #BK_MENU_BK        
   #BK_MENU_HOVER    
   #BK_SCROLL_BK      
   #BK_SLIDER_CHANNEL_H  
   #BK_SLIDER_CHANNEL_V  
   #BK_PROGRESS_H_NORMAL 
   #BK_PROGRESS_V_NORMAL 
   #BK_PROGRESS_H_OVER    
   #BK_PROGRESS_V_OVER    
   #BK_IMAGE_ARROW = 1001 
EndEnumeration 

Enumeration 1 
   #ARROW_UP_NORMAL    
   #ARROW_UP_DOWN      
   #ARROW_DOWN_NORMAL  
   #ARROW_DOWN_DOWN    
EndEnumeration 

AppFace=OpenLibrary(#PB_Any,"appface.dll") 
If AppFace=0 
   MessageRequester("Error","Cannot load library") 
   End 
EndIf 

result=CallFunction(AppFace,"SkinStart","sap_af.urf",#WINDOW_TYPE_AUTOFILTER,#Null,#GTP_LOAD_FILE,#Null,#Null) 

If OpenWindow(0, 100, 200, 195, 260, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget, "AppFace Window Test") 

  MessageRequester("Information", "Click to move the Window", 0) 
  MoveWindow(200,200)   ; Move the window to the coordinate 200,200 
  
  MessageRequester("Information", "Click to resize the Window", 0) 
  ResizeWindow(320,200) ; Resize the window to 320,200 

  Repeat 
    EventID = WaitWindowEvent() 

    If EventID = #PB_Event_CloseWindow  ; If the user has pressed on the close button 
      Quit = 1 
    EndIf 

  Until Quit = 1 
  
EndIf 

result=CallFunction(AppFace,"SkinRemove") 

CloseLibrary(AppFace) 

End   ; All the opened windows are closed automatically by PureBasic 
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

oui j'ai vu. c'est impressionnant de facilité de mise en oeuvre avec pure. oui vraiment... par contre moi ce qui me décoit c'est les skins je les trouve criardes, jolies mais pas très claires mais peut etre que la version enregistrée en a de beaucoup plus sympa... mais du coup si c payant, pas cool :roll:
Image
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Oui les Skin sont très décevant même si ça reste impressionnant, il y en a un ou deux d'intéressant.

Par contre la version de base n'est pas très chère $29 mais il y a cette histoire de N° de série que je ne comprends pas pour l'utilisation de la Dll.
Répondre