Voir le flux RSS

Blog de Serge Girard (aka SergioMaster)

ListView FMX, entêtes et pieds de groupes : Suite et Fin !

Noter ce billet
par , 20/10/2018 à 11h53 (118 Affichages)
Ceci fait suite à mon billet sur la manière d'obtenir des listes groupées avec entêtes et pieds.
Une question restait en suspens "comment réagirait cette liste aux modifications ?"
Une fermeture/ouverture de la table était une solution, l'inconvénient la position dans la table est perdue, il fallait donc mémoriser celle-ci avant la fermeture, puis se repositionner après la réouverture.

Il y a peu, dans ce même blog, j'indiquais qu'un problème de rafraichissement de liste en cas de changement de style au runtime était enfin résolu (cf. ce billet). J'ai pensé à utiliser cette même astuce pour régler cette question.
Succès sur toute la ligne, cerises sur le gâteau : pas de perte de position dans la table (donc du code en moins )

Tout d'abord, j'ai modifié mon programme pour pouvoir changer les montants payés.
Un TabControl avec deux panneaux fait l'affaire. Le premier panneau contient toujours la liste, le second, une zone de saisie du montant payé. Pour voir l'interaction non seulement sur l'item de liste mais aussi sur le pied de groupe je cumule maintenant non pas les montants totaux mais les montants payés. Et voilà le déroulement en image
Avant modification
Nom : RealLifeFinalTestUpdate.PNG
Affichages : 19
Taille : 27,5 Ko
Modification
Nom : RealLifeFinalUpdate.PNG
Affichages : 17
Taille : 7,2 Ko
Modification validée
Nom : RealLifeFinalUpdated.PNG
Affichages : 17
Taille : 26,9 Ko
Non seulement l'élément est modifié et reste l'élément courant, mais le montant dans le pied de groupe a changé

Bien sûr il y a un peu de code pour l'interface utilisateur, un peu pour la navigation (les tabcontrol.Next et Previous), c'est surtout "l'astuce" qui est intéressante : les LinkListControlToField.Active qui encadrent le Post de la modification.

Code delphi : 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
procedure TForm15.ApplyClick(Sender: TObject);
begin
LinkListControlToField1.Active:=False;
if Orders.State in [dsEdit] then Orders.Post;
LinkListControlToField1.Active:=True;
TabControl1.Previous();
end;
 
procedure TForm15.CancelClick(Sender: TObject);
begin
if Orders.State in [dsEdit] then Orders.Cancel;
TabControl1.Previous();
end;
 
procedure TForm15.ListView1ItemClick(const Sender: TObject;
  const AItem: TListViewItem);
begin
TabControl1.Next();
end;
Miniatures attachées Fichiers attachés

Envoyer le billet « ListView FMX, entêtes et pieds de groupes : Suite et Fin ! » dans le blog Viadeo Envoyer le billet « ListView FMX, entêtes et pieds de groupes : Suite et Fin ! » dans le blog Twitter Envoyer le billet « ListView FMX, entêtes et pieds de groupes : Suite et Fin ! » dans le blog Google Envoyer le billet « ListView FMX, entêtes et pieds de groupes : Suite et Fin ! » dans le blog Facebook Envoyer le billet « ListView FMX, entêtes et pieds de groupes : Suite et Fin ! » dans le blog Digg Envoyer le billet « ListView FMX, entêtes et pieds de groupes : Suite et Fin ! » dans le blog Delicious Envoyer le billet « ListView FMX, entêtes et pieds de groupes : Suite et Fin ! » dans le blog MySpace Envoyer le billet « ListView FMX, entêtes et pieds de groupes : Suite et Fin ! » dans le blog Yahoo

Mis à jour 10/11/2018 à 17h08 par LittleWhite (Coloration du code)

Catégories
Programmation , Delphi , FMX

Commentaires