Форум: "Основная";
Текущий архив: 2004.02.25;
Скачать: [xml.tar.bz2];
ВнизКак записать в реестр переменную типа tagWINDOWPLACEMENT ? Найти похожие ветки
← →
akiro (2004-02-09 17:59) [0]Пробую использовать TRegistry.WriteBinaryData - не получается :(
← →
Skier (2004-02-09 18:07) [1]код покажи
← →
akiro (2004-02-09 18:18) [2]GetWindowPlacement(Handle,@varWindowPlacement);
varRegistry := TRegistry.Create;
with varRegistry
do
begin
RootKey := HKEY_LOCAL_MACHINE;
OpenKey(sRsRegistryPath,True);
WriteBinaryData(sRsWindowPlacement,varWindowPlacement,2048);
end;
← →
VMcL (2004-02-09 18:22) [3]WriteBinaryData(sRsWindowPlacement, varWindowPlacement, SizeOf(varWindowPlacement));
← →
Skier (2004-02-09 18:24) [4]1) Что возвращает OpenKey True или False ?
2) Почему 2048 (!), а не SizeOf(varWindowPlacement) ?
Если ты увидел число 2048 и бездумно его поставил, то почитай-ка
справку ещё раз :
Long values (more than 2048 bytes) should be stored as separate files, and those file names should be stored in the registry.
← →
Skier (2004-02-09 18:26) [5]Да и ещё ! Нужно использовать try-блок и в секции finally писать
CloseKey !
← →
VMcL (2004-02-09 18:47) [6]>>Skier © (09.02.04 18:26) [5]
>писать CloseKey !
Необязательно, CloseKey() вызывается в Destroy. Если долго не держать в памяти TRegistry, а уничтожать сразу, как отпала необходимость, то вообще можно CloseKey() не вызывать.
← →
Skier (2004-02-09 18:49) [7]смотрим пример в Delphi и видим...
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_CURRENT_USER;
if Reg.OpenKey("\Software\Microsoft\Windows\CurrentVersion\RunOnce", True)
then Reg.WriteString("MyApp",""" + ParamStr(0) + """);
finally
Reg.CloseKey;
Reg.Free;
end;
end;
← →
VMcL (2004-02-09 19:04) [8]смотрим Registry.pas и видим:
destructor TRegistry.Destroy;
begin
CloseKey;
inherited;
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.02.25;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.03 c