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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

Sauvegarder un TFont grâce au fichier Ini [Sources]


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2004
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 21
    Par défaut Sauvegarder un TFont grâce au fichier Ini
    Bonjour,
    j'ai créer un fichier d'initialisation (pIniFile) de mon application et je me demande command enregistrer un TFont afin de le relire à chaque démarrage.
    merci

  2. #2
    Membre Expert
    Avatar de bakaneko
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 268
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 268
    Par défaut
    Pourquoi tu ne sauvegardes pas, dans ton Ini, la valeur de la propriété Name des TFont???

  3. #3
    Membre averti
    Inscrit en
    Mai 2004
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 21
    Par défaut
    je voudrais aussi sauvegarder la taille et la couleur. On est obliger de décomposer dans le fichier Ini tous les paramètres du TFont?

  4. #4
    Membre Expert
    Avatar de bakaneko
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 268
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 268
    Par défaut
    Vue que ces infos ne sont pas stockées dans les mêmes propriétés au niveau de TFont, je pense que oui, tu vas devoir sauvegarder chaque paramètre...

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 71
    Par défaut
    Bonjour

    Voici un bout de code pour te simplifier la tache
    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
     
    	//--------------------------------------------------------------------------------------
    	//-- Sauvegarde de polices de caractères dans un TStringList passé en paramètre
    // Les polices sont dans le TListObject Polices
     
    	void Sauvegarde_Polices (TStringList *Liste)
    	{
    		char charstyle[4];								// chaine de 4 caractères pour Fontstyle
    		TFont *fonte;                                          // pointeur temporaire
     
    		Liste->Add (Polices->Count);						// mettre d'abord le nombre de polices présentes dans le TListObject
     
    		for (int i=0; i<Polices->Count; i++)            		// je sauve les différentes polices
    		{   fonte = (TFont *) Polices->Items[i];
    			Liste->Add(fonte->Name);                                     // le nom
    			Liste->Add(fonte->Size);                                    // la taille
    			Liste->Add(fonte->Color);                                   // la couleur
     
    			for (int j = fsBold; j <= fsStrikeOut; j++)
    			{	if (fonte->Style.Contains(static_cast<TFontStyle>(j))) charstyle[j]='1';
    				else charstyle[j]='0';
    			}
    			Liste->Add(charstyle);       							// le style
    			Liste->Add(fonte->Charset);                                 // le charset
    		}
     
    	}
    Il suffit ensuite d'appeler TStringList->SavetoFile(), tu peux surement faire de même dans un fichier ini.

  6. #6
    Membre confirmé

    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 137
    Par défaut
    J'ai un bout de code pour faire ça...


    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
    AnsiString TParam::Scan(const AnsiString &src, int field, char separator)
    {
            int i,j;
            AnsiString result(src);
     
            //---1.champ
            if (field == 1)
                    {
                    j = result.Pos(AnsiString(separator));
                    if (j!= 0) result.Delete(j, src.Length()-j+1);
                    }
     
            //---x.champ
            if (field > 1)
                    {
                    for (i=1; i < field; i++)
                            {
                            j = result.Pos(AnsiString(separator));
                            if (j == 0) break;
                            result.Delete(1, j);
                            }
                    if (j == 0)
                        return "";
                    else
                        {
                        j = result.Pos(AnsiString(separator));
                        if (j!= 0) result.Delete(j, src.Length()-j+1);
                        }
                    }
     
            return (result);
    }

    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
    TFont* TParam::LoadFont(const AnsiString& index)
    {
        //initialisation par défaut...
        mpFont->Name = "Arial";
        mpFont->Size = 8;
        mpFont->Color = clBlack;
        mpFont->Style = TFontStyles();
     
        //lecture paramètres
        AnsiString lstring (mpIniFile->ReadString("Parameters",index, ""));
        if (lstring.IsEmpty()) return mpFont;
     
        AnsiString lstring2;
        lstring2 = Scan(lstring, 1, ';');
        if (!lstring2.IsEmpty()) mpFont->Name = lstring2;
     
        lstring2 = Scan(lstring, 2, ';');
        if (!lstring2.IsEmpty()) mpFont->Size = lstring2.ToIntDef(8);
     
        lstring2 = Scan(lstring, 3, ';');
        if (!lstring2.IsEmpty()) mpFont->Color = StringToColor(lstring2);
     
        lstring2 = Scan(lstring, 4, ';');
        if (lstring2.Length() >= 4)
            {
            if (lstring2[1] == '1') mpFont->Style = mpFont->Style << fsBold;
            if (lstring2[2] == '1') mpFont->Style = mpFont->Style << fsItalic;
            if (lstring2[3] == '1') mpFont->Style = mpFont->Style << fsStrikeOut;
            if (lstring2[4] == '1') mpFont->Style = mpFont->Style << fsUnderline;
            }
     
        return mpFont;
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    void TParam::SaveFont(const AnsiString& index, TFont* value)
    {
        AnsiString lstring;
        lstring += value->Name + AnsiString(';');
        lstring += AnsiString(value->Size) + AnsiString(';');
        lstring += ColorToString(value->Color) +  AnsiString(';');
        if (value->Style.Contains(fsBold)) lstring += "1"; else lstring +="0";
        if (value->Style.Contains(fsItalic)) lstring += "1"; else lstring +="0";
        if (value->Style.Contains(fsStrikeOut)) lstring += "1"; else lstring +="0";
        if (value->Style.Contains(fsUnderline)) lstring += "1"; else lstring +="0";
        mpIniFile->WriteString("Parameters", index, lstring);
    }

Discussions similaires

  1. [Débutant] Sauvegarde / Suppression d'une valeur TextBox dans un Fichier .INI
    Par Ecstasy dans le forum VB.NET
    Réponses: 4
    Dernier message: 02/08/2014, 21h00
  2. Réponses: 9
    Dernier message: 15/10/2011, 11h00
  3. Réponses: 2
    Dernier message: 29/01/2008, 13h45
  4. Sauvegarde des attributs de texte en fichier ini
    Par Raylemon dans le forum Langage
    Réponses: 2
    Dernier message: 06/09/2003, 21h28
  5. faire un fichier .ini
    Par florent dans le forum C++Builder
    Réponses: 14
    Dernier message: 31/05/2002, 22h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo