「Tips - Delphi」の編集履歴(バックアップ)一覧に戻る

Tips - Delphi - (2009/06/18 (木) 14:59:14) のソース

&font(b,144%){Tips - Delphi}
#contents

----
***よく使うキーコード
|#00|キー入力無視|
|#08|BackSpace/Delete|
|#13|Enter 改行|

***キー入力を制限する
 制限したいコンポーネントのOnKeyPressイベントに、特定のキー以外を無視するルーチンを設定する。

 procedure TForm1.KeyPressLimit(Sender: TObject; var Key: Char);
 begin
   if not (Key in ['0'..'9', #08]) then // 入力キーが'0'~'9',BackSpace/Delete 以外なら
   begin 
     beep; // ビープ音による警告
     Key := #0; // 入力を無視
   end;
 end;

***メニューバーとツールバーで共通の処理をしたい
 [[こちらのページ>Tips - Delphi メニューバーとツールバーの処理共通化]]を参照。

***文字列を数値に変換する
+Val関数を使う。整数、実数のいずれも可。
 :
 :
  var
   STR : String;
   FLT : Single;
   ERR : Integer;
 :
 :
 begin
 :
 :
   Val(STR, FLT, ERR); // STR → FLT ERRは変換エラー箇所(エラーがなければ0)
   if ERR = 0 then // 変換エラーがなければ
 :
 :
   else // 変換エラーがあれば
 :
 :

+StrToCurr関数を使う。

+StrToInt関数を使う。

+StrToIntDef関数を使う。
 こちらは「10進数と16進数を示す文字列」を整数値に変換する関数。変換エラー時に返す数値を指定できるため、指定の数値が返されたときにエラー処理へ分岐する。

***JPEG画像を扱う
 Jpeg画像を扱うためのユニット「Jpeg」が標準添付されているので、pasファイルのuses節に、手入力で「Jpeg」を追加するだけ。~
 Jpegユニットを追加すると、Jpegデータを格納するための TJPEGImage が使えるようになり、これを経由して内部でビットマップに変換できるようになる。

 :
 :
 uses Windows, ‥‥, Jpeg;
 :
 :
 var
   JPG : TJPEGImage;
   BMP : TBitmap;
 :
 :
  begin
   JPG := TJPEGImage.Create;
   BMP := TBitmap.Create;
 :
 :
   JPG.Assign(BMP); // BMP → JPG
 :
 :
   BMP.Assign(JPG); // JPG → BMP
 :
 :

***指定URLへのリンクを埋め込む
 外部アプリケーションをWindows経由でコントロールする「ShellAPI」関数群の中から、「ShellExecute」関数を使うと、指定URLを規定のブラウザで開いてくれる。~
 最初に、pasファイルのuses節に、手入力で「ShellAPI」を追加する。後はボタンやラベルをクリックしたときのイベントに、指定URLを呼び出すShellExecute関数を設定すればOK。
 :
 :
 uses Windows, ‥‥, ShellAPI;
 :
 :
 procedure TForm1.Label1Click(Sender: TObject);
 begin
 //  ShellExecute(Handle, 'OPEN', 'http://www39.atwiki.jp/kgh07155/', '', '', SW_SHOWNORMAL);
 //  ShellExecute(NULL, 'OPEN', 'http://www39.atwiki.jp/kgh07155/', NULL, NULL, SW_SHOWNORMAL);
 //どちらの書式でもOK。引数の'OPEN'とURL、SW_SHOWNORMALがポイント。
 
   ShellExecute(Handle, 'OPEN', PChar(TLabel(Sender).Caption), '', '', SW_SHOWNORMAL);
 // URLとして指定する文字列はPChar型のみ有効。PChar(String)のように型変換すると良い。
 // この例の場合、Labelに表示された文字列を引数として適宜実行する。
 // つまりLabelの文字列がURLなら、自動でブラウザを起動し指定URLを呼び出す。
 end;
 :
 :
 ShellExecute関数の使い方は他にもいろいろあるが、ここでは省略。

***Aboutフォーム表示
ヴァージョン情報や作者URLなどを表示する「Aboutフォーム」を表示させる方法。
+Aboutフォームを作成。
--OKボタンを置くと良い。フォームを閉じるためのボタンイベントは不要。
+メインフォームにAboutフォームを呼び出すイベントを追加。
 procedure TMain.ViewAboutBox(Sender: TObject);
 begin
     AboutBox.ShowModal;
 // AboutBoxは、呼び出すフォーム名。この場合、表示させたいAboutフォーム。
 // ShowModalは、フォームをダイアログ表示させるメソッド。ボタンを押すとフォームを閉じ、
 // 押されたボタンを返し値にするので、特にボタンイベントを設定しなくても良い。
 end;