Table mémoire éditable

Programmation d'applications complexes
Avatar de l’utilisateur
microdevweb
Messages : 1798
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Table mémoire éditable

Message 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
Dernière modification par microdevweb le dim. 30/juil./2017 11:25, modifié 4 fois.
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
Kwai chang caine
Messages : 6962
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Table mémoire éditable

Message 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é.
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
microdevweb
Messages : 1798
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: Table mémoire éditable

Message 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
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
microdevweb
Messages : 1798
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: Table mémoire éditable

Message par microdevweb »

Nouvelle preview 1.1
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Tonio
Messages : 95
Inscription : ven. 07/avr./2017 14:49
Localisation : Sud Est

Re: Table mémoire éditable

Message par Tonio »

Un grand Merci pour ce partage
Avatar de l’utilisateur
Kwai chang caine
Messages : 6962
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Table mémoire éditable

Message 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)
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
microdevweb
Messages : 1798
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: Table mémoire éditable

Message 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.
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Répondre