Evil_Smile |
Отправлено: 20.07.2006, 14:47 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 57
|
подскажите где ошибка и как от неё избавиться
CODE |
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TRegistry *ReadReg = new TRegistry(KEY_ALL_ACCESS);
int p;
AnsiString RegString, RegName, RegWrite;
AnsiString BgColor;//цвет фона
AnsiString fName, fSize, fColor;
for (p = 0; p <= 3; p++)
{
if (ReadReg)
{
ReadReg->RootKey = HKEY_CURRENT_USER;
ReadReg->OpenKey(RegString, false);
RegWrite = ReadReg->ReadString(RegName);
ReadReg->CloseKey();
}
switch(p)
{
case 0:
RegString = "Software\\Evil Smiles Soft\\My notepad\\Background\\";
RegName = "BackgroundColor";
RegWrite = BgColor;
break;
case 1:
RegString = "Software\\Evil Smiles Soft\\My notepad\\Font";
RegName = "FontName";
RegWrite = fName;
break;
case 2:
RegString = "Software\\Evil Smiles Soft\\My notepad\\Font";
RegName = "FontSize";
RegWrite = RegWrite;
break;
case 3:
RegString = "Software\\Evil Smiles Soft\\My notepad\\Font";
RegName = "FontColor";
RegWrite = fColor;
break;
}
}
Memo1->Color = StringToColor(RegWrite);
Memo1->Font->Name = RegWrite;
Memo1->Font->Size = StrToInt(RegWrite);
Memo1->Font->Color = StringToColor(RegWrite);
}
|
подскажите pls
|
|
Shagg |
Отправлено: 20.07.2006, 15:10 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 69
|
В первой итерации цикла RegString пустая , а дальше разбирай сам
Хоть бы написал какая ошибка... |
|
Guest |
Отправлено: 20.07.2006, 15:15 |
|
Не зарегистрирован
|
Это, типа, шутка? |
|
Shagg |
Отправлено: 20.07.2006, 15:41 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 69
|
Это указка на ошибку...
а вообще в итоге RegWrite равно fColor, в который никакое значение не записывается, т.е. он равен "", и преобразование в int выдает ошибку.
Тут есть два выхода:
1) инициализация какими то значениями по-умолчанию
2) IntToStr(!(fColor.IsEmpty())) — криво, но точно вернет хотя бы 0 |
|
Guest |
Отправлено: 20.07.2006, 15:54 |
|
Не зарегистрирован
|
2Shagg
Пост относился к вопросу (просто долго "уходил") |
|
Shagg |
Отправлено: 20.07.2006, 16:30 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 69
|
Sorry не разобрал |
|
Evil_Smile |
Отправлено: 20.07.2006, 16:35 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 57
|
если поставить
CODE |
if (ReadReg)
{
ReadReg->RootKey = HKEY_CURRENT_USER;
ReadReg->OpenKey(RegString, false);
RegWrite = ReadReg->ReadString(RegName);
ReadReg->CloseKey();
}
|
после switch() то цвет фона BgColor присваивается и для fColor а ето мне не надо
исчо он пытается присвоить BgColor для размера шрифта как от этего избавиться
|
|