Lien Github
Help for use
Remarque: Il y à un décalage sur l'image entre le curseur souris et sa position réel.
Développé en POO et avec un usage est asse simple. On utilise deux type d'objet un pour la table et un autre par colonne.
La version actuel 1.1 est une preview et loin d'être achevée.
Voici le code de l'exemple:
Code : Tout sélectionner
XIncludeFile "MEM_TABLE.pbi"
Global myTable.MEM_TABLE::_MEM_TABLE
Global.COLUMN_TABLE::_COLUMNS name,adress,ZipCod,Town,Country
Global Dim teste.s(300)
; Create memory table and column
myTable=MEM_TABLE::New(10,10,780,580,"Teste")
name=myTable\AddColumn("Name",140,COLUMN_TABLE::#EditableColumn|COLUMN_TABLE::#ResizableColumn)
name\SetHelpMessage("push SHIFT and left click for edit")
Country=myTable\AddColumn("Country",200,COLUMN_TABLE::#EditableColumn|COLUMN_TABLE::#UseCombobox)
adress=myTable\AddColumn("Adress",180,COLUMN_TABLE::#ResizableColumn)
ZipCod=myTable\AddColumn("Zip code",200)
Town=myTable\AddColumn("Town",200)
For i=1 To 300
name\SetValue("Name "+Str(i))
teste(i-1)="Name "+Str(i)
Next
adress\SetValue("Rue Sainry 140")
adress\SetValue("Rue du park 210")
Country\AddToComboList("France")
Country\AddToComboList("Belgique")
Country\SetValue("0")
Country\SetValue("1")
Procedure LineIsSelected(line,*data.COLUMN_TABLE::_COLUMNS)
Debug "La ligne "+Str(line)+" à été sélectionnée"
EndProcedure
Procedure ColumnIsModif(line,*data.COLUMN_TABLE::_COLUMNS)
If *data
teste(line)= *Data\GetValue(line)
EndIf
Debug teste(line)
EndProcedure
myTable\AddCallback(@LineIsSelected(),MEM_TABLE::#EventSelectedLine)
myTable\AddCallback(@ColumnIsModif(),MEM_TABLE::#EventEditColumn)
Procedure Open()
OpenWindow(0,0,0,800,600,"Teste",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
myTable\Show(0)
EndProcedure
; starting program
Open()
; main loop
Repeat:WaitWindowEvent():Until Event()=#PB_Event_CloseWindow
End