...
Publié : ven. 07/mai/2004 23:03
...
Code : Tout sélectionner
Procedure pointe_truc( StructPtr )
*ptr.truc = StructPtr
Debug *ptr\machin
EndProcedure
Code : Tout sélectionner
Procedure pointe_truc(*ptr.truc)
;Debug PeekL(ptr\machin) ;le pointeur a diparu et si tu le rajoute tu n'as plus besoin de PeekL puisque tu pointes sur une variable.
;la ligne au dessus pose problème...
EndProcedure
Code : Tout sélectionner
Procedure pointe_truc(*ptr.truc)
Debug *ptr\machin
EndProcedure
Code : Tout sélectionner
#DI_NORMAL = $0003
Procedure WindowCallback(WindowID, Message, wParam, lParam)
Result = #PB_ProcessPureBasicEvents
Select Message
Case #WM_DRAWITEM
*DrawItem.DRAWITEMSTRUCT = lParam ; <------------- ICI
If *DrawItem\CtlType = #ODT_COMBOBOX
SetBkMode_(*DrawItem\hDC, #TRANSPARENT)
If *DrawItem\ItemState & #ODS_FOCUS
Brush = CreateSolidBrush_($FFEEFF)
FillRect_(*DrawItem\hDC, *DrawItem\rcItem, Brush)
DeleteObject_(Brush)
SetTextColor_(*DrawItem\hDC, $FF)
Else
FillRect_(*DrawItem\hDC, *DrawItem\rcItem, GetStockObject_(#WHITE_BRUSH))
EndIf
If *DrawItem\itemID <> -1
Text$ = Space(512)
SendMessage_(*DrawItem\hwndItem, #CB_GETLBTEXT, *DrawItem\itemID, @Text$)
DrawIconEx_(*DrawItem\hDC, *DrawItem\rcItem\left+2 , *DrawItem\rcItem\top+1, LoadIcon_(0, #IDI_ASTERISK), 16, 16, 0, 0, #DI_NORMAL)
TextOut_ (*DrawItem\hDC, *DrawItem\rcItem\left+2+20, *DrawItem\rcItem\top+1, Text$, Len(Text$))
EndIf
EndIf
EndSelect
ProcedureReturn Result
EndProcedure
OpenWindow(0, 0, 0, 340, 35, #PB_Window_SystemMenu|#PB_Window_ScreenCentered | #PB_Window_SizeGadget | #PB_Window_TitleBar , "ComboBox")
CreateGadgetList(WindowID())
ComboBoxGadget(0, 5, 5, 330, 200, #CBS_OWNERDRAWFIXED)
AddGadgetItem(0, -1, "Test1")
AddGadgetItem(0, -1, "Test2")
AddGadgetItem(0, -1, "Test3")
SetWindowCallback(@WindowCallback())
Repeat : Until WaitWindowEvent()=#PB_EventCloseWindow
End
C'est interdit parceque, du point de vue du compilo, ça ne veut rien dire: "@variable" est une expression qui renvoie quelquechose (l'adresse de la variable), ce n'est donc pas à sa place ici.Procedure Toto( @Valeur )
; code
EndProcedure
Code : Tout sélectionner
structure mastruc
valeur.l
chaine.s
endstructure
procedure valverschaine(*ptr.mastruc)
*ptr\chaine=str(*ptr\valeur)
endprocedure
deftype.mastruc mavar
mavar\valeur=18
valverschaine(@mavar)
result$=mavar\chaine
debug result$