Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Что то не ладится с TRegistry.Посмотрите пожалуйста где заковыка [D5, NT4]


onix ©   (2002-05-22 09:17:00) 

procedure TFPrint.Set_SizeLabel(Comp : TObject; Key : string; SubKey: integer);
var Reg : TRegistry;
begin
Reg := TRegistry.Create;
with Reg do begin
RootKey := HKEY_CURRENT_USER;

try
if KeyExists(Key) then begin
case Subkey of
1 : TQRLabel(Comp).Size.Top := ReadFloat(Key);
2 : TQRLabel(Comp).Size.Left := ReadFloat(Key);
3 : TQRLabel(Comp).Size.Height := ReadFloat(Key);
4 : TQRLabel(Comp).Size.Width := ReadFloat(Key);
end;
end else begin
OpenKey(Key, true);
case SubKey of
1 : WriteFloat(Key, TQRLabel(Comp).Size.Top);
2 : WriteFloat(Key, TQRLabel(Comp).Size.Left);
3 : WriteFloat(Key, TQRLabel(Comp).Size.Height);
4 : WriteFloat(Key, TQRLabel(Comp).Size.Width);
end;
end;
finally
CloseKey;
end;
end;
Reg.Free;
end;

Суть проблемы такова. При первом проходе когда ничего этого в реесте нет то создание ключей и запись в них значений проходит без замечаний. А вот при втором запуске программы, считать эти значения и установить их не удаётся, т.е. часть этого кода выдает ошибку:
if KeyExists(Key) then begin
case Subkey of
1 : TQRLabel(Comp).Size.Top := ReadFloat(Key);
2 : TQRLabel(Comp).Size.Left := ReadFloat(Key);
3 : TQRLabel(Comp).Size.Height := ReadFloat(Key);
4 : TQRLabel(Comp).Size.Width := ReadFloat(Key);
end;

Заранее спасибо за помощь. Дмитрий


Lord Warlock   (2002-05-22 09:32:00) [1]


> они имеют тип Extended

точно, не посмотрел...


onix   (2002-05-22 09:31:00) [2]

Большое спасибо, не хватало как раз
OpenKey"я. Всё заработало.


Donal_Graeme   (2002-05-22 09:30:00) [3]


> Lord Warlock © (22.05.02 09:23)


не, с флоатами всё правильно. обрати внимание, что эти свойства ставятся у TQRLabel - т.е. Quick Report Label. они имеют тип Extended


Lord Warlock   (2002-05-22 09:25:00) [4]


> Donal_Graeme (22.05.02 09:23)


... и это тоже...


Donal_Graeme   (2002-05-22 09:23:00) [5]

хм.. а OpenKey разве в этом случае делать не надо? :-)


Lord Warlock   (2002-05-22 09:23:00) [6]

Top := ReadFloat(Key);//???

Top := Trunc(ReadFloat(Key)); хотя бы...


Наверх

Титульная страница Поиск, карта сайта Написать письмо