Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.02.17;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.01 c
7-53799
BaDeVlad
2003-12-02 12:44
2004.02.17
Как восстановить удаленный файл?


9-53352
McSimm
2003-08-01 17:23
2004.02.17
Просьба высказаться в опросе Стоит ли объединить Media / Игры?


14-53753
DelphiN!
2004-01-24 01:08
2004.02.17
Форум этого сайта


1-53601
Delphin
2004-02-09 14:25
2004.02.17
Проблема с транслитерезацией


1-53494
zzking
2004-02-05 21:47
2004.02.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
Английский Французский Немецкий Итальянский Португальский Русский Испанский