t-ash.NET
Delphi日記
序章(09/13/01)

とりあえず、Delphi(デルファイ)って何ー?という事ですが、Borland社(下記参照)が開発している、Windowsアプリケーションを作る為のソフトです。その中で、Delphi6 Personalに関しては無償で使用する事が出来ます(登録が必要ですが、Borlandは信用出来るので大丈夫でしょう)。自分はCD-ROM送付サービス(Delphi6 & Kylix Startup Kit)を利用しましたが、同社のHPからダウンロードする事も出来ます。
ソフトを手に入れたら、インストール番号、インストールキーを取得(登録時に取得する)し、インストールします。初回起動時、使用許諾コードを取得(案内に従うだけで取得可)します。

これでDelphiが使えるようになるはずです。第1章以降、Delphiの使い方を勉強していきたいと思います。自分は現時点で、どのように使うのかほとんど知りません。少しずつ勉強して、ここにその軌跡を残したいと思っています。
また、この日記で自分はDelphiの深くにまで踏み込んでいくつもりはありません。簡単なソフトを作って完結すると思います(時間があって、かつ新たな興味が持てれば話は別ですが)が、これが少しでも多くの人の役に立てばうれしいですね(まあ自分のノートがわりになるんですけど)。

  • 自分は初心者で、書いている内容はかなり我流が入っています。

  • ここではいわゆる「テキストエディタを作る」ためではなく、いろいろ試行錯誤してDelphiの使い方を覚えよう、というのがコンセプトです。テキストエディタへの最短距離に関する内容ではありません。

  • テキストエディタをちょっとエディタらしくするために、第8章まででは触れなかった部分の修正の仕方を書いてみました。これで無理やり使おうと思えば使えるレベルにはなると思います(笑)。


  • [参照]
    ボーランド株式会社HPhttp://www.borland.co.jp
    Delphiのページhttp://www.borland.co.jp/delphi/

    [参考資料など]
    Delphi6付属のヘルプ
    Object Pascal/Delphi(Kylix)プログラミング入門
    http://homepage2.nifty.com/okamotoy/objpas/
    ↑Delphiのバージョンは5ですけどObject Pascalについて参考にさせていただきました。

    もくじ
    第1章 とりあえず起動(10/02/01)
    第2章 メニューを作る(10/18/01)
    第3章 メニューにイベントを追加する(開く)(11/06/01)
    第4章 メニューにイベントを追加する(名前を付けて保存/終了)(11/09/01)
    第5章 メニューにイベントを追加する(上書き保存/新規作成)(11/13/01)
    第6章 ファイル保存の修正(11/15/01)
    第7章 ファイル保存確認の追加(11/25/01)
    第8章 「編集」項目の整理とカスタマイズ(11/26/01)

    第8章までのバグの修正(12/27/01)
    第8章まででは、テキストエディタとしての最低限の機能を有しますが、いくつかの細かいバグがあります。修正の為に以下の操作をして下さい(どちらにしろWindowsのメモ帳を超える事はありませんが…)。

  • セーブしてから新たなファイルを開く時、結局セーブをキャンセルしてもファイルを開くウインドウが現れる。

  • →public宣言に次の一文(緑の部分)を追加。
    public
      { Public 宣言 }
      FileName: String;
      isChange: Boolean;
      isSaveBeforeOpen: Boolean;
    end;

    →TForm1.FileSaveAs1Accept(Sender: TObject);と
    TForm1.FileSave1Execute(Sender: TObject);のそれぞれisChangeの分の後に次の一文(緑の部分)を追加。
    isChange := false;
    isSaveBeforeOpen := ture;

    →TForm1.FileCanOpen1Execute(Sender: TObject);のcase文、mrYes:の中のFileSave1.Execute;の下を次のように変更。
    FileSave1.Execute;
    if( isSaveBeforeOpen )then
      begin
        FileOpen1.Execute;
        isSaveBeforeOpen := false;
      end;

  • 同様にセーブしてから新規作成をする時、結局セーブをキャンセルしても新規作成をしてしまう。


  • →上に引き続き、TForm1.FileNew1Execute(Sender: TObject);のcase文、mrYes:の中のFileSave1.Execute;の下を次のように変更。
    FileSave1.Execute;
    if( isSaveBeforeOpen )then
      begin
        FileInit1.Execute;
        isSaveBeforeOpen := false;
      end;

  • 名前を付けて保存時、既に存在するファイル名を指定すると、断り無く上書きする。
  • 存在しないファイルを開こうとする時のエラー処理がされていない。

  • →これらはまとめて、TForm1.FileInit1Execute(Sender: TObject);の最後に次の文を追加。
    isChange := false;
    FileSaveAs1.Dialog.Options := [ofOverWritePrompt];
    FileOpen1.Dialog.Options := [ofCreatePrompt];

    HOME