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イベントには事前定義されたタイプ (likeTPasswordRequiredEventまたは something)が必ずあります。繰り返しますが、私はコンポーネントに精通していません。
説明:outイベント ハンドラーに渡されるパラメーターはvarパラメーターに似ていますが、コンポーネントによって渡される前に初期化する必要がない点が異なります。それらが出力であるという事実は、それらが出力outであることを意味します。それらに値を割り当てることが期待されています。一方、 2 つのパラメーター (と) は変更できません。これらは、変更が許可されている 2 つのパラメーターの設定方法を決定する際に使用する値です。は、またはコンポーネント インスタンスが呼び出されたものになります。またはのような構文を使用して他の情報にアクセスする必要がある場合は、型キャストすることができます。constHeaderPasswordFileNameSenderRARCompTRARComponent(Sender)(Sender as TRARComponent)
繰り返しますが、このコンポーネントの適切なクラス名や、そのインスタンスの名前がわかりません。コンポーネントのクラス名がTRARComponentIDE のコンポーネント パレットにあり、それをフォームにドロップした場合、それは として宣言されRARComponent1: TRARComponent;、名前RARComponent1とTRARComponent(Sender)適切な場所を使用します。