Page 1 sur 1

Table mémoire éditable

Publié : sam. 29/juil./2017 9:55
par microdevweb
Image

:arrow: Lien Github
:arrow: 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

Re: Table mémoire éditable

Publié : sam. 29/juil./2017 12:59
par Kwai chang caine
Merci du partage 8)

J'ai une erreur ligne au fichier Main.pb à la ligne 24 "EndProcedure" des que je clique sur une ligne
W10 X64 / v5.60 x86
Attente du démarrage du programme...
Type d'exécutable: Windows - x86 (32bit, Unicode)
Exécutable démarré.
[ERREUR] main.pb (Ligne: 24)
[ERREUR] Accès mémoire invalide. (erreur de lecture à l'adresse 0)
Le programme a été arrêté.

Re: Table mémoire éditable

Publié : sam. 29/juil./2017 13:26
par microdevweb
Merci Kwai chang caine,

Je n'ai pas d'erreur (je suis en x64 Pb 5.60)

Pourrait tu essayé en remplaçant la ligne 22

Code : Tout sélectionner

Procedure LineIsSelected(line)
par

Code : Tout sélectionner

Procedure LineIsSelected(line,*data.COLUMN_TABLE::_COLUMNS)
Un grand merci d'avance

Re: Table mémoire éditable

Publié : sam. 29/juil./2017 14:38
par microdevweb
Nouvelle preview 1.1

Re: Table mémoire éditable

Publié : dim. 30/juil./2017 17:49
par Tonio
Un grand Merci pour ce partage

Re: Table mémoire éditable

Publié : lun. 31/juil./2017 19:20
par Kwai chang caine
MicroDevWeb a écrit :Pourrait tu essayé en remplaçant la ligne 22
Je ne suis plus sur la même machine, et n'y serait pas pendant un bon bout de temps, donc je ne peux retester ce que tu m'as demandé :|
La nouvelle version fonctionne sur W7 X86 v5.60
Parfois des lenteurs lorsque l'on clique un peu partout, le scroll se bloque, on dirait qu'il fait une tonne de calculs derrière, mais si on attends ça remarche
Encore merci pour tout ce travail partagé 8)

Re: Table mémoire éditable

Publié : mar. 01/août/2017 11:15
par microdevweb
@Kwai chang caine merci pour ses infos, je pense savoir d'ou ça vient.

Correction: Heu non je pensais ne pas libère une image, mais ce n'est pas le cas.