Gambas France BETA


Pas de compte ? Incription

Recuperer longueur d'une valeur dans une tableview

Ce sujet est résolu.

12
AuteurMessages
kwuy33#1 Posté le 16/4/2014 à 16:10:12
Bonjour,
Mon titre n'est pas tres representatif de ce que je veux faire....je voudrais que la largeur de la colonne s'adapte en fonction de la plus grande longueur du texte contenu dedans
exemple :
col1
toto
tata
taratata

je voudrais que ma colonne ai la taille de la cellule contenant le texte taratata

Merci a vous
Reivillo#2 Posté le 16/4/2014 à 19:58:14
C' est ici, et nul part ailleurs. « Et pis c'est tout ! »Bonsoir kwuy33.

Voici, un code à Experimenter...

Tu peux cacher le < Label1 >, avec sa propriété < Hide >.

Reivillo.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
PUBLIC SUB Form_Open()

TableView1.Columns.count = 5
TableView1.Rows.count = 5
TableView1[0, 2].Text = "Test"
TableView1[1, 2].Text = "Test"
Label1.AutoResize = TRUE

END

PUBLIC SUB Button1_Click()

DIM sText AS STRING = "Gambas is Good"

Label1.Text = sText
TableView1[0, 2].Text = sText
TableView1.Columns[2].W = Label1.W

END
Version LinuxMint 13 (1.6.1-1+maya-mate(32-bit)) LTS Noyau 3.14.33-031433-generic (27-02-2015)
LinuxMint 13 Mate Fr ICI, LinuxMint 17 Mate Fr .
Programmation Gambas3 Installé depuis la Console Terminal avec successivement: Les 3 Lignes sudo en Gras ci-dessous...
sudo add-apt-repository ppa:gambas-team/gambas3
sudo apt-get update
sudo apt-get install gambas3 -y
Gambas3.8.4-57.47 (Mise à Jour Auto via mintupdate le 28-01-2016)
Pour la Doc, c'est vers là: Documentation Gambas3 FR
Reivillo#3 Posté le 17/4/2014 à 08:15:36
C' est ici, et nul part ailleurs. « Et pis c'est tout ! »RE.

Un RETOUR, serai Sympa.
Si ton Sujet est OK, marque-le en Résolu.

Autant, prendre les bonnes habitudes...

Amicalement.
Reivillo.
Version LinuxMint 13 (1.6.1-1+maya-mate(32-bit)) LTS Noyau 3.14.33-031433-generic (27-02-2015)
LinuxMint 13 Mate Fr ICI, LinuxMint 17 Mate Fr .
Programmation Gambas3 Installé depuis la Console Terminal avec successivement: Les 3 Lignes sudo en Gras ci-dessous...
sudo add-apt-repository ppa:gambas-team/gambas3
sudo apt-get update
sudo apt-get install gambas3 -y
Gambas3.8.4-57.47 (Mise à Jour Auto via mintupdate le 28-01-2016)
Pour la Doc, c'est vers là: Documentation Gambas3 FR
kwuy33#4 Posté le 17/4/2014 à 08:59:51
Pas de souci Reivillo mais j'ai pas encore pu tester ta soluce suis sur debug pgm java/Talend pour le moment mais promis des que j'ai fini je teste ta solution

[edit] j'ai pris 2 minutes pour tester ca à partir de ton exemple
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
PUBLIC FUNCTION GriDLoad(fichier AS STRING, pTableView AS TableView) AS BOOLEAN

DIM FileJob AS File
DIM GridLigNbr AS INTEGER, GridColNbr AS INTEGER
DIM FileLineArray AS String[]
DIM x AS INTEGER, i AS INTEGER, j AS INTEGER
DIM ColWidth AS INTEGER

IF Exist(fichier) THEN
FileJob = OPEN (fichier) FOR READ
LINE INPUT #FileJob, $ResultLine
FileLineArray = Split($ResultLine, ";")
'Nombre de colonne
GridColNbr = FileLineArray.Count
pTableView.Columns.Count = GridColNbr
' pTableView.Columns.Width = pTableView.W / GridColNbr

'entete de colonne
FOR x = 0 TO GridColNbr - 1
pTableView.Columns[x].Title = FileLineArray[x]

NEXT
'Remplissage du tableau
j = 0
pTableView.Rows.Insert(j)
WHILE NOT Eof(FileJob)
LINE INPUT #FileJob, $ResultLine
FileLineArray = Split($ResultLine, ";")
FOR i = 0 TO GridColNbr - 1
'Message.Info(FileLineArray[i])
LabelW.Text = Trim(FileLineArray[i])
pTableView[j, i].Text = Trim(FileLineArray[i])
pTableView.Columns[i].W = LabelW.W
NEXT
IF NOT Eof(FileJob) THEN
INC j
pTableView.Rows.Insert(j)
GridLigNbr = j
ENDIF
WEND
ENDIF
RETURN TRUE

END

Marche pas...
Merci de ton aide
Bernard55#5 Posté le 17/4/2014 à 10:59:10
Bonjour kwuy33

essaye ça:
1
IF pTableView.Columns[i].W < LabelW.W THEN pTableView.Columns[i].W = LabelW.W


à la place de:
1
pTableView.Columns[i].W = LabelW.W
kwuy33#6 Posté le 17/4/2014 à 11:07:46
C'etait une bonne idee mais....ca marche pas non plus. Il n'y a pas une fonction autoresize d'un cell ????
Bernard55#7 Posté le 17/4/2014 à 11:12:12
A tu mis la propriété AutoResize du labelW à True

kwuy33#8 Posté le 17/4/2014 à 11:15:55
yes...
Bernard55#9 Posté le 17/4/2014 à 11:19:57
J'ai essayer chez moi avec ton code et ça marche, les colonnes sont bien à la largeur du texte le plus long!!
kwuy33#10 Posté le 17/4/2014 à 11:22:23
Arf....ca c'est pas normal...
Bernard55#11 Posté le 17/4/2014 à 11:26:31
Je viens d'essayer en changeant les composants gb.gui, gb.qt4 et gb.gtk, ça marche avec tous

tu obtiens quoi comme résultat?
kwuy33#12 Posté le 17/4/2014 à 11:30:26
un truc pas cool


En sachant que par exemple les colonnes code et cdart vont de 2 a 9 chiffres
Reivillo#13 Posté le 17/4/2014 à 11:42:35
C' est ici, et nul part ailleurs. « Et pis c'est tout ! »Ouvre un autre Projet,et Teste(seul),
sans rien changer,le bout de code que je t'ai posté,
et dit nous si il fonctionne.
Pour voir le changement, Clique sur le Bouton.
Version LinuxMint 13 (1.6.1-1+maya-mate(32-bit)) LTS Noyau 3.14.33-031433-generic (27-02-2015)
LinuxMint 13 Mate Fr ICI, LinuxMint 17 Mate Fr .
Programmation Gambas3 Installé depuis la Console Terminal avec successivement: Les 3 Lignes sudo en Gras ci-dessous...
sudo add-apt-repository ppa:gambas-team/gambas3
sudo apt-get update
sudo apt-get install gambas3 -y
Gambas3.8.4-57.47 (Mise à Jour Auto via mintupdate le 28-01-2016)
Pour la Doc, c'est vers là: Documentation Gambas3 FR
kwuy33#14 Posté le 17/4/2014 à 11:49:48
Reivillo:
Effectivement ca ne fonctionne pas non plus



Bernard55#15 Posté le 17/4/2014 à 12:08:09
En effet! il y a un problème
et là je ne voit pas pour l'instant de quoi ça vient
12