procedure TMyWin.MenuFileOpen(var Msg: TMessage); var i, nChecks, reply : integer; fname : text; aCheck: Check; begin reply := id_No; if (isDirty) then reply := MessageBox(HWindow,'Are you sure', 'File not saved', mb_YesNo + mb_IconQuestion); if (reply = id_Yes) or (not isDirty) then begin StrCopy(FileName,'*.brt'); reply := Application^.ExecDialog(New(PFileDialog, Init(@self, PChar(sd_FileOpen), FileName))); if (reply = id_OK) then begin DestroyList(CheckBook); Assign(fname, FileName); Reset(Fname); Readln(FName,nChecks); for i := 1 to nChecks do begin ReadCheckFromFile(aCheck, FName); Insert(CheckBook, aCheck); end; Close(Fname); RedoListBox; isDirty := false; isSaved := true; isNewFile := false; end; end; end;