Ce sujet est résolu.
1 | |||
Auteur | Messages | ||
---|---|---|---|
Foromus | #1 Posté le 8/10/2012 à 17:50:06 | ||
Bon, la forge est rallumée... Bonjour, Utiliser Gridview me semble une bonne idée. Pour une initiation, je suis allé voir sur le site (http://gambaslinux.eg2.fr/articles.php?lng=fr&pg=442). Impeccable : rien ne marche ! Vu que le tuto est de 2009, il doit être obsolète. Première chose : comment on détermine le nombre de colonnes ? Après, pour renseigner les en-têtes, on fait comment ? Je veux mettre "Outils" pour la première colonne, "Prix" pour la seconde. Faut-il renseigner le nombre de lignes au départ, ou est-ce à l'avenant, comme dans une listbox ? Dans ma liste d'outils, je voudrais insérer "Pince", entre la ligne "Marteau" et la ligne "Enclume" qui lui fait immédiatement suite. Après ça, j'ai un remord de conscience, et je me dis que "Pince" est très mal placé et je supprime la ligne... Bon, une fois que je saurai déjà faire ça, je pourrai m'exercer et chercher autre chose. Mais pour l'instant, je ne suis toujours pas arrivé à faire un seul truc ! Merci de votre attention et de votre aide. | |||
jibi | #2 Posté le 9/10/2012 à 14:41:35 | ||
codergambas.jimdofree.com | Bonjour tu peux voir cet exemple d'utilisation de gridview : girdview sinon par exemple :
pour ton histoire de rajouter ou supprimer une ligne ou déplacer, personnellement je travail à partir de mon tableau de données, le remplissage du gridview se faisant automatiquement Bonne journée Jibi Debian GNU/Linux 11 64-bit | ||
manu | #3 Posté le 9/10/2012 à 17:48:52 | ||
Avec Gambas ca roule ! | Un autre exemple dans la forge expliquant comment remplir un Gridview à partir d'un tableau de données. Très simple et très bien expliqué. http://www.gambasforge.org/code-5-exemple-du-gridview.html Jeanne d'arc, elle a frit, elle a tout compris ! Config : Manjaro linux (excellent !) XFCE 4.1 (simple et efficace) Gambas 3 dans les dépots (confort total) | ||
Foromus | #4 Posté le 9/10/2012 à 22:08:00 | ||
Bonsoir à tous, Après moult essais et nombre de bidouillages, j'étais +/- arrivé à faire 5 lignes et deux colonnes et mieux encore, à remplir les 10 cellules ! Bon, je vais essayer de voir ce que vous m'offrez. Concrètement, je pensais utiliser ce contrôle pour modifier un fichier text, lequel enregistre successivement un outil et un prix. Certes, les puristes me diront qu'il est bien plus facile et bien plus simple de prendre un simple éditeur de texte et de faire ce que j'ai à faire ! D'accord mais on programme d'abord pour se faire plaisir, non ?... Merci déjà, même si je n'ai pas tout vu pour l'instant. A l'attention du tenancier : Ce n'est peut-être pas un problème, mais j'ai remarqué, plusieurs fois déjà, que je ne suis pas toujours averti des réponses. Je passe ici par hasard, je trouve deux réponses, mais je n'ai toujours pas reçu de mail d'avertissement à 22H | |||
jibi | #5 Posté le 9/10/2012 à 22:38:22 | ||
codergambas.jimdofree.com | j'ai remarqué, plusieurs fois déjà, que je ne suis pas toujours averti des réponses effectivement moi aussi! Debian GNU/Linux 11 64-bit | ||
gambix | #6 Posté le 12/10/2012 à 14:12:18 | ||
Faire simple ! | hum faut voir Moins de texte dans une signature c'est agrandir son espace. | ||
gambix | #7 Posté le 12/10/2012 à 14:45:41 | ||
Faire simple ! | Utilise TableView. Il permet l'edition semi automatique du contenu des cellules Tucharge ton fichier dans un ensemble CLASS Tarifs Public Article as String Public Prix as Float Dans ton programme ensuite Private $Tarifs as New Tarifs[] Publis Sub LoadTarif() Dim ars as new String[] dim sLigne As string dim oTarif as tarifs For each sLigne in SPlit(File.Load(MionFichier"), "\n") ars = scan(sLigne,"* *") oTarif = New Tarifs oTarif.Article = ars[0] oTarif.Prix = ars[1] $Tarifs.add(oTarif) next GridView1.Rows.Count = $Tarifs.Count end Bon ensuite tu as bien sur définit grid view a 2 colonnes (gridview1.Columns.count =2) Public sub GridView1_Data(row,column) if column = 0 then $Tarifs[row].Articles else $Tarifs[row].Prix endif end Remplace tout ça par tableview c'est idem pour l'edition ... chercheun peu... on se revoit demain pour a sauvegarde ... ben c'est l'inverse du chargement. sinon t'a xml aussi qui est pas mal pour la sauvegarde en fichier ou setting. Gambas c'est dix ans de dev ... des outils ... yen a ;-) Moins de texte dans une signature c'est agrandir son espace. | ||
Foromus | #8 Posté le 5/11/2012 à 18:53:21 | ||
Bonsoir tout le monde, Un petit retour sur l'étude de ma gridview... J'ai trouvé comment remplir, j'ai vu qu'on pouvait fixer le nombre de lignes par une variable : intéressant. Effectivement : remplir à partir d'un tableau ma parait une bonne idée. Donc sur ce point, je vais voir. Un petit détail en passant : j'ai remarqué "Sort" dans ce contrôle : je me suis dit que, après tout, si ça pouvait aussi me mettre ma liste 1 par ordre alphabétique, tiens, ça ne serait pas mal du tout. Le souci : j'ai beau cliquer sur l'en-tête, la flèche change bien de sens (vers le haut, ou vers le bas), par contre, ma liste, elle, ne bouge pas. Voici mon code : gdOutillage[0, 0].Text = "Marteau" ' Chargement de la grille gdOutillage[1, 0].Text = "Enclume" gdOutillage[2, 0].Text = "Pince" gdOutillage[3, 0].Text = "Clé à molette" gdOutillage[4, 0].Text = "Clé plate" gdOutillage[5, 0].Text = "Tournevis plat" gdOutillage[6, 0].Text = "Tournevis cruciforme" gdOutillage[0, 1].Text = "500" gdOutillage[1, 1].Text = "900" gdOutillage[2, 1].Text = "350" gdOutillage[3, 1].Text = "270" gdOutillage[4, 1].Text = "50" gdOutillage[5, 1].Text = "150" gdOutillage[6, 1].Text = "180" Bien entendu, si la liste outil était classée, il faudrait que les prix attenants soient aussi déplacés. (Au passage, je me souviens d'avoir eu déjà pas mal de déconvenues avec la fonction tri, dans les tableurs par exemple). Bon, mais pour revenir à cette ordre de classement,je pense que ça pourrait être utile dans la mesure où on rajoute un article. Il y aurait alors une mise en ordre, après rechargement de la liste je suppose, parce que, si on rajoute un article, ce ne peut qu'être à la dernière ligne. On peut s'arranger pour toujours laisser une ligne vide en bas, en cas de besoin. Maintenant, si on rajoute, dans le fichier ou dans le tableau, ça n'a plus de raison d'être. Bon, pour l'instant, ma question est de savoir pourquoi ça ne classe pas. Merci pour votre aide. | |||
gambix | #9 Posté le 5/11/2012 à 19:04:23 | ||
Faire simple ! | Sort permet de générer l'évènement sort... D'ou :
Moins de texte dans une signature c'est agrandir son espace. | ||
gambix | #10 Posté le 5/11/2012 à 19:15:05 | ||
Faire simple ! | POur cela tu doit utiliser un tableau de classe qui fournit le contenus de ton tableau. Les objet classes représentes une ligne. Public Article as string Public Prix as Float Public sub _Compare(Other as MyArticle) as integer Return Compare(Me.Acticle, Other.Article) end dans dan le formulaire principale Public Sub MyGridView_Sort() MyArray.Sort(iif(MyGridView.Columns.Ascending, true, false)) End Public sub GridView_Data(Row as integer, Column as integer) select case Column Case 0 Last.Data.Text = MyArray[Row].Article Case 1 Last.Data.Text = Format(MyArray[Row].Prix, "#.## €") if MyArray[Row].Prix > 100 then Last.Data.Forground=color.red Last.Data.Font.Bold=True endif endif end Mais ce n'est la qu'un aperçu dece que peut faire cette classe ... en modeavancé par exemple on a pu faire le treeview avec :-). C'est la deuxième classe la plus dingue après Drawingarea. Moins de texte dans une signature c'est agrandir son espace. | ||
Foromus | #11 Posté le 19/11/2012 à 09:08:22 | ||
Bonjour, Pour l'instant, je suis arrivé à utiliser à peu près ce contrôle, tout au moins, pour ce que j'ai à en faire. Pour ce qui est du classement, je verrai peut-être par la suite. La réponse ci-dessus est probablement la plus adéquate, pas certain que j'en maîtrise toute l'étendue. A la limite, je pourrais adopter une procédure dichotomique, à savoir, lire chaque ligne, à partir du bas, et inverser si la ligne au-dessus est inférieure alphabétiquement, tout ça dans un boucle loop, on en sort quand il n'y a plus d'inversion. Dans ma logique élémentaire qui me sert au quotidien, je ne comprends pas bien le "sort" de la gridview, dès lors qu'il n'agit pas spécifiquement sur le moment, je le considère comme ne pouvant guère m'être utile. Cela dit, je suis très heureux d'avoir découvert ce contrôle, il est simple, finalement, on peut renseigner le nombre de lignes en cours de programme, c'est une particularité intéressante par rapport au tableau qui, lui, devient figé à partir du moment où il a été déclaré. Merci pour l'aide que j'apprécie beaucoup ! | |||
gambix | #12 Posté le 19/11/2012 à 21:30:09 | ||
Faire simple ! | un tableau n'est pas figé !! montableau.resize de plus en interne tout est tableau il ne faut pas utiliser des tableau dit embarqué mais des tableau dynamiques montableau = new montype[] montableau.add(maval) Moins de texte dans une signature c'est agrandir son espace. | ||
1 |