Главная страница
    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.035 c
4-1094897871
Master Kolyan
2004-09-11 14:17
2004.10.17
Работа с кластерами ЖД посредством процедур и функций Delphi


3-1095651463
korvin
2004-09-20 07:37
2004.10.17
Поиск без учёта регистра


4-1095261523
AZiN
2004-09-15 19:18
2004.10.17
Серийный номер


1-1096717506
UserUserov
2004-10-02 15:45
2004.10.17
Копирование файла


1-1096867757
_Дельфин_
2004-10-04 09:29
2004.10.17
Создание приложений





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский