Composant gestion automatique de commandes standard

Soyez le premier à donner votre avis sur cette source.

Vue 8 939 fois - Téléchargée 710 fois

Description

Alors voila, je sais que le titre de ma source n'est pas très clair, mais il n'est pas vraiment facile de résumer en quelques mots ce que propose mon composant.

Kesako ?


Lorsque l'on créé une application, la plupart du temps, il est nécessaire d'implémenter des fonctions "standards" telles que Fichier -> Nouveau, Fichier -> Enregistrer... Sauf que ça prend du temps parceque si on fait nouveau fichier alors qu'un autre fichier est déjà ouvert, il faut proposer l'enregistrement de ce dernier avant de créer un quelque chose de nouveau. Bref, ce genre de considérations est à mon avis une perte de temps et coder ce genre de choses une fois pour toutes serait assez sympa... du moins, c'est mon avis. Ma source contient donc un composant qui s'appèle "Easy filer". Comment il marche ? et bien il s'agit d'un composant non graphique que vous posez sur votre appli. Vous créez un menu fichier -> Nouveau, Fichier -> Enregistrer, ect. Il suffit ensuite de "relier" le composant à ces menus, directement depuis le GUIBuilder.

Jusque là, nous n'avons pas encore tapé d'instructions directement dans le code.

La seconde étape est de créer les classes et les sous classes que vous voudrez enregistrer dans le fichier, en prennant bien soin quelles soient TOUTES sérialisables. Dans le code (ha, on commence à coder), spécifiez juste à mon composant quel est l'objet qu'il va falloir enregistrer.

Ca y est ! normallement, vous avez déjà un programme qui peut enregistrer sous, faire de nouveaux fichiers, ouvrir, ... Tous les dialogues sont gérés par le composant...

Bref, normallement, le gain de temps est substentiel.

Pour aller plus loin...


Il est évidement possible de modifier moultes options utilisés par ce composant. En voici une liste :
- L'item de menu associé aux fonctions "nouveau", "ouvrir", "enregistrer", "enregistrer sous" et "fermer",
- Les boutons de toolbar correspondant à ces mêmes fonctions,
- Il est possible de faire en sorte qu'une image par défaut soit automatiquement insérée pour les menus et bouton "nouveau", "ouvrir" et "enregistrer",
- Les textes de confirmation avant l'ouverture, la création, ou la fermeture d'un fichier alors qu'un autre fichier est déjà ouvert,
- Le filtre utilisé pour les boites de dialogue ouvrir et enregistrer.

Pour ce qui est des évènements, ils sont les suivants :
- Avant et après un enregistrement,
- Avant et après la fonction "Nouveau fichier",
- Avant et après la fonction "Fermer",
- Avant et après la fonction "Enregistrer sous".

Pour chacun de ces évènements, il est possible d'annuler l'action en cours avec l'écènement avant. Par exemple, si vous récupérez l'évènement Avant-Enregistrement, vous pouvez annuler celui-ci en mettant le paramètre ContinueFileSave à false.

Enfin, il est possible de paramétrer très simplement sa barre de menu avec le nom du fichier. Par exemple, si vous voulez que votre barre de menu soit à jour en fonction du nom du fichier, vous pouvez utiliser l'évènement OnTitleBarChange.

Avant dernière note :
Lorsque vous modifiez votre objet, vous devez le signaler au composant par le biais de sa propriété UnsavedChanges. Ainsi, le titre de la fenêtre pourra être mis à jour, et le composant saura qu'il y a eu des modifications qu'il faut enregistrer.

Dernière note :
Vous pouvez appeler vous-même les fonctions nouveau, enregistrer, fermer... Le nom des méthodes est suffisament significatif, vous les trouverez simplement. Je les ai mises publiques.

Source / Exemple :


tout est dans le zip

Conclusion :


Ceci est une version beta pas encore trop testée. Elle pose cependant les bases de quelque chose qui pourrait être pas mal.
Ceci a été compilé avec le framework 2.0 beta 2. A vous de recompiler avec la version du framework de votre choix si besoin.

Codes Sources

A voir également

Ajouter un commentaire

Commentaire

cs_yoannd
Messages postés
313
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
10 août 2011
2 -
info : je vous conseille de regarder le code de l'application principale, c'est-à-dire celle qui appèle le composant. Vous pourrez constater que celle ci n'est pas bien compliquée, et elle vous donnera un bon apperçu de ce que peut faire le composant.

Pour ce qui est des futures versions, et bien elles contiendront des corrections de bugs (le cas échéant) et peut-être la possibilité de lancer les opérations de chargement/enregistrement dans des threads... ça pourrait être pas mal.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.