お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





FDelphi FAQ
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル

"起動時に自動読込み(アイコンへのD&D対応)"

この発言は
#00249 J-OH!     さんのソフト起動時に指定ファイルを読込む
に対するコメントです

●説明 アプリ起動時に、iniファイルに指定されたファイル、又は アイコンへDrag&Dropされたファイルの読み込みを行います。 ●使用するコンポ OpenDialog, CheckBox * IniFilesをusesに追加して下さい。 * D&Dされたファイル名をLongFileNameにしたい場合は、 Mes 15 #147を参考にして下さい。 ●サンプルコード {Form1のinterface部} ... public procedure MyFileOpen;// 読込み処理ルーチン end; ... { アプリ起動時: 自動読込の設定&ファイル名取得 } procedure TForm1.FormCreate(Sender: TObject); begin with TIniFile.Create(ChangeFileExt(paramstr(0),'.ini')) do try CheckBox1.Checked := ReadBool('Option', 'AutoOpen', False); OpenDialog1.FileName := ReadString('File', 'Open', 'UNTITLED.TXT'); finally Free; end; // 初期ディレクトリ OpenDialog1.InitialDir := ExtractFileDir(OpenDialog1.FileName); end; { アプリ終了時: 自動読込の設定&ファイル名保存 } procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin with TIniFile.Create(ChangeFileExt(paramstr(0),'.ini')) do try WriteBool('Option', 'AutoOpen', CheckBox1.Checked); WriteString('File', 'Open', OpenDialog1.FileName); finally Free; end; end; { ファイル読込み処理: * 各自の用途に応じて処理を変えて下さい } procedure TForm1.MyFileOpen; var f: file;// * Buffer: array [0..3] of Char;// * begin {$I+} // 入出力例外を発生させる (コンパイラ設定でI/Oチェックがオンの場合はいらない) FileMode := 0; // 読み出し専用 AssignFile(f, OpenDialog1.FileName); try Reset(f, 1);// * except On EInOutError do // ファイルが開けない場合の処理 begin MessageBeep(MB_ICONEXCLAMATION); ShowMessage(ExtractFileName(OpenDialog1.FileName) + ' が開けません!'); Exit; end; end; try BlockRead(f, Buffer, 4);// * finally CloseFile(f); end; Caption := Buffer;// * end; {プロジェクトソース} program Sample; uses // ExtractFileExtを使ってるので、SysUtilsを追加 Forms, SysUtils, Unit1 in 'Unit1.pas' {Form1}, ... {$R *.RES} begin Application.Initialize; Application.CreateForm(TForm1, Form1); ... { Application.Runの直前に } // アイコンにD&Dしてファイル名を渡す場合、ファイルの種類をチェック if ExtractFileExt(ParamStr(1)) = '.TXT' then Form1.OpenDialog1.Filename := ParamStr(1); // ファイルを開く if (ExtractFileExt(ParamStr(1)) = '.TXT') or (Form1.CheckBox1.Checked = True) then Form1.MyFileOpen; Application.Run; end. MISO:(CXP06505) Original document by MISO 氏 ID:(CXP06505)



ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。

Copyright 1996-2002 Delphi Users' Forum