unit InputFormUnit; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons; type TInputForm = class(TForm) BitBtn1: TBitBtn; BitBtn2: TBitBtn; Label1: TLabel; Label2: TLabel; InputEdit: TEdit; procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); private { Private 宣言 } public { Public 宣言 } end; var InputForm: TInputForm; implementation uses ConstUnit; {$R *.DFM} procedure TInputForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean); var F: TextFile; S:string; i:integer; FDate:TDateTime; begin if ModalResult=mrOk then begin S:=InputEdit.Text; for i:=1 to Length(S) do S[i]:=Char(Ord(S[i]) xor AnsKey); if S<>GetPassWord then begin ShowMessage('パスワードが違います'); InputEdit.SelectAll;//選択状態にする CanClose:=False;//閉じない InputEdit.SetFocus;//選択状態 end else begin FDate:=TimeStampOf(DatFileName); DeleteFile(DatFileName);//いったん削除 AssignFile(F, DatFileName); try Rewrite(F); Writeln(F, GetPassWord);//パスワードを書き込む finally CloseFile(F); end; SetTimeStamp(DatFileName,FDate); end; end else Application.Terminate;//Cancel なら終了 end; end.