ultimo
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору yuriko1158 кнопок волшебных не бывает) Есть только кнопки, которые можно подогнать под желаемый результат. Функции реестра: (взято из файла помощи. Советую для ознакомления!) Код: function RegKeyExists(const RootKey: Integer; const SubKeyName: String): Boolean; function RegValueExists(const RootKey: Integer; const SubKeyName, ValueName: String): Boolean; function RegGetSubkeyNames(const RootKey: Integer; const SubKeyName: String; var Names: TArrayOfString): Boolean; function RegGetValueNames(const RootKey: Integer; const SubKeyName: String; var Names: TArrayOfString): Boolean; function RegQueryStringValue(const RootKey: Integer; const SubKeyName, ValueName: String; var ResultStr: String): Boolean; function RegQueryMultiStringValue(const RootKey: Integer; const SubKeyName, ValueName: String; var ResultStr: String): Boolean; function RegQueryDWordValue(const RootKey: Integer; const SubKeyName, ValueName: String; var ResultDWord: Cardinal): Boolean; function RegQueryBinaryValue(const RootKey: Integer; const SubKeyName, ValueName: String; var ResultStr: AnsiString): Boolean; function RegWriteStringValue(const RootKey: Integer; const SubKeyName, ValueName, Data: String): Boolean; function RegWriteExpandStringValue(const RootKey: Integer; const SubKeyName, ValueName, Data: String): Boolean; function RegWriteMultiStringValue(const RootKey: Integer; const SubKeyName, ValueName, Data: String): Boolean; function RegWriteDWordValue(const RootKey: Integer; const SubKeyName, ValueName: String; const Data: Cardinal): Boolean; function RegWriteBinaryValue(const RootKey: Integer; const SubKeyName, ValueName: String; const Data: AnsiString): Boolean; function RegDeleteKeyIncludingSubkeys(const RootKey: Integer; const SubkeyName: String): Boolean; function RegDeleteKeyIfEmpty(const RootKey: Integer; const SubkeyName: String): Boolean; function RegDeleteValue(const RootKey: Integer; const SubKeyName, ValueName: String): Boolean; | Если просто взять строковый параметр (зачастую именно это и нужно), то нужно использовать function RegQueryStringValue(const RootKey: Integer; const SubKeyName, ValueName: String; var ResultStr: String): Boolean; Description: Queries the specified REG_SZ- or REG_EXPAND_SZ-type value, and returns the data in ResultStr. Returns True if successful. When False is returned, ResultStr is unmodified. Example: Код: var Country: String; begin if RegQueryStringValue(HKEY_CURRENT_USER, 'Control Panel\International', 'sCountry', Country) then begin // Successfully read the value MsgBox('Your country: ' + Country, mbInformation, MB_OK); end; end; | С остальными функциями тоже проблем быть не должно. В справке все подробно описано, можно и на русском найти. И можно все данные собирать не с кнопки, а на этапе инициализации установщика, и далее с ними работать. Простой пример кнопки: Код: [_Code] var NewButton: TNewButton; procedure NewButtonOnClick(Sender: TObject); begin MsgBox('NewButton Click!', mbInformation, MB_OK); end; procedure InitializeWizard(); begin with WizardForm do begin NewButton := TNewButton.Create(WizardForm); with NewButton do begin Parent := NextButton.Parent; SetBounds(BackButton.Left - NextButton.Width, NextButton.Top, NextButton.Width, NextButton.Height); OnClick := @NewButtonOnClick; Caption := 'NewButton'; end; end; end; | |