OnPasswordRequired(Sender: TObject; const HeaderPassword: Boolean;
const FileName: WideString;out NewPassword: Ansistring; out Cancel: Boolean);
Я не уверен, что вопрос здесь ... Это обработчик событий, и вы назначаете его так же, как и любой другой обработчик событий: либо дважды щелкнув по событию OnPasswordRequired
вИнспектор объектов, или подключив его через код:
implementation
procedure TForm1.FormCreate(Sender: TObject);
begin
RARComp.OnPasswordRequired := RARPasswordRequired;
end;
procedure TForm1.RARPasswordRequired(Sender: TObject;
const HeaderPassword: Boolean;
const FileName: WideString;
out NewPassword: Ansistring; out Cancel: Boolean);
begin
if HeaderPassword then // need whole archive password
NewPassword := YourWholeArchivePassword // provide whole archive password
else
// Need individual file password. If you have a separate password for
// each file, provide it as each file is provided in "filename" param.
if FileName = TheFilenameYouHavePasswordFor then
NewPassword := ThisFilesPassword
else
Cancel := True;
end;
Я понятия не имею, каким будет имя компонента (я использовал RARComp
, но я не знаком с этим компонентом);замените его на то, что правильно.Конечно, есть предопределенный тип для события OnPasswordRequired
(например, TPasswordRequiredEvent
или что-то в этом роде);опять же, я не знаком с компонентом.
Объяснение: параметры out
, передаваемые в обработчик событий, похожи на параметры var
, за исключением того, что их не нужно инициализировать перед передачейкомпонент.Тот факт, что они out
, означает, что они output ;вы должны присвоить им значения.С другой стороны, два параметра const
(HeaderPassword
и FileName
) не могут быть изменены вами;они являются значениями, которые вы используете при принятии решения о том, как установить два параметра, которые вам разрешено изменять.Sender
будет RARComp
или как называется экземпляр вашего компонента;это может быть typecast, если необходимо получить доступ к другой информации с использованием синтаксиса, например TRARComponent(Sender)
или (Sender as TRARComponent)
.
Опять же, я понятия не имею, что такое правильное имя класса для этого компонента или как будет назван его экземпляр.Если имя класса компонента TRARComponent
в палитре компонентов среды IDE, и вы уроните его в форму, оно будет объявлено как RARComponent1: TRARComponent;
, и вы будете использовать имена RARComponent1
и TRARComponent(Sender)
, где это уместно.