Форум: "Основная";
Текущий архив: 2004.10.17;
Скачать: [xml.tar.bz2];
ВнизПомогите разобраться в первый раз работаю с TRegistry Найти похожие ветки
← →
ceval (2004-09-29 12:27) [0]Помогите разобраться
в первый раз работаю с 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 А как сохранить не только имя шрифта но и размер ?
← →
KSergey © (2004-09-29 15:56) [1]Так написаноже: если нет - то дальше не ходить!!
Да и причесать бы код не плохо бы... А еще отладчик есть.
> 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);
← →
KSergey © (2004-09-29 16:00) [2]В дополнение к [1] KSergey © (29.09.04 15:56)
Я отступы сделал как их компилятор понимает. Обрати внимание к чему else относится.
> Хочу что бы при создании формы ...
> если нет то создается ключ и записывается настройки шрифта
А вот записывать логичнее при разрушении формы (особенно если пользователь может менять; а если не может - то и записывать-то какой смысл? ;)
> P.s А как сохранить не только имя шрифта но и размер ?
А Font.Size - не оно?
← →
ceval (2004-09-29 16:33) [3]>А вот записывать логичнее при разрушении формы (особенно если >пользователь может менять; а если не может - то и записывать-то >какой смысл? ;)
Этот код относится к другой процедуре..........
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:44) [4]> [3] ceval (29.09.04 16:33)
А я про этот код и не говорю. Я про "Хочу что бы при создании формы ... и записывается настройки шрифта"
Что соответствует верхней части кода: при создании формы записывается шрифт
← →
ceval (2004-09-29 17:42) [5]Большое спасибо за помощь 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)
.....;
Все нормально работает
← →
ceval (2004-09-29 17:54) [6]Маленькая проблемка что с РАЗМЕРОМ не получается пробывал по онологии подставить
begin // читается настройки шрифта
Reg.OpenKey("\Software\Asup\Spr",true) ;
font.Name:= Reg.ReadString("Шрифт")
наfont.Size:= Reg.ReadString("Размер") ;
выдает ошибку "Incompatible types: "Integer" and "String""
← →
icebeerg © (2004-09-29 18:31) [7]>ceval (29.09.04 17:54) [6]
не font.Size:= Reg.ReadString("Размер") ;
а font.Size:= Reg.ReadInteger("Размер") ;
ну а когда пишеш то Reg.WriteInteger(...
← →
Lord de Mon © (2004-09-29 18:33) [8]
> ceval (29.09.04 17:54) [6]
font.Size:= StrToInt(Reg.ReadString("Размер")) ;
← →
icebeerg © (2004-09-29 18:36) [9]>Lord de Mon © (29.09.04 18:33) [8]
ну тогда иReg.WriteString("Размер",IntToStr(font.Size));
← →
Lord de Mon © (2004-09-29 18:36) [10]Простите, ошыбся
Сохранить шрифт:
reg.WriteInteger("Size");
Прочитать шрифт:
reg.ReadInteger("Size");
← →
icebeerg © (2004-09-29 18:39) [11]>Lord de Mon © (29.09.04 18:36) [10]
>Простите, ошыбся
Ну почему сразу ошибся, просто привел пример как можно, но не нужно делать
← →
Lord de Mon © (2004-09-29 18:40) [12]Простите,ещё раз ошыбся.
Сохранить шрифт:reg.WriteInteger("Size", Font.Size);
Прочитать шрифт:Font.Size := reg.ReadInteger("Size");
← →
ssk © (2004-09-30 09:37) [13]>Lord de Mon
для начала тебе сюда http://center.fio.ru/som/es/lesson_Chaschino.htm
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.10.17;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.04 c