Delphi RAR组件请求存档密码



我想要这个RAR组件:http://www.philippewechsler.ch/RARComponent.php
菲利普·韦克斯勒著。

但我不明白我怎么能不为档案中的文件而为档案申请密码?

它写在文档中,我不知道如何使用:

OnPasswordRequired(Sender: TObject; const HeaderPassword: Boolean; 
const FileName: WideString;out NewPassword: Ansistring; out Cancel: Boolean);

如果需要密码才能继续,则会发生此事件。

HeaderPassword:如果这是真的,则需要密码才能打开档案。否则,处理文件需要密码。

FileName:需要密码的文件的文件名(档案名称或档案中文件的文件名)

NewPassword:所需密码

Cancel:如果您不知道正确的密码,请将其设置为true

如何使用此代码?

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这一事实意味着它们是输出;你应该为它们赋值。另一方面,两个const参数(HeaderPasswordFileName)不能由您更改;它们是用于决定如何设置允许更改的两个参数的值。Sender将是RARComp或您的组件实例的任何名称;如果需要使用诸如CCD_ 17或CCD_。

同样,我不知道这个组件的正确类名是什么,也不知道它的实例会被命名为什么。如果组件的类名在IDE的组件调色板上是TRARComponent,并且您将其放在窗体上,则它将被声明为RARComponent1: TRARComponent;,并且您可以在适当的情况下使用名称RARComponent1TRARComponent(Sender)

相关内容

  • 没有找到相关文章

最新更新