Bonjour,
Eternel débutant je suis et apprécie vraiment Lazarus qui est gratuit.
Mon problème est le suivant et sans doute, je ne cherche pas où il faut, alors si quelqu'un veut bien me dépanner!
Je fais un programme de budgétisation pour moi et une association.
Je travaille sur deux ListView différentes parce que je ne sais pas créer les colonnes de manière simple.
Voici des portions d'images en cause :
Le Bouton du dessus est un commutateur qui bascule sur l'une des deux listView.
La première ListView nommée ListViewBud (image du haut) affiche les enregistrements d'une liste de Budgets dont la structure est TxtFile
La seconde ListView nommée ListViewEche (image du Bas) affiche quelques champs d'une structure de fichiers typé.
Dès que le bouton commutateur demande l'un des quatres tableaux de base, l'une ou l'autre des ListView est utilisée par les procédures et s'affiche au même endroit, l'autre étant rendue invisible...
procedure TForm1.Update_AffichageEcheances(Const aFicEche : String);
procedure TForm1.Update_AffichageListeBudgets(Const aFicBud : String);
Voici le code des deux fonctions:
Problème:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 {--- Met à jour l'affichage des échéances -------------------------------------} procedure TForm1.Update_AffichageEcheances(Const aFicEche : String); var Item : TListItem; n : integer; b : TFicheEche; rp : String; begin Try AssignFile(fEche,aFicEche); Reset(fEche); n := 0; ListViewEche.Clear; while Not Eof(fEche) do begin inc(n); Read(fEche,b); if b.Payee then RP := ByteToBoolSTR(1,trbOuiNon) else RP := ByteToBoolSTR(0,trbOuiNon); With ListViewEche do begin Inc(FItemIndex); Item := ListViewEche.Items.Add; Item.Caption := Format('%d', [b.Index]); Item.SubItems.Add(b.NomEche); Item.SubItems.Add(floattostrF(b.Montant,ffcurrency,5,2)); Item.SubItems.Add(DateTostr(b.DateEche)); Item.SubItems.Add(rp); end; end; LbEche.Caption := 'Liste des '+inttostr(NbFichesEche)+' échéances à budgéter'; finally CloseFile(fEche); end; end; {--- Affiche la Liste des Budgets définis -------------------------------------} procedure TForm1.Update_AffichageListeBudgets(Const aFicBud : String); var Item : TListItem; n : integer; b : String; fBud : TextFile; begin Try AssignFile(fBud,aFicBud); Reset(fBud); n := 0; while Not Eof(fBud) do begin inc(n); Readln(fBud,b); With ListViewBud do begin Inc(FItemIndex); Item := ListViewEche.Items.Add; Item.Caption := Format('%d', [n]); Item.SubItems.Add(b); end; end; LbEche.Caption := 'Liste des '+inttostr(n)+' catégories de budgets prévus'; finally CloseFile(fBud); end end;
L'affichage du Fichier Texte des Budgets ne s'affiche pas dans la ListWiew, alors que le code est similaire... J'ai pensé qu'en jouant sur les propriétés visible, enabled ou CanFocus (innaccessible) le problème serait résilu. Mais non
Je ne comprends pas!
Merci pour votre aide.
Partager