Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.17;
Скачать: CL | DM;

Вниз

Работа с реестром   Найти похожие ветки 

 
dub   (2004-02-09 13:48) [0]

Хая =)) Я ниразу не имел дела с реестром, не представлялось случая =(. Но вот понадобилось.
Мне необходимо, чтобы при запуске программы, она проверяла существуетли ветвь, к примеру
HKEY_CURRENT_USER\Software\myprog. Если нет, то она её создавала, и создавала в ней строковой параметр(далее СТ) с именем "progver" и со значением "1". Далее, если по запуску програмы, она выясняла что данная ветвь существует, то она к значению находящемущя в СТ "progver" прибовляла "+1", и заносила то число которе находиться в СТ в переменную например с именем "reg_ver"(string или integer). Вот и всё =))) помагите реализовать такую процедуру. спасибо.


 
Anatoly Podgoretsky ©   (2004-02-09 14:01) [1]

Смотреть справку по TRegistry и примеры.


 
KSergey ©   (2004-02-09 14:02) [2]

TRegistry+F1, и читаем Example (после OpenKey/KeyExists/ReadInteger/WriteInteger - все эти слова комбинируем для достижения требуемого результата)


 
dub   (2004-02-09 14:25) [3]

Говарюже, никогдан не имел дело, я даже понятия не имею какие нужны для него компаненты. он мне на первойже строчке выдаёт ошибку

Build
[Error] Unit1.pas(21): Undeclared identifier: "TRegistry"
[Error] Unit1.pas(28): Missing operator or semicolon
[Error] Unit1.pas(28): Incompatible types: "TComponent" and "Integer"
[Error] Unit1.pas(30): Missing operator or semicolon
[Error] Unit1.pas(31): Missing operator or semicolon
[Error] Unit1.pas(32): Undeclared identifier: "Result"
[Error] Unit1.pas(32): Missing operator or semicolon
[Error] Unit1.pas(34): Missing operator or semicolon
[Error] Unit1.pas(37): ";" expected but "." found
[Error] Unit1.pas(39): Declaration expected but end of file found
[Fatal Error] Project2.dpr(5): Could not compile used unit "Unit1.pas"


Я и сам не против учиться, но мне это нужно срочно, поэтому и прошу помощи у вас. ;)


 
Delphin ©   (2004-02-09 14:28) [4]

А ты в Uses добавил Registry ?
Приведи код


 
VMcL ©   (2004-02-09 14:28) [5]

uses Registry


 
dub   (2004-02-09 14:42) [6]

хех, ну не настолько же я туп стобы этого ненаписать =)))


 
dub   (2004-02-09 14:46) [7]

Ну или например что это значит?
[Error] Unit1.pas(27): This form of method call only allowed for class methods
??


 
Delphin ©   (2004-02-09 14:48) [8]

uses Registry
var
Reg:Tregistry;
I:Integer;

procedure TForm1.FormCreate(Sender: TObject);
begin
Reg:=Tregistry.Create;
Reg.RootKey:=HKEY_LOCAL_MACHINE;
IF not Reg.KeyExists("\Software\MyProg")
Then Begin
Reg.CreateKey("\Software\MyProg");
Reg.OpenKey("\Software\MyProg",True);
Reg.WriteInteger("Progver",1);
Reg.CloseKey;
Reg.Free;
End
Else
Reg.OpenKey("\Software\MyProg",True);
IF Reg.ValueExists("Progver") Then Begin
I:=Reg.ReadInteger("Progver");
I:=I+1;
Reg.WriteInteger("Progver",I);
Reg.CloseKey;
Reg.Free;
End;
end;


 
TUser ©   (2004-02-09 14:48) [9]

Вот
Missing operator or semicolon
Incompatible types: "TComponent" and "Integer"
и
Undeclared identifier: "Result"

точно к реестру отношения не имеют.


 
dub   (2004-02-09 14:57) [10]

Ой, прям таки спасибо =))
Если что-то понадобиться, пиши, помагу ;)


 
VMcL ©   (2004-02-09 15:43) [11]

>[10]
>Если что-то понадобиться, пиши, помагу

Боже упаси от таких помащников.


 
Тимохов ©   (2004-02-09 15:44) [12]


>
> Боже упаси от таких помащников.

Толька памочь морду набить.


 
VLAD-MAL   (2004-02-09 15:50) [13]

Пример:
TDefRegistry = class (TRegistry)
// Класс для работы с реестром. Дополнительно обеспечивает значения
// по умолчанию.
protected
function ReadDateDef(ValueName : string; DefValue : TDate) : TDate;
function ReadTimeDef(ValueName : string; DefValue : TTime) : TTime;
function ReadStringDef(ValueName : string; DefValue : String) : String;
function ReadIntegerDef(ValueName : string; DefValue : Integer) : Integer;
end;

function TDefRegistry.ReadDateDef(ValueName: string;
DefValue: TDate): TDate;
begin
if ValueExists(ValueName) then
Result := ReadDate(ValueName) else
Result := DefValue;
end;

function TDefRegistry.ReadIntegerDef(ValueName: string;
DefValue: Integer): Integer;
begin
if ValueExists(ValueName) then
Result := ReadInteger(ValueName) else
Result := DefValue;
end;

function TDefRegistry.ReadStringDef(ValueName, DefValue: String): String;
begin
if ValueExists(ValueName) then
Result := ReadString(ValueName) else
Result := DefValue;
end;

function TDefRegistry.ReadTimeDef(ValueName: string;
DefValue: TTime): TTime;
begin
if ValueExists(ValueName) then
Result := ReadTime(ValueName) else
Result := DefValue;
end;

...

procedure TApplicationData.LoadMainData;
// Загрузка данных из реестра
var
RegKeyName: string;
MainRegKey : TDefRegistry;
begin
RegKeyName := "\SOFTWARE\"+LeftStr(ExtractFileName(Application.ExeName),
Pos(".",ExtractFileName(Application.ExeName))-1);
MainRegKey := TDefRegistry.Create(KEY_READ);
try
MainRegKey.RootKey := HKEY_CURRENT_USER;
MainRegKey.OpenKey(RegKeyName, False);
LastWorkedDataBaseFileName := MainRegKey.ReadStringDef("LastWorkedDataBaseFileName","");
LastWorkedDataBaseLogin := MainRegKey.ReadStringDef("LastWorkedDataBaseLogin","SYSDBA");
LastWorkedDataBasePassword := MainRegKey.ReadStringDef("LastWorkedDataBasePassword","masterkey");

MainDateBegin := MainRegKey.ReadDateDef("MainDateBegin",
StrToDate("01.01."+ inttostr (YearOf(date))));
MainDateEnd := MainRegKey.ReadDateDef("MainDateEnd",
StrToDate("31.12."+ inttostr (YearOf(date))));
LastUserName := MainRegKey.ReadStringDef("LastUserName","");
MainRegKey.CloseKey;
finally
MainRegKey.Free;
end
end;

И все!



Страницы: 1 вся ветка

Текущий архив: 2004.02.17;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.028 c
14-53705
K.o.Z
2004-01-29 22:38
2004.02.17
BOOTABLE CD


1-53458
Эдуард
2004-02-08 16:26
2004.02.17
Есть ли возможнось узнать есть ли у класса A public-свойство B?


1-53461
nv_
2004-02-06 14:42
2004.02.17
Как зарегистрировать в системе свой тип файлов?


7-53780
Геннадий
2003-11-21 08:02
2004.02.17
Запуск прогаммы с привилегиями администратора


6-53668
XeON
2003-11-11 15:09
2004.02.17
UDP