フリーソフト

« 2008年5月 | トップページ | 2008年7月 »

[BCB] アラインメントの設定

#pragma pack(push,1)
struct TAPP1Header {
  WORD Maker;
  WORD Size;
  byte Magic[6];
};
#pragma pack(pop)

[BCB/Delphi] 再描画に関するメソッド

再描画に関連するメソッド

・Invalidate
  再描画が必要であることを宣言します。実際の再描画は適当なタイミングで実施されます。

・Update
  Invalidateなどで保留中の再描画を強制的に実施します。

・Repaint
  Invalidateを呼び出した後、Updateを呼び出します。強制的に再描画します。

・Refresh
  Repaintと同じです。

[BCB] TColorからR,G,B値への変換

赤(R)、緑(G)、青(B)を取得するには、それぞれGetRValue、GetGValue、GetBValueを使う。

(例)
byte R=GetRValue(clBlue);

[BCB,Delphi] RGBとHLSの変換

#include <GraphUtil.hpp>

void __fastcall ColorRGBToHLS(unsigned clrRGB, Word &Hue, Word &Luminance, Word &Saturation);

unsigned __fastcall ColorHLSToRGB(Word Hue, Word Luminance, Word Saturation);

[BCB] 数値入力専用のTEdit

//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender) {
  SetWindowLong(Edit1->Handle, GWL_STYLE, GetWindowLong(Edit1->Handle, GWL_STYLE)|ES_NUMBER);
}

さらに、ES_RIGHTを追加すれば右寄せになります。

[BCB] 関数のtypedef

typedef int (__stdcall *TMyFunc)(int Param1,int Param2);

[BCB] DLLを動的に読み込む

HMODULE LoadLibrary(LPCTSTR lpFileName);

FARPROC GetProcAddress(HMODULE hModule, LPCSTR lpProcName);

BOOL FreeLibrary(HMODULE hModule);

[BCB] マウスの押下中だけカーソルを変更する

MouseDownイベントでVCLのCursorプロパティを変更しても、マウスのボタンが開放されるまでカーソルが変更されません。ボタンが押された瞬間に変更するにはWindows APIを使います。

::SetCursor(Screen->Cursors[crHourGlass]);

またMouseUpイベントにはカーソルを元に戻すコードを書きます。こちらは、VCLのCursorプロパティでもOKです。

Image1->Cursor=ceDefault;

« 2008年5月 | トップページ | 2008年7月 »