Borland C++ builder の小ネタ

Borland C++ Builderを使うときのTIPSみたいなもののメモ。
C++ Builder独自でないものも混ざってるかも。



画像を簡単に拡大縮小する方法

「Image」コンポーネントを使う

Image1->Picture->LoadFromFile(OpenDialog1->FileName);
Image1->Width = 640;
Image1->Height = 480;

で読み込んだ画像が640x480にリサイズされる。Imageのプロパティ「Stretch」をtrueにしておくこと。



CSVファイルを扱うときの簡単な方法

TStringsを使う。

TStrings *csv = new TStringList();
csv->add("hogehoge");  // 行の追加
csv->LoadFromFile( "file.csv" );  // ファイルからロード
csv->SaveToFile( "file.csv" );  // ファイルにセーブ
csv->Strings[n] = "hogehoge";  // リスト内の文字列にアクセス



円周率の定義された定数

math.hにある。

名前 意味
M_PI π
M_PI_2 π/2
M_PI_4 π/4
M_1_PI 1/π
M_2_PI 2/π
M_1_SQRTPI 1/sqrt(π)
M_2_SQRTPI 2/sqrt(π)



リストボックス

選択された項目を削除する

ListBox1->DeleteSelected();



カレントディレクトリを調べる

C++ Builderのファイル管理ユーティリティ関数、GetCurrentDir()を使う。

AnsiString currentDirectory = GetCurrentDir();



アプリケーションの実行ファイルのあるパスを取得する

実行ファイルのフルパスを取得して、そのフォルダ名だけを抽出する。exeファイルの直下のディレクトリの指定などを行うことができる

// exeファイルのあるフォルダにある、dataフォルダのパスを取得
AnsiString path = ExtractFilePath(Application->ExeName) + "data\\";



入力候補の一覧を表示する

Ctrl+スペースを押す



for文やクラス宣言のテンプレートを表示する

Ctrl+jを押す



bitmapに描画する時の注意

TBitmapクラスは、生成後にサイズとPixelFormatを設定しないと使えない。LoadFromFileメソッドを使った場合は、それらは自動的に設定される。



コンパイル時にランタイムライブラリをプログラムに含める。

メニューから「プロジェクト」→「オプション」→「リンカ」→「共有 RTL DLLを使う」のチェックをはずすと、ランタイムライブラリをプログラムに含められる。別のPCで実行するときにランタイムをインストールする必要がなくなる。



ポインタのポインタをnewするとき
int **array;  // int型ポインタのポインタの宣言
array = new int*[m];  // ポインタ配列の生成
for(int i=0; i