![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Что то не ладится с 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)); хотя бы...