IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)



Comment sauver les options de mon programme ?
auteur : Geronimo
Si vous souhaitez sauvegarder les options de votre programme, utilisez un fichier.ini. Les fichiers.ini ont une structure très simple. Ils se décomposent en sections dans lesquelles on peut attribuer des valeurs à des clés :
[Affichage]
ZoomDefaut=100
Largeur=640
Hauteur=480

[Divers]
RepertoireDefaut=c:\mes documents\
La VCL permet d'écrire et de lire facilement de tels fichiers grâce à la classe TIniFile . Pour utiliser cette classe, il faut inclure le fichier inifiles.hpp ( #include inifiles.hpp ). Voici le code qui va permettre d'écrire le fichier ci-dessus.
TIniFile *Ini = new TIniFile(ExtractFilePath(Application->ExeName)+"options.ini");
Ini->WriteInteger("Affichage", "ZoomDefaut", Options->ZoomDefaut);
Ini->WriteInteger("Affichage", "Largeur", Options->Largeur);
Ini->WriteInteger("Affichage", "Hauteur", Options->Hauteur);
Ini->WriteString("Divers", "RepertoireDefaut", Options->RepertoireDefaut);
delete Ini;
Dans cette exemple, nous supposons que nous avons une instance de classe nommée Options qui contient les options de notre application. Tout d'abord, nous instancions un nouvel objet TIniFile ( TIniFile *Ini = new TIniFile(ExtractFilePath(Application->ExeName)+"options.ini") ). Notez que le constructeur prend en argument le chemin du fichier. Ce fichier "options.ini" sera situé dans le répertoire de notre exécutable d'où le code ExtractFilePath(Application->ExeName)+"options.ini" . Utilisons les fonctions d'écriture du fichier pour écrire toutes nos options. La méthode WriteInteger permet d'écrire un entier. Elle prend comme premier argument la section dans laquelle doit être placé la nouvelle clé. Le second argument est le nom de la clé et enfin, le troisième est l'entier qui doit lui être attribué. Cette syntaxe est la même pour les fonctions WriteString, qui écrit un AnsiString, WriteFloat qui écrit un flottant, WriteBool qui écrit un booléen ; seul change le type du troisième argument. Une fois cela fait, nous libérons la mémoire grâce à delete Ini .

Nous souhaitons être ensuite capable de lire le fichier Ini pour charger les options. Voici le code que nous utilisons :
TIniFile *Ini = new TIniFile(ExtractFilePath(Application->ExeName)+"options.ini");
Options->ZoomDefaut = Ini->ReadInteger("Affichage", "ZoomDefaut", 100);
Options->Largeur = Ini->ReadInteger("Affichage", "Largeur", 320);
Options->Hauteur = Ini->ReadInteger("Affichage", "Hauteur", 200);
Options->RepertoireDefaut = Ini->ReadString("Divers", "RepertoireDefaut", ExtractFilePath(Application->ExeName));
delete Ini;
On constate que la syntaxe est sensiblement la même. On instancie à nouveau le fichier Ini. Les fonctions deviennent ReadInteger, ReadString,... Elles prennent toujours pour premier argument la section, pour second la clé, mais le troisième argument est la valeur par défaut si le fichier n'existe pas (si c'est la première fois qu'on lance le programme par exemple). Ces fonctions retournent les valeurs des clés dans les types appropriés.

A noter : il est préférable de réinstancier plusieurs fois le fichier ini que de le laisser instancié pour toute l'application ; en effet, l'instanciation d'un objet TIniFile ouvre un tampon sur le fichier.

Comment récupérer les arguments de la ligne de commande ?
auteur : Geronimo
Cela peut être effectué grâce aux fonctions ParamCount() et ParamStr(), la seconde prenant en argument le numéro de l'argument. Dans l'exemple suivant, nous chargeons dans un RichEdit le fichier placé en argument de la ligne de commade (par exemple, le fichier que l'on traine sur un exécutable) ; placez le code suivant dans le constructeur de votre fiche :
if ( ParamCount() > 0 )
	Memo1->Lines->LoadFromFile(ParamStr(1));

Comment programmer directement avec l'API Windows, sans passer par toutes ces classes ?
auteur : Geronimo
C'est tout à fait possible : consultez ce tutoriel : http://bob.developpez.com/tutapiwin/

Comment faire une courte pause de quelques secondes ?
auteur : Geronimo
Utilisez la fonction Sleep en lui passant en argument le nombre de millisecondes.
// Pause d'une seconde :
Sleep(1000);

Comment connaître la liste des fonctions contenues dans une DLL ?
auteur : Geronimo
Cliquez avec le bouton droit sur la DLL dans l'explorateur Windows et sélectionnez Aperçu Rapide. Vous pourrez alors consulter la liste des fonctions exportées que vous serez susceptible de pouvoir utiliser.