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
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
Pourquoi tu ne sauvegardes pas, dans ton Ini, la valeur de la propriété Name des TFont???
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?
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...
Bonjour
Voici un bout de code pour te simplifier la tache
Il suffit ensuite d'appeler TStringList->SavetoFile(), tu peux surement faire de même dans un fichier ini.
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 } }
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); }
Partager