sous classement
Publié : ven. 24/févr./2006 0:51
Bonjour, je vous propose ici un exemple de sous classement d'une editbox pour afficher un numéro de téléphone quand on appuie sur entrée
Code : Tout sélectionner
;------------------------------------------------------
;Window et Gadget
;------------------------------------------------------
Enumeration
#MainForm
#EdtTelephone
EndEnumeration
;------------------------------------------------------
;Variables globales
;------------------------------------------------------
;handle de la fenetre
Global hWnd.l
;handle de l'editbox (peut etre recupere avec gadgetid())
Global hEdtTelephone.l
;proc normale de l'editbox
Global EdtTelephoneOldProc.l
Global Quit.b = #False
;------------------------------------------------------
;Procedure de sous classement
;------------------------------------------------------
Procedure EdtTelephoneWndProc(WindowID, Message, wParam, lParam)
Select Message
Case #WM_KEYDOWN
chaine$=GetGadgetText(#EdtTelephone)
If wParam = #VK_RETURN
If Len(chaine$) >8
SetGadgetText(#EdtTelephone, Mid(chaine$, 0, 2) +"-"+Mid(chaine$, 3, 2) +"-" +Mid(chaine$, 5, 2) +"-" +Mid(chaine$,7, 2) +"-" +Mid(chaine$, 9, 2) )
SendMessage_(WindowID,#EM_SETSEL,0,15)
ProcedureReturn 0
EndIf
EndIf
EndSelect
ProcedureReturn CallWindowProc_(EdtTelephoneOldProc, WindowID, Message, wParam, lParam)
EndProcedure
;------------------------------------------------------
;Debut de programme
;------------------------------------------------------
hWnd = OpenWindow(#MainForm, 0, 0, 220, 40, #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget,"SousClassement")
If hWnd
If CreateGadgetList(WindowID(#MainForm))
hEdtTelephone = StringGadget(#EdtTelephone, 10,10, 200, 20,"", #PB_String_Numeric)
EdtTelephoneOldProc = SetWindowLong_(hEdtTelephone, #GWL_WNDPROC, @EdtTelephoneWndProc())
EndIf
EndIf
Repeat
EventID = WaitWindowEvent()
Select EventID
Case #PB_Event_CloseWindow
Quit = #True
EndSelect
Until Quit = #True
End