Alternative aux fichiers hlp, un fichier aide en .ini

Soyez le premier à donner votre avis sur cette source.

Vue 5 033 fois - Téléchargée 312 fois

Description

Petite solution simple : une aide.ini en arborescence par chapitre/sousChapitre puis définitions

Principe :
on crée
- une section principale avec des sous-sections,
- puis des sections principales représentant les sous-sections
- et dans ces sections des définitions ou encore des sous-sous-sections.

on utilise 2 listbox (1 chapitres,1 sous chapitre) et un memo (pour les définitions...)

les methodes utilisent les indices de debut de section (voir le fichier aide.ini).

il n'y a plus qu'à compléter le fichier ini...

Conclusion :


-Dev en D5
-Tourne sous XP et NT
-Pas de Bug sur mes postes...

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
14
Date d'inscription
mardi 24 octobre 2000
Statut
Membre
Dernière intervention
13 décembre 2005

Merci Dalamar pour ces encouragements.

Je livrerai la prochaine version modifiée avec un plus : en focalisant sur un objet puis touche F1-->apparition d'une aide assimilable à du contextuel.
Messages postés
63
Date d'inscription
samedi 22 décembre 2001
Statut
Membre
Dernière intervention
22 décembre 2003

Bravo pour l'originalité. Code source unique
Messages postés
14
Date d'inscription
mardi 24 octobre 2000
Statut
Membre
Dernière intervention
13 décembre 2005

Je dois certes relire au calme le propos de Delphiprog mais il a raison sur tout :

- le mot "alternative" est excessif ("une solution dégradée" serait plus exact),

- j'ai oublié de commenter l'indexation du fichier ini (structure des entrées) et la modalité de la recherche qui est faite :

.Chaque début de Section du INI (Chapitre ou sous-chapitre de l'aide) comporte un code alphanum en 4 positions : les 3 premieres (incrémentation numérique base 10) donnent l'ordre de menu, la derniere (alpha) donne le rang dans l'arborescence (chapitre,sous chapitre,definition,...).

.La recherche se fait donc sur les 4 premiers caract. :
- selection du 1er item liste 1 : code 010 A,
- lecture INI de la section 010 A,
- recherche des sous-sections 010 de rang B dans INI,
- selection du 1er item liste 2 : code 010 B,
- recherche des sous-sections 010 de rang C dans INI,
- etc ...

Merci Delphiprog,
Je revois ma copie.
Ahmed.
Messages postés
4580
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
27
Voilà une initiative intéressante et originale bien qu'elle ne puisse pas constituer une alternative aux fichiers HLP (ou CHM). En effet, les fichiers d'aide au format Windows ont pour vocation première d'apporter une aide contextuelle, ce que ne peut prétendre remplacer ce code.
Néanmoins, comme je l'ai dit, la démarche est intéressante.
[Pour l'auteur] : il serait souhaitable d'externaliser les positions de recherche des valeurs d'index des chapitres et sous-chapitres dans les chaînes lues à partir du fichier .ini, pour rendre plus facilement réutilisable et adaptable ce code.
Au lieu de :
RacTheme := Copy(xx0, 1 3);
Il serait mieux de déclarer des constantes globales indiquant les longueurs de départ de la recherche dans une chaine, etc.

Suggestion :
Dans la procédure lstbxChapClick, il serait préférable de :
1- Déclarer RacPos en Char;
2- De remplacer : RacPos := copy(xx0, 4, 1); par : RacPos := copy(xx0, 4, 1)[1]; ou, mieux encore par RacPos := xx0[4];
3- De remplacer toute la série des If RacPos... par :
if RacPos > 'A' then
RacPos := Pred(RacPos)
else
RacPos := 'A';
La déclaration de RacPos en Char plutôt qu'en string simplifie grandement cette portion de code et est moins limitante puisque nous ne devons pas tester chaque lettre de l'alphabet !
Enfin, la déclaration dans la section Var (partie Interface) contient une déclaration inutile : TFIC: TIniFile;.

Une petite note explicative sur la structure des entrées du fichier .ini serait la bienvenue, pour que l'on ne soit pas obligés de lire et de comprendre le code source pour deviner comment écrire les noms de sections et d'entrées.

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.