![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите разобраться в первый раз работаю с TRegistry [D7, Win95/98]
ceval © (2004-09-29 12:27:00)Помогите разобраться
в первый раз работаю с TRegistry
Хочу что бы при создании формы проверялось если ключ есть
то читается настройки шрифта
если нет то создается ключ и записывается настройки шрифта
var reg: Tregistry;
procedure Tmain.FormCreate(Sender: TObject);
begin
// сoздается обьект Reg
Reg : Tregistry.Create;
Reg.RootKey:= HKEY_LOCAL_MACHINE ;
if Reg.KeyExists('\Software\PRG\Spr')
then begin // если есть ключ то читается настройки шрифта
if Reg.OpenKey('\Software\PRG\Spr',true)
then
font.Name:= Reg.ReadString('Шрифт')
else // создания ключа
Reg.OpenKey('\Software\PRG\',true);
Reg.WriteString('Ceval','Мои приложения');
Reg.OpenKey('\Software\PRG\Spr',true);
Reg.WriteString('Приложения','PRegistry');
//запись в параметр Файл имени к исполняемому фаилу
Reg.WriteString('Файл',ParamSTr(0));
//запись в параметр Шрифт имени шрифта//
Reg.WriteString('Шрифт',fmain.Font.Name);
end;
end;
......
if (fontdialog1.Execute) then
begin
Font.Assign(fontdialod1.font);
if (Reg.OpenKey('\Software\PRG\Spr',false))
//запись имени шрифта, только если есть Spr
then reg.WriteString('Шрифт',fmain.Font.Name);
end;
end;
Не создается ключ \Software\PRG\ ? Если в ручками создать ключ \Software\PRG\Spr то работает
P.s А как сохранить не только имя шрифта но и размер ?
ssk (2004-09-30 09:37:00) [1]>Lord de Mon
для начала тебе сюда http://center.fio.ru/som/es/lesson_Chaschino.htm
Lord de Mon (2004-09-29 18:40:00) [2]Простите,ещё раз ошыбся.
Сохранить шрифт:
reg.WriteInteger('Size', Font.Size);
Прочитать шрифт:
Font.Size := reg.ReadInteger('Size');
icebeerg (2004-09-29 18:39:00) [3]>Lord de Mon © (29.09.04 18:36) [10]
>Простите, ошыбся
Ну почему сразу ошибся, просто привел пример как можно, но не нужно делать
icebeerg (2004-09-29 18:36:00) [4]>Lord de Mon © (29.09.04 18:33) [8]
ну тогда иReg.WriteString('Размер',IntToStr(font.Size));
Lord de Mon (2004-09-29 18:36:00) [5]Простите, ошыбся
Сохранить шрифт:
reg.WriteInteger('Size');
Прочитать шрифт:
reg.ReadInteger('Size');
Lord de Mon (2004-09-29 18:33:00) [6]
> ceval (29.09.04 17:54) [6]
font.Size:= StrToInt(Reg.ReadString('Размер')) ;
icebeerg (2004-09-29 18:31:00) [7]>ceval (29.09.04 17:54) [6]
не font.Size:= Reg.ReadString('Размер') ;
а font.Size:= Reg.ReadInteger('Размер') ;
ну а когда пишеш то Reg.WriteInteger(...
ceval (2004-09-29 17:54:00) [8]Маленькая проблемка что с РАЗМЕРОМ не получается пробывал по онологии подставить
begin // читается настройки шрифта
Reg.OpenKey('\Software\Asup\Spr',true) ;
font.Name:= Reg.ReadString('Шрифт')
наfont.Size:= Reg.ReadString('Размер') ;
выдает ошибку 'Incompatible types: 'Integer' and 'String''
ceval (2004-09-29 17:42:00) [9]Большое спасибо за помощь KSergey
разобрался
.....
// сoздается обьект Reg
Reg :=Tregistry.Create;
Reg.RootKey:= HKEY_LOCAL_MACHINE ;
if Reg.KeyExists('\Software\Asup\Spr',)
then
begin // читается настройки шрифта
Reg.OpenKey('\Software\Asup\Spr',true) ;
font.Name:= Reg.ReadString('Шрифт')
end
else // регистрирует
Reg.OpenKey('\Software\Asup\',true)
.....;
Все нормально работает
KSergey (2004-09-29 16:44:00) [10]> [3] ceval (29.09.04 16:33)
А я про этот код и не говорю. Я про " Хочу что бы при создании формы ... и записывается настройки шрифта"
Что соответствует верхней части кода: при создании формы записывается шрифт
ceval (2004-09-29 16:33:00) [11]>А вот записывать логичнее при разрушении формы (особенно если >пользователь может менять; а если не может - то и записывать-то >какой смысл? ;)
Этот код относится к другой процедуре
..........
if (fontdialog1.Execute) then
begin
Font.Assign(fontdialod1.font);
if (Reg.OpenKey('\Software\PRG\Spr',false))
//запись имени шрифта, только если есть Spr
then
reg.WriteString('Шрифт',fmain.Font.Name);
end;
end;
KSergey (2004-09-29 16:00:00) [12]В дополнение к [1] KSergey © (29.09.04 15:56)
Я отступы сделал как их компилятор понимает. Обрати внимание к чему else относится.
> Хочу что бы при создании формы ...
> если нет то создается ключ и записывается настройки шрифта
А вот записывать логичнее при разрушении формы (особенно если пользователь может менять; а если не может - то и записывать-то какой смысл? ;)
> P.s А как сохранить не только имя шрифта но и размер ?
А Font.Size - не оно?
KSergey (2004-09-29 15:56:00) [13]Так написаноже: если нет - то дальше не ходить!!
Да и причесать бы код не плохо бы... А еще отладчик есть.
> if Reg.KeyExists('\Software\PRG\Spr') then
> begin // если есть ключ то читается настройки шрифта
> if Reg.OpenKey('\Software\PRG\Spr',true) then
> font.Name:= Reg.ReadString('Шрифт')
> else // создания ключа
> Reg.OpenKey('\Software\PRG\',true);
> Reg.WriteString('Ceval','Мои приложения');
> Reg.OpenKey('\Software\PRG\Spr',true);