J'ai trouvé sa dans la base de donnée de ???
"troue de mémoire"
C'est vraiment suber ce code, c'est ce qui me fallait dic donc pour un autre truc que je suis en train de faire

Pourriez-vous le convertir en 4.50 svp

Et serais-ce possible aussi que sa renvoie les information non pas au survole de la souris mais quand
un élément d'une colonne est sélectionner "Ah oui mais problème !, on ne peut sélectionner que les premier élément d'une ListIcon"
C'est ennuyant tous de même qu'on soit obliger de passer par L'api de Windows pour pouvoir sélectionner / changer l'élément voulut
Code : Tout sélectionner
; http://www.purebasic-lounge.de
; Author: Hroudtwolf
; Date: 10. November 2006
; OS: Windows
; Demo: No
; ###############################################
; # GetItemUnderCursor #
; # GetColumnUnderCursor #
; ###############################################
; # 2006 By Hroudtwolf #
; # Last Update: 10.11.2006 #
; # PB 4.01 #
; ###############################################
Declare GetItemUnderCursor (Gadget.l)
Declare GetColumnUnderCursor (Gadget.l , NumberOfColumns.l)
; ###############################################
; # Hauptprogramm #
; ###############################################
*Window.Long = OpenWindow(#PB_Any , #PB_Ignore , #PB_Ignore , 500 , 400 , "ListIcon Mouse-Infos", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
If *Window = #False Or CreateGadgetList(*Window\l) = #False
MessageBox_(0,"Ubekannter Fehler.","Fehler",#MB_OK|#MB_ICONERROR)
End
EndIf
CreateStatusBar (1, *Window\l)
Global *List.Long = ListIconGadget(#PB_Any, 0, 0, 500, 400 - StatusBarHeight (1), "Name", 100, #PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection|#PB_ListIcon_GridLines|#PB_ListIcon_HeaderDragDrop)
AddGadgetColumn (*List , 1 , "Strasse" , 100)
AddGadgetColumn (*List , 2 , "PLZ" , 60)
AddGadgetColumn (*List , 3 , "Ort" , 140)
AddGadgetColumn (*List , 4 , "Telefon" , 95)
Restore Personal
For x = 0 To 3
Read PersData.s
AddGadgetItem (*List , x , StringField (PersData.s , 1 , ";"))
SetGadgetItemText (*List , x , StringField (PersData.s , 2 , ";") , 1)
SetGadgetItemText (*List , x , StringField (PersData.s , 3 , ";") , 2)
SetGadgetItemText (*List , x , StringField (PersData.s , 4 , ";") , 3)
SetGadgetItemText (*List , x , StringField (PersData.s , 5 , ";") , 4)
Next x
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
End
Case #WM_MOUSEMOVE
StatusBarText (1,0,"Item: "+Str(GetItemUnderCursor (*List))+" Column:"+Str(GetColumnUnderCursor (*List , 5)))
EndSelect
ForEver
Procedure GetItemUnderCursor (Gadget.l)
Protected HitTestInfo.LV_HITTESTINFO
Protected hwnd .l =GadgetID(Gadget.l)
Protected re .rect
Protected pt .POINT
GetWindowRect_(hwnd.l,re)
GetCursorPos_(pt.POINT)
If PtInRect_(re,pt\x,pt\y)
HitTestInfo\pt\x = pt\x - re\left
HitTestInfo\pt\y = pt\y - re\top
ClientToScreen_(GetActiveWindow_(), @HitTestInfo\pt)
ScreenToClient_(hwnd .l, @HitTestInfo\pt)
ProcedureReturn SendMessage_(hwnd .l, #LVM_HITTEST, 0, @HitTestInfo)
EndIf
ProcedureReturn #False
EndProcedure
Procedure GetColumnUnderCursor (Gadget.l , NumberOfColumns.l)
Protected hwnd .l =GadgetID(Gadget.l)
Protected re .rect
Protected pt .POINT
Protected width .l
Protected prevwidth .l
NumberOfColumns.l - 1
GetWindowRect_(hwnd.l,re)
GetCursorPos_(pt.POINT)
If PtInRect_(re,pt\x,pt\y)
While CurrentCol.l <= NumberOfColumns.l
width.l + SendMessage_(hwnd .l , #LVM_GETCOLUMNWIDTH , CurrentCol.l , 0)
If pt\x - re\left > prevwidth.l And pt\x - re\left < width.l
ProcedureReturn CurrentCol.l + 1
EndIf
prevwidth.l = width.l
CurrentCol.l + 1
Wend
EndIf
ProcedureReturn #False
EndProcedure
DataSection
Personal:
Data.s "Olaf Maier;Rheinstrasse 3;64283;Darmstadt;06151-303071;"
Data.s "Herbert Schmiedt;Neue Strasse 44;64572;Gross-Gerau;06152-5478196;"
Data.s "Franz Bauer;Europaring 12;64319;Pfungstadt;06157-33054;"
Data.s "Heinz Huber;Zehntgasse 34;64285;Darmstadt;06151-22344;"
EndDataSection