フリーソフト

« 2008年6月 | トップページ | 2008年10月 »

[BCB] 「すべてはい」「すべていいえ」がついたMessageBox

   TForm *Dlg=CreateMessageDialog("元のファイルが上書きされます。続行し
てもよろしいですか?",mtWarning,TMsgDlgButtons() <<mbOk<<mbNoToAll<<mbYesToAll<<mbCancel);
  Dlg->Caption="警告";
  Dlg->ShowModal();
  delete Dlg;

TMsgDlgBtn値、戻り値
mbOK、mrOk
mbCancel、mrCancel
mbYes、mrYes
mbNo、mrNo
mbAbort、mrAbort
mbRetry、mrRetry
mbIgnore、mrIgnore
mbAll、mrAll
mbNoToAll、mrNoToAll
mbYesToAll、mrYesToAll

[BCB] dfmファイルを使わずにFormを作成する

TFormのCreateNewメソッドを使います。普通にnewするとリソースが見つからない、とエラーになります。

[BCB] MessageBoxでデフォルトのボタンを指定する

デフォルトボタンを指定するには、以下のいずれかの値を使います。何も指定しなかった場合には、最初のボタンがデフォルトになります。

0x00000000 (MB_DEFBUTTON1)
最初のボタンをデフォルトにする
0x00000100 (MB_DEFBUTTON2)
2番目のボタンをデフォルトにする
0x00000200 (MB_DEFBUTTON3)
3番目のボタンをデフォルトにする
0x00000300 (MB_DEFBUTTON4)
4番目のボタンをデフォルトにする

例:
Application->MessageBoxA("続行しますか ?","確認",MB_OKCANCEL|MB_DEFBUTTON2);

[BCB] エクスプローラからのドラッグ & ドロップに対応する

//ヘッダファイル
class TForm1 : public TForm
{
    :

private:
    //実際にメッセージを処理する関数の宣言
    //関数の中身はソースに自分で書く
    void __fastcall WMDropFile(TWMDropFiles &Msg);

BEGIN_MESSAGE_MAP
    //捕まえたいメッセージと、それを処理する関数を登録
    VCL_MESSAGE_HANDLER(WM_DROPFILES, TWMDropFiles, WMDropFile)
END_MESSAGE_MAP(TComponent)

};

//ソースファイル

void __fastcall TForm1::FormCreate(TObject *Sender)
begin
  DragAcceptFiles(Handle, true);
end;

void __fastcall TForm1::WMDropFile(TWMDropFiles &Msg)
{
  //ドロップされたファイルを取得
  int Count=DragQueryFile((void *)Msg.Drop, -1, NULL, 0);
  for (int i=0;i<Count;i++) {
    char Filename[MAX_PATH]={0};
    DragQueryFile((void *)Msg.Drop, i, Filename, MAX_PATH);
      
    //Filenameを処理
  }
  DragFinish((void *)Msg.Drop);
}

« 2008年6月 | トップページ | 2008年10月 »