Gambas France BETA


Pas de compte ? Incription

instanciation SVP

Ce sujet est résolu.

12
AuteurMessages
valaquarus#1 Posté le 13/1/2019 à 18:22:44
-- Unus Ex Altera --Bonsoir,
si une âme charitable veut bien m'aider : (si je demande c'est que je n'ai pas compris la doc sur le sujet)
Comment fait on l’instanciation d'un ensemble : TabStrip contenant un Panel qui contient un GridView
qui servirait de modèle autant de fois que nécessaire?
Ah que merci d'avance.
Philippe
Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.3
didier18#2 Posté le 15/1/2019 à 10:45:19
Bonjour valaquarus

A moins que je n'ai pas tout compris ce que tu veux faire, voici comment je ferai (ce n'est qu'un 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
' Gambas class file

PUBLIC tbstp AS NEW TabStrip(ME) AS "tbstp" 'créé un tabstrip sur le formulaire
PUBLIC pnl1 AS NEW Panel(ME) AS "pnl1" 'créé un panel
PUBLIC grvw AS NEW GridView(ME) AS "grvw" 'créé le gridview


PUBLIC SUB Form_Open()

WITH tbstp 'pour le tabstrip...
.Arrangement = 5 'arrange les composants de sorte qu'ils prennent toute la place
.Count = 2 'indique le nombre d'onglets (ici 2 (l'onglet 0 et l'onglet 1))
.H = 200 'hauteur du composant
.W = 300 'largeur du composant
END WITH

tbstp.Index = 1 'sélectionne le 2ème onglet (juste pour l'exemple)
'si tu veux mettre ton pnl1 sur l'onglet0, il faudra écrire tbstp.index = 0 pour le sélectionner.

WITH pnl1 'pour le panel 1...
.Reparent(tbstp, 0, 0) 'le déplace dans le tabstrip (donc sur le 2ème onglet)
.Background = Color.Orange 'met une couleur de fond (juste pour le repérage)
END WITH

WITH grvw 'pour le gridview...
.Reparent(pnl1, 0, 0) 'le déplace dans le pnl1 qui se trouve sur le 2ème onglet
.H = 150 'hauteur du composant
.W = 200 'largeur du composant
END WITH

END

Les lignes 3, 4, et 5 servent pour la création des composants sur ton formulaire.
Dans la sub Form_Open() on 'reparente' les composants, en fait on change leur conteneur parent (par exemple pour le gridview, on le déplace du formulaire vers le panel1 qui se trouve dans le 2ème onglet du tabstrip).

Il suffit juste de copier le code, tel que, dans un nouveau projet, les composants sont créés automatiquement...
Comme ils sont public, tu peux accéder directement à leurs événements respectifs (par exemple Public Sub grvw_Drag())

Bonne journée.
valaquarus#3 Posté le 15/1/2019 à 20:02:33
-- Unus Ex Altera --Merci Didier18,
je ne sais vraiment pas dire autre chose que merci, cela peut paraître bête mais venant de visual basic où c'est moins simple, je cherchais autrement.
Philippe
Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.3
valaquarus#4 Posté le 17/1/2019 à 22:55:42
-- Unus Ex Altera --Bonsoir,
Dans l'exemple de Didier18, si je veux avoir le même gridview dans plusieurs tab du tabstrip comment dois je procéder?

Philippe
Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.3
spheris#5 Posté le 17/1/2019 à 23:22:39
valaquarus,
utilise la fonction reparent.
pour simplifier imagine un système de boites dans lequelles tu peux mettres ou sortir les widgets à volonté par la commande :

monwidget.reparent
monwidget.child
... etc

regarde la doc à ce sujet, elle donne un bon aperçu de comment l'utiliser.
et pour ton exemple, choisi le tab que tu veux par :
1
2
tabstrip1.index = 1
magridview.reparent(tabstrip1)

;)
valaquarus#6 Posté le 18/1/2019 à 01:40:55
-- Unus Ex Altera --Bonsoir spheris,
merci de ta réponse, effectivement Didier18 m'avait orienté dans cette direction mais j'ai un soucis de doublon d'affichage dans le tabstrip dans le deuxième onglet la présentation du grid est systématiquement doublée. Je te met le bout de code pour que tu comprennes :
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
45
46
PUBLIC SUB affichGrid()
DIM i AS INTEGER
DIM pnl1 AS NEW Panel(ME) AS "pnl1"
DIM grvw AS NEW GridView(ME) AS "grvw"

FOR i = 0 TO tbstp.Count - 1

tbstp.Index = i

WITH pnl1
.Visible = TRUE
.Arrangement = 5
.Reparent(tbstp, 0, 0)
.Expand = TRUE
END WITH

WITH grvw
.Visible = TRUE
.AutoResize = TRUE
.AddColumn("De")
'.AddColumn("À")
.AddColumn("Objet")
.AddColumn("Date")
.AddColumn("Taille")
.Rows.Count = 13
.COLUMNS[0].WIDTH = 150
.COLUMNS[1].WIDTH = 150
.COLUMNS[2].WIDTH = 150
.COLUMNS[3].WIDTH = 50
'.COLUMNS[4].WIDTH = 15
.Reparent(pnl1, 0, 0)
.Grid = TRUE
.Header = 3
.Mode = 2
.Padding = 2
.Resizable = TRUE
.ScrollBar = 3
.Expand = TRUE
.AutoResize = TRUE
.Border = TRUE
.Sorted = TRUE
END WITH

NEXT

END

Philippe

Honte à moi, voici ma correction :
1
2
3
4
.Columns[0].Title = "De"
.Columns[1].Title = "Objet"
.Columns[2].Title = "Date"
.Columns[3].Title = "Taille"

en lieu et place de add.column
Philippe
Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.3
didier18#7 Posté le 18/1/2019 à 21:49:12
Bonsoir

valaquarus sans doute (comme je le supposait initialement) je n'ai pas bien compris ta demande...
En effet
...si je veux avoir le même gridview dans plusieurs tab du tabstrip...

S'agit-il de plusieurs gridview répartis en un par onglet...
Ou...
D'un seul et unique gridview que tu 'reparentes' lorsque tu changes d'onglet ?

A moins d'un besoin spécifique, je ne vois pas trop l'utilité de la 2ème option, quel est l'intérêt de "trimbaler" un gridview d'un onglet à l'autre ?
C'est pourtant ce que fais en utilisant la boucle :
1
2
3
4
5
6
...
FOR i = 0 TO tbstp.Count - 1
tbstp.Index = i
...
NEXT
...


Si tu veux mettre un gridview par onglet, je te conseillerai plutôt de créer un 'groupe' de gridview (et un goupe de panel).
Pour cela il faut modifier les lignes 4 et 5 comme suit :

1
2
PUBLIC pnl AS NEW Panel[] 'créé un tableau de Panel
PUBLIC grvw AS NEW GridView[] 'créé un tableau de GridView

Puis dans une procédure (qui pourra être privée), créer tes objets...
En général je crée une procédure 'crecompo' (pour création des composants).
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
45
46
47
48
49
50
51
52
53
PRIVATE SUB crecompo() 'création des composants pour l'application
DIM i AS INTEGER
'--------------------------------------------------
'création des pannels
'--------------------------------------------------
FOR i = 0 TO 1 'nbr de panels qui sont créés
pnl.Add(NULL, pnl.Count) 'on ajoute un panel et on le compte
pnl[i] = NEW Panel(ME) AS "grpnl" 'le composant (comptabilisée par i) est un nouveau composant
pnl[i].Tag = i 'on met le n° du composant (i) dans sa propriété .tag
WITH pnl[i]
.Visible = TRUE
.Arrangement = 5
.Expand = TRUE
END WITH
NEXT
' pnl[0] contient ...
' pnl[1] contient ...

'--------------------------------------------------
'création des gridview
'--------------------------------------------------
FOR i = 0 TO 1 'nbr de gridview qui sont créés
grvw.Add(NULL, grvw.Count) 'on ajoute un gridview et on le compte
grvw[i] = NEW GridView(ME) AS "grgrvw" 'le composant (comptabilisée par i) est un nouveau composant
grvw[i].Tag = i 'on met le n° du composant (i) dans sa propriété .tag
WITH grvw[i]
.Visible = TRUE
.AutoResize = TRUE
.AddColumn("De")
.AddColumn("Objet")
.AddColumn("Date")
.AddColumn("Taille")
.Rows.Count = 13
.COLUMNS[0].WIDTH = 150
.COLUMNS[1].WIDTH = 150
.COLUMNS[2].WIDTH = 150
.COLUMNS[3].WIDTH = 50
.Grid = TRUE
.Header = 3
.Mode = 2
.Padding = 2
.Resizable = TRUE
.ScrollBar = 3
.Expand = TRUE
.AutoResize = TRUE
.Border = TRUE
.Sorted = TRUE
END WITH
NEXT
' grvw[0] contient ...
' grvw[1] contient ...

END

Comme tu peux le voir, les panels et les gridview sont 'déposés' par défaut sur (Me) donc sur ton formulaire...
Il ne te reste plus qu'à 'reparenter' à l'endroit ou tu le souhaite.
Si tu t'aperçois après coup qu'il te faut 2 panels et 2 gridview de plus car tu a ajouté 2 onglets à ton tabstrip, rien de plus facile, tu as juste à modifier tes deux boucles For/Next en remplaçant 1 par 3...
Bien entendu il faudra aussi reparenter les nouveaux objets, ceci pourra être fait dans une autre procédure, Private Sub initcompo()'initialise les composants.

Pour le coup, la procédure Public Sub Form_Open(), ne contient que les appels au procédures crecompo() et initcompo()...

Bonne journée.
valaquarus#8 Posté le 19/1/2019 à 18:44:05
-- Unus Ex Altera --Oh vraiment merci de ta réponse Didier18;
j'étais justement sur ce problème et j'avais un début de réponse en pensant ranger chaque gridview et panel dans des tabelaux mais je m'y prenais mal alors vraiment merci.
je vais modifier mon progr en fonction de ces nouveaux éléments pour moi et je pourrais plus facilement peupler mes différents gridview dans ces nouvelles conditions car je butais justement là.
Je te tiendrai au courant.
Philippe
Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.3
didier18#9 Posté le 20/1/2019 à 00:14:32
Bonsoir

valaquarus, histoire de te faire gagner un peu de temps (inutile de ré-inventer la roue) et si ça correspond grosso modo à ce que tu veux faire, voici l'exemple complet et fonctionnel pour 10 onglets...
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
' Gambas class file

PUBLIC tbstp AS NEW TabStrip(ME) AS "tbstp" 'créé un tabstrip sur le formulaire
PUBLIC pnl AS NEW Panel[] 'créé un tableau de Panel
PUBLIC grvw AS NEW GridView[] 'créé un tableau de GridView



PUBLIC SUB Form_Open()

crecompo() 'création des composants pour l'application
initcompo() 'initialisation des composants
tbstp.Index = 0 'affiche le 1er onglet

END

PRIVATE SUB crecompo() 'création des composants pour l'application
DIM i AS INTEGER
'--------------------------------------------------
'création des pannels
'--------------------------------------------------
FOR i = 0 TO 9 'nbr de panels qui sont créés
pnl.Add(NULL, pnl.Count) 'on ajoute un panel et on le compte
pnl[i] = NEW Panel(ME) AS "grpnl" 'le composant (comptabilisée par i) est un nouveau composant
pnl[i].Tag = i 'on met le n° du composant (i) dans sa propriété .tag
WITH pnl[i]
.Visible = TRUE
.Arrangement = 5
.Expand = TRUE
END WITH
NEXT
' pnl[0] contient grvw[0]
' pnl[1] contient grvw[1]
'...
' pnl[9] contient grvw[9]
'--------------------------------------------------
'création des gridview
'--------------------------------------------------
FOR i = 0 TO 9 'nbr de gridview qui sont créés
grvw.Add(NULL, grvw.Count) 'on ajoute un gridview et on le compte
grvw[i] = NEW GridView(ME) AS "grgrvw" 'le composant (comptabilisée par i) est un nouveau composant
grvw[i].Tag = i 'on met le n° du composant (i) dans sa propriété .tag
WITH grvw[i]
.Visible = TRUE
.AutoResize = TRUE
.AddColumn("De")
.AddColumn("Objet")
.AddColumn("Date")
.AddColumn("Taille")
.Rows.Count = 13
.COLUMNS[0].WIDTH = 150
.COLUMNS[1].WIDTH = 150
.COLUMNS[2].WIDTH = 150
.COLUMNS[3].WIDTH = 50
.Grid = TRUE
.Header = 3
.Mode = 2
.Padding = 2
.Resizable = TRUE
.ScrollBar = 3
.Expand = TRUE
.AutoResize = TRUE
.Border = TRUE
.Sorted = TRUE
END WITH
NEXT
' grvw[0] contient ...
' grvw[1] contient ...
'...
' grvw[9] contient ...
END

PRIVATE SUB initcompo() 'initialisation des composants
DIM i AS INTEGER
'configuration du formulaire
WITH ME 'pour le formulaire
.Arrangement = 5 'arrange les composants de sorte qu'ils prennent toute la place
.Title = ("Mes_gidviews")
.H = 200
.w = 450
'toutes les autres modifications à apporter au formulaire...
'...
END WITH
'configuration du tabstrip
WITH tbstp
.Arrangement = 5 'arrange les composants de sorte qu'ils prennent toute la place
.Count = 10 'indique le nombre d'onglets (ici 2 (l'onglet 0 et l'onglet 1))
END WITH
'mise en place des composants selon la valeur contenue dans le tag de chaque composant...
FOR i = 0 TO 9 'pour i compte de 0 à 9 (soit pour les 10 onglets du tabstrip)
tbstp.Index = i 'sélectionne l'onglet du tabstrip
pnl[i].Reparent(tbstp, 0, 0) 'déplace le panel[i] dans l'onglet[i] du tabstrip
grvw[i].Reparent(tbstp, 0, 0) 'déplace le gridview[i] dans le panel[i] de l'onglet[i] du tabstrip
NEXT
END


A adapter selon ce que tu veux faire, hein...
Tu peux accéder à chaque "grvw" du groupe "grgrvw" individuellement par son numéro de tag (même fonctionnement pour les panels)...

Bon fin de soirée.

valaquarus#10 Posté le 20/1/2019 à 00:42:46
-- Unus Ex Altera --Merci Didier je crois que j'ai bien compris mais je ne veux pas un nombre précis de grid ou panel à insérer dans les tab mais un nombre dépendant de la saisie de l'opérateur, donc j'ai indexé ta déclaration crecompo(i As Integer)
voici mon code :
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
PUBLIC SUB LoadSettings()

DIM ix AS STRING, i AS INTEGER, AccountName AS STRING

Accounts = NEW Account[]
tbstp.Index = 0
FOR EACH ix IN Settings.keys["Accounts"]
AccountName = Settings["Accounts/" & ix]
i = AccountSlot(AccountName)
Accounts[i].Server = Settings[AccountName & "/Server"]
Accounts[i].User = UnBase64(Settings[AccountName & "/User"])
Accounts[i].Pass = UnBase64(Settings[AccountName & "/Pass"])
Accounts[i].Port = Settings[AccountName & "/Port"]
Accounts[i].SSL = IIf(Settings[AccountName & "/SSL"] = 1, TRUE, FALSE)

IF i = 0 THEN
'rien sinon on rajoute au compteur
ELSE
tbstp.Count = tbstp.Count + 1
ENDIF
tbstp.Index = i
tbstp[i].Text = AccountName

crecompo(i)

NEXT

tbstp.Index = 0
chkAnimate.value = IIf(Settings["Options/Animate"] = 1, TRUE, FALSE)
chkStartHidden.value = IIf(Settings["Options/StartHidden"] = 1, TRUE, FALSE)
chkBeep.value = IIf(Settings["Options/Beep"] = 1, TRUE, FALSE)
txtInterval.text = Settings["Options/Interval", 10]
IF CInt(txtInterval.text) <= 0 THEN
txtInterval.Text = 10
ELSE IF CInt(txtInterval.text) > 24 * 60 THEN
txtInterval.Text = 24 * 60
END IF
txtRun.text = Settings["Options/Run", "notify-send -t 5000 --icon 'email' '%s' 'nombre de courriel :' %m'"]
AddLog("paramètres chargés"
END

PUBLIC SUB crecompo(i AS INTEGER)

pnl.Add(NULL, pnl.Count)
pnl[i] = NEW Panel(ME) AS "grpnl"
pnl[i].Tag = i

WITH pnl[i]
.Visible = TRUE
.Arrangement = 5
.Expand = TRUE
.Reparent(tbstp, 0, 0)
END WITH

grvw.Add(NULL, grvw.Count)
grvw[i] = NEW GridView(ME) AS "grgrvw"
grvw[i].Tag = i

WITH grvw[i]
.Visible = TRUE
.AutoResize = TRUE
.AddColumn("De")
.AddColumn("Objet")
.AddColumn("Date")
.AddColumn("Taille")
.Rows.Count = 13
.Reparent(pnl[i], 0, 0)
.COLUMNS[0].WIDTH = 150
.COLUMNS[1].WIDTH = 150
.COLUMNS[2].WIDTH = 150
.COLUMNS[3].WIDTH = 50
.Grid = TRUE
.Header = 3
.Mode = 2
.Padding = 2
.Resizable = TRUE
.ScrollBar = 3
.Expand = TRUE
.AutoResize = TRUE
.Border = TRUE
.Sorted = TRUE
END WITH

END


Ceci fonctionne mais j'ai encore un problème de gestion des tab du tabstrip principal qui "reçoit" tout le monde pour rajouter ou pire détruire un tab le voici déclaré dans le form_open
1
2
3
4
5
6
7
8
9
10
11
12
WITH tbstp
.Reparent(TabStrip1)
.Arrangement = 2
.H = 335
.W = 620
.x = 7
.Y = 28
.Expand = TRUE
.Padding = 5
.AutoResize = FALSE
.Text = "--Avertissement--"
END WITH


Philippe

Bonne nuit!
Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.3
didier18#11 Posté le 20/1/2019 à 17:12:46
Bonjour

...j'ai encore un problème de gestion des tab du tabstrip principal ...

Je ne comprend pas bien là, tu as mis tbstp (qui est un TabStrip) dans un TabStrip, c'est ça ?
En tout cas c'est ce qui est indiqué dans le dernier morceau de code...
1
2
3
4
WITH tbstp
.Reparent(TabStrip1)
...
END WITH


D'ou il sort ce TabStrip1 ?
Et puis, pour le "reparentage", ce serait plutôt ".Reparent(TabStrip1,0,0)" qu'il faudrait écrire non ?
Curieux que gambas ne te l'ai pas signalé, mais je pense que c'est à partir de là qu'il faut rechercher l'erreur...

Pour ma part, gambas me retourne une erreur "Identificateur inconnu: Accounts..." à la lecture de cette ligne : "Accounts = NEW Account[]"
Faut-il activer une classe ou un composant spécifique ?

Bonne journée.
valaquarus#12 Posté le 20/1/2019 à 21:37:58
-- Unus Ex Altera --Bonsoir Didier18,
d'abord ceci en réponse à ta question :
1
2
3
4
5
6
7
8
9
PUBLIC STRUCT Account
Server AS STRING
User AS STRING
Pass AS STRING
Port AS STRING
SSL AS BOOLEAN
END STRUCT

PUBLIC Accounts AS Account[]

et ensuite le TabStrip1 est comme son nom l'indique un tabstrip à cinq onglets qui reçoit dans le premier le tbstp qui est déclaré et qui va recevoir tous les autres gridview en collection.
1
2
3
4
5
6
7
8
9
10
11
12
WITH tbstp
.Reparent(TabStrip1, 0, 0)
.Arrangement = 2
.H = 335
.W = 620
.x = 7
.Y = 28
.Expand = TRUE
.Padding = 5
.AutoResize = FALSE
.Text = "--Avertissement--"
END WITH

Je ne peux pas mettre d'images dans mes interventions ni même placer un avatar, dommage car cela équivaut ici à un long discourt.
Je suis parti d'un petit projet de BrunoJesus (pop3check) qui se trouve dans la logithèque et j'essaye de lui donner une dimension toute personnelle.
pop3check ne fait que dire qu'il y a des mails dans mes boites moi je veux pouvoir les lire avant de les importer ou les détruire si je n'en veux pas. J'en suis d'ailleurs là et je ne sais pas déclencher des événements sur une collection de gridview comme mes grvw.
Philippe
Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.3
valaquarus#13 Posté le 23/1/2019 à 17:42:46
-- Unus Ex Altera --La suite du projet :
Bonsoir,
bon ça marche, je veux dire par là que ce qui me bloquait jusque là, marche.
les gridview sont alimentés correctement pour chaque compte mais j'ai une difficulté à déclarer un tableau pour récupérer les infos des mails.
les déclarations faites :
1
2
3
4
5
6
7
8
9
PUBLIC STRUCT lesMails
compte AS INTEGER
index AS INTEGER
envoyeur AS STRING
sujet AS STRING
leTexte AS STRING
END STRUCT

PUBLIC MailRecu AS LesMails[]

et le bout de prog appelant la structure pour la remplir
1
2
3
4
5
6
7
8
9
MailRecu = NEW LesMails[]

FOR n = 0 TO POP.count - 1
MailRecu[i].compte = i
MailRecu[i].index = POP[n].Index
MailRecu[i].envoyeur = CStr(POP[n].Message.Sender)
MailRecu[i].leTexte = CStr(POP[n].Message.ToString)
MailRecu[i].sujet = CStr(POP[n].Message.Subject)
NEXT

Et je reçois toujours l'erreur : dépassement de tableau or l'index i vaut zéro puisque dans mon test j'ai créé deux comptes (o et 1).
Je suis bloqué là et je n'arrive donc pas à peupler ma structure pour en récupérer plus tard les informations.
Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.3
valaquarus#14 Posté le 23/1/2019 à 23:34:58
-- Unus Ex Altera --Bon vous allez rire, il manquait juste ceci :
1
MailRecu.Resize(Accounts.Count + 1)
pour que cela fonctionne sans m'envoyer sur les roses.
Donc je vais essayer de récupérer ces informations là, pour gérer les gridView :
1
2
3
4
5
MailRecu[i].compte = i
MailRecu[i].index = POP[n].Index
MailRecu[i].envoyeur = CStr(POP[n].Message.Sender)
MailRecu[i].sujet = CStr(POP[n].Message.Subject)
' MailRecu[i].leTexte = CStr(POP[n].Message.ToString)
la dernière ligne est commentée car elle contient une fonction et la bête veut du sur mesure.
Bonne nuit
Philippe
Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.3
valaquarus#15 Posté le 26/1/2019 à 17:04:11
-- Unus Ex Altera --Salut à tous,
je continue mon roman:
1
MailRecu.Resize(Accounts.Count + 1)

normalement avec deux comptes (Accounts.Count) la dimension de mon tableau devrait passer à deux mais je récupère toujours sur la console, une dimension à 1.
Premier mauvais point, deuxième mauvais point comment récupère t on les info rentrées dans ce tableau.
Voici comment j'ai alimenté les infos dans le tableau:
1
2
3
4
5
6
7
8
FOR n = 0 TO POP.count - 1
MailRecu[i].index = POP[n].Index
MailRecu[i].envoyeur = CStr(POP[n].Message.Sender)
MailRecu[i].sujet = CStr(POP[n].Message.Subject)
MailRecu[i].leTexte = CStr(POP[n].Text)
MailRecu[i].aqui = CStr(POP[n].Message.To)
MailRecu.Add(MailRecu[i], n)
NEXT

i étant l'indice du compte en question et n le nombre de message à lire. De plus quand je fais un MailRecu.Count j'ai toujours 3 de plus que le POP.Count
Mon problème c'est de récupérer chacun des champs au dessus pour lire ou effacer les mails sur le serveur.
Philippe
P.S. le reste prend bonne forme.
Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.3
12