Форум — Ответы ( К темам )
? | Za: Помогите сохранить FontDlg->Style в ini-файле (11-04-2003 02:20:31) |
Как (наверное каждый) новичек сделал простенький редактор. Присобачил FontDialog к форме. Стал сохранять размер шрифта в ini-файле как int, название как AnsiString, а как сохранить долбаный Style (типа fsBold, fsItalic, ...) не знаю. Помогите плз! Заранее спасибо | |
Andrew (11-04-2003 11:54:40) | |
Ну... никогда таким вопросом не задавался, но можно сделать прямо в лоб: ;) TFont *CaptionFont = new TFont(); //Параметры стиля запоминается как bool значения //Установку параметра шрифта проверяем через Contains //Запись параметров шрифта ini->WriteString(Key, "CFN", CaptionFont->Name);// ini->WriteInteger(Key, "CFS", CaptionFont->Size);// ini->WriteInteger(Key, "CFC", (int)CaptionFont->Color);// ini->WriteInteger(Key, "CFE", (int)CaptionFont->Charset);// ini->WriteBool(Key, "CFB", CaptionFont->Style.Contains(fsBold)); ini->WriteBool(Key, "CFI", CaptionFont->Style.Contains(fsItalic));// ini->WriteBool(Key, "CFU", CaptionFont->Style.Contains(fsUnderline));// ini->WriteBool(Key, "CFO", CaptionFont->Style.Contains(fsStrikeOut));// //Чтение параметров шрифта //ПРи чтении внвчале сбрасываем все параметры шрифта, а потом добавляем //требуемый в множество в соответствии с прочитанным bool параметром //Может можно и удалять эелементы из множества, //но что-то в Help'е описывают только добавление. CaptionFont->Style.Clear();//Сбросить параметры шрифта CaptionFont->Name = ini->ReadString(Key, "CFN", CaptionFont->Name);// CaptionFont->Size = ini->ReadInteger(Key, "CFS", 12);// CaptionFont->Color = (TColor) ini->ReadInteger(Key, "CFC", clBlack);// CaptionFont->Charset = (unsigned char)ini->ReadInteger(Key, "CFE", 204);// if (ini->ReadBool(Key, "CFB", false))// CaptionFont->Style = CaptionFont->Style << fsBold;// if (ini->ReadBool(Key, "CFI", false))// CaptionFont->Style = CaptionFont->Style << fsItalic;// if (ini->ReadBool(Key, "CFU", false))// CaptionFont->Style = CaptionFont->Style << fsUnderline;// if (ini->ReadBool(Key, "CFO", false))// CaptionFont->Style = CaptionFont->Style << fsStrikeOut;// //P.S.: по идее должно работать и просто CaptionFont->Style << fsItalic; //вместо CaptionFont->Style = CaptionFont->Style << fsItalic; //Экспериментируй :))) //P.P.S: хотя сам работу с множествами попробовал, //а то по работе не сталкивался, а без цели пробовать староват стал ;) |