フリーソフト

« 2006年3月 | トップページ | 2006年5月 »

[BCB] 書式付エラーダイアログ表示関数

printfのような書式付きのエラーダイアログ表示関数です。
使い方は

ShowError("Cannot open file %s",filename);

のような感じです。

#include <stdarg.h>

void __cdecl TForm1::ShowError(const char *format, ...)
{
  va_list args;

  va_start(args,format);

  AnsiString Buf="";
  Buf.vprintf(format,args);
  va_end(args);

  Application->MessageBoxA(Buf.c_str(),"ERROR",MB_OK | MB_ICONERROR);
}

[BCB] 時間を計測する

・GetTickCount
 コンピュータが起動してからの経過時間をミリ秒で返す。精度はいまいちで5~10ms程度。

・timeGetTime
 コンピュータが起動してからの経過時間をミリ秒で返す。

・QueryPerformanceCounter(LARGE_INTEGER *)
 高分解能パフォーマンスカウンタの値が取得できる。取得した値はQueryPerformanceFrequencyで得られるカウンタの周波数から、時間に変換できる。

  LONGLONG t1,t2,fr;

  QueryPerformanceFrequency((LARGE_INTEGER *)&fr);
  QueryPerformanceCounter((LARGE_INTEGER *)&t1);

  //計測したい処理

  QueryPerformanceCounter((LARGE_INTEGER *)&t2);
  Label1->Caption=AnsiString().sprintf("%.1f us", (double)(t2-t1) / fr * 1000000);

[BCB] 矢印キーやタブキーを捕まえる

class TForm1 : public TForm
{
  protected:
    void __fastcall CMDialogKey(Messages::TWMKey &Message)
    {
      if (Message.CharCode != VK_LEFT) TForm::Dispatch(&Message);
    }
BEGIN_MESSAGE_MAP
  MESSAGE_HANDLER(CM_DIALOGKEY, Messages::TWMKey, CMDialogKey);
END_MESSAGE_MAP(TForm)
};

[Delphi] 独自のリソースを使う

リソースをテキストエディタなど作成して「tmp.rc」というような名前で保存します。そのファイルをプロジェクトに追加してコンパイルします。rcファイルをBRCC32でコンパイルしてresファイルに変換しなくてもOKです。

リソースファイル(*.rc)の中身は

リソース名  リソースタイプ  "ファイル名"

のように書きます。例えば、

MYICON  ICON  "MyIcon.ico"
MYBMP  BITMAP  "MyBmp.bmp"

のようです。

[Delphi] 画面をキャプチャする

procedure TScreenSaverForm.FormCreate(Sender: TObject);
var
  dc:hdc;
begin
  //キャプチャ
  Image1.Picture.Bitmap.width:=screen.Width;
  Image1.Picture.Bitmap.height:=screen.Height;

  dc:=GetDC(0);
  BitBlt(Image1.Picture.Bitmap.Canvas.Handle,0,0,
           Image1.Picture.Bitmap.Width,Image1.Picture.Bitmap.Height,
           dc,0,0,SRCCOPY);
  ReleaseDC(0,dc);
end;

« 2006年3月 | トップページ | 2006年5月 »