Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.024 c
9-1085942069
LEV
2004-05-30 22:34
2004.10.17
МАСсИВЫ


1-1096713393
Comp
2004-10-02 14:36
2004.10.17
LongInt


1-1096383230
SMT
2004-09-28 18:53
2004.10.17
Литература по работе с Excel из Delphi


1-1096640288
Кирилл
2004-10-01 18:18
2004.10.17
String->PAnsiChar?


1-1096550458
dms_main
2004-09-30 17:20
2004.10.17
TCustomForm.Create(AOwner:TComponent)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский