移行一発目

放置状態だったはてなダイアリーから移行してみた。 (旧) http://d.hatena.ne.jp/A7M/

第5回 Delphi talksに参加してきた

この手のイベントに参加するのは本当に久しぶり。楽しい時間を過ごせました。 LTのネタは諸事情により2年3ヶ月ほど塩漬け状態な、コードフォーマッタープラグインネタ。あまり役に立たない、昨日使用したプレゼンを公開します。 ちなみに、プラグインそのも…

UnicodeからShift-JISへの変換、どうする?

なし崩し的にDelphi Advent Calendar 2012に記事を書く羽目になった件について。(ぉぃ まぁ、実業務でのちょっとした覚え書きな件もあるので、いい機会だし久しぶりに更新してみる。ここ数年でプログラミング環境はUnicodeを意識せざるを得なくなった。DBの…

clang 3.1をWindowsで使ってみた

次期C++BuilderのC++コンパイラがLLVM/clangになる*1というので、早速いじってみた。まずはインストール。現時点でWindows上でclangを動かすにはmingwが必要とのことで、まずはmingwのインストール。 http://sourceforge.net/projects/mingw/files/Installer…

第21回エンバカデロデベロッパーキャンプに行ってきた

ある意味、ネタ満載の楽しい「キャンプ」でした。まとめるのが面倒なので、箇条書き。 C++Builder使いにとっては、今年は俺のターン!! お、俺はデモの神にそそのかされて無理矢理失敗させられたんだって感じで、最高のタイミングでデモの神が降臨するなwwwww…

Ubuntu 11.10カスタマイズ関連の覚え書き

Ubuntu 11.10をインストールしたのだけど、気に入らないところがあったのでカスタマイズしてみた。 GUIシェルをgnome-shellにする。 個人的にUnityは好きになれないので、従来のgnome-shellにする。 端末を開いて以下のコマンドを実行。まず、apt-get update…

Webセミナー「アンドキュメンテッド(?) VCL 〜逆引きVCL新機能〜」自己フォロー

QAで指摘があった件を試してみました。 TListViewのグルーピングがうまくいかなかった件 本当は、こんな感じに表示されるはずでした。 テストは、64bit版のWindows 7でテーマ有効。実機はWindows 7の32bit版。この辺の差異かな…。 TDirectory.GetFilesでファ…

第20回エンバカデロ デベロッパーキャンプで喋れなくなりました。

明日のセッションA4「アンドキュメンテッド(?) VCL 〜逆引きVCL新機能〜」は自分の諸事情により急遽講演中止となりました。 セッションを申し込まれた方、大変申し訳ありません。明日の分は、後日Webセミナーとして実施する予定です。

RAD Studio XEとF-Secure Internet Security 2011の相性問題

メインマシンのセキュリティソフトをウイルスバスターからエフセキュア インターネット セキュリティ 2011に乗り換えたのだけど、RAD Studio XEを起動すると「使用許諾コードが不正」と判断されてRAD Studioが起動しなかった。 これは、エフセキュア インタ…

C++BuilderではOpen Tools APIを使ったアドオンをデバッグできない件についての回避方法

C++BuilderではOpen Tools APIを使ったアドオンをデバッグできない件があり、これをQC#92188として登録したのだけど、Embarcaderoから回答があって一応の解決法が見つかりました。以下の手順でアドオンのデバッグが可能。 OTAを使ったプロジェクトをC++Build…

Universal Character Set Detector C LibraryをDelphi XEから使用する

C++Builderで試した、Mozillaのエンコーディング自動判別ライブラリである「universalchardet」をDLL化したのをDelphiで動作させてみました。バイナリはhttp://a7m.sakura.ne.jp/SOURCE/universalchardet-CB.7zに用意したもので、C++Builder XE(BCC32.EXE 6.…

7月21日のウェブセミナーと、第20回エンバカデロ デベロッパーキャンプで喋ります。

7/21のオンラインセミナーは、13/14回デベロッパーキャンプでやったポインタというかメモリ管理ネタの再演。 このネタの評判がいいとの話しでオファーがあったのでオンラインセミナーとして再演します。9/6の第20回デベロッパーキャンプは「アンドキュメンテ…

スマートポインタの使い方 その3:メモリ以外のリソースをスマートポインタで管理する

デリーターとは スマートポインタが管理できるのは、メモリ領域だけではなく「構築」と「破棄」がペアになっている任意のリソースも管理できる。 例えば、Cのfopen関数でオープンしたファイルをfclose関数でクローズしたり、あるいは、Windows APIのGDIオブ…

Console2を導入する

コマンドプロンプトの補完アプリであるConsole2を導入してみる。 アーカイブはプロジェクトページの[Files|console-devel|2.00]より、最新版をダウンロード。 Console2はそのままだと日本語が入力が出来ないので、http://wiki.pythonpath.jp/moin/ConsoleIme…

スマートポインタの使い方 その2:shared_ptr

shared_ptrを使ってみる unique_ptrが変数の寿命が尽きた段階でメモリ領域を開放するのに対し、shared_ptrは参照カウンタを持ち参照カウンタがゼロになるとメモリ領域を開放する。 #include <tchar.h> #ifdef __BORLANDC__ #include <boost/tr1/memory.hpp> namespace std { using namespace</boost/tr1/memory.hpp></tchar.h>…

TBalloonHint::ShowHintの使い方

TBalloonHint::ShowHintに問題があるみたいで、代替にJVCLのTJvBalloonHintを使うというエントリーを書いたのだけれども、Embarcaderoの高橋さんからコメントがあって、再テスト。自分の勘違いで問題が無いことが確認できたのだけれども、以下の点に注意。 T…

スマートポインタの使い方 その1:unique_ptr

スマートポインタって何? C++において、operator newでメモリ領域(ヒープ領域)を動的に確保した場合、その領域はoperator deleteでプログラマが責任を持って解放してやらなければならない。しかし、deleteを書き忘れたり、例外が発生したときの処理を怠っ…

CentOS 5.6で最低限のWebアプリ開発環境を構築する

半ば個人的な手順書。少々怪しいかも。すべてCUIで行う場合を想定。 開発ツールのインストール デフォルトではgccとか入らないので。 # yum groupinstall 'Development Tools' 'Development Libraries' PHP5.3をインストール デフォルトのPHPは5.1なので、5.…

第19回 エンバカデロ・デベロッパーキャンプ セッションT3自己フォロー

参加者の皆様お疲れ様でした。プレゼンの最初でいきなりしくじってしまいましたが、何とか完走できたつもりです。不明な点等ありましたらコメントください。 C++Builderでの問題点 なぜか、IDEの言語が日本語だとC++Builderで作ったアドオンがデバッグ出来な…

第19回 エンバカデロ・デベロッパーキャンプ開催形態変更

東北関東大震災の影響により、デベロッパーキャンプの開催形態がバーチャル(オンラインセミナー)形式に変更になりました。会場参加の場合、いつもは印刷したレジュメを会場で配るのですが、今回は事前にオンラインで配布することとなりますので注意してく…

static_castとreinterpret_castの違いについて試してみた

昨日のネタのうち、キャスト関連は思い込みとか理解不足なところがあったので、実際に動かしてみた。 //--------------------------------------------------------------------------- #include <iostream> #pragma hdrstop #include <tchar.h> //----------------------------</tchar.h></iostream>…

「C++プログラマであるかを見分ける10の質問」に答えてみた。

「C++プログラマであるかを見分ける10の質問」に答えてみた。自分の解釈だとこんな感じ。正解かどうか、特に2のreinterpret_castと10は自信なし。ちなみに、Java版は/.Jの日記で。 1. iterator の役割について説明せよ. ポインタがメモリのアドレスを指し示…

Open Tools API その4:続・ソースエディタへのアクセス ソースエディタの「中身」をいじる

エディタの編集バッファ ビュー(IOTAEditView)のBufferプロパティがソースエディタ内部のバッファで、ソースファイルの中身を編集する。インターフェースはITOAEditBuffer。 ソースエディタが1つのファイルをオープンしている場合、ビューは複数あっても、…

Open Tools API その3:ソースエディタへのアクセス

モジュール モジュールとはIDEがアクセスする抽象的なエディタの組み合わせのことで、Delphi/C++Builderのプロジェクトにおけるユニットに相当。ユニットがソースファイル(*.pas/*.cpp)やヘッダファイル(*.h)、フォームファイル(*.dfm)の組み合わせであるよ…

第19回 エンバカデロ・デベロッパーキャンプでしゃべります。

毎度お馴染みですが、第19回 エンバカデロ・デベロッパーキャンプでまたしゃべります。 内容は、過去に掲載したOpen Tools APIに関する3点と、 Open Tools API その0:概要 - C++Builder好きの秘密基地 Open Tools API その1:"Hello,World!"を表示してみる…

C++Builder XE Starter/Delphi XE Starterが発表

かねてから要望が多かった個人向けエディションのC++Builder XE Starter/Delphi XE Starterが発表。Delphi関連は有志の方がまとめてくれているのでC++Builderの分について少々。 Delphi/C++Builder XE Starterの機能制限 DEKOのざつだん。 個人的にC++Bu…

Unified InterbaseをC++Builder XEで試してみた。

かねてから、Pro版で使用可能なFirebird/Interbase用のコンポーネントを探していて、 Unified Interbaseコンポーネントをつかってみた(その1) Delphiッこ倶楽部東京出張所でUnified Interbaseコンポーネントの解説記事 という記事がポストされていたので…

JVCLのTJvBalloonHintを使う

QC#66768によると、TBallonHintは任意の位置にバルーンヒントを表示できないっぽい*1ので、代替としてJVCLのTJvBalloonHintを使ってみる。TJvBalloonHintはTBallonHintをJVCLが拡張したコンポーネントでは無いので、使い方が根本的に違う。あと、現時点での…

ヒントの内容をHTML形式で定義して表示する

通常のポップアップヒントでは出来ない強調表示や文字の色変えをHTMLで定義して描画してみる。ただ、ポップアップヒントを表示する目的だけでIEコンポーネントやGeckoを使うのはヘビーなので、JVCLが用意してくれている簡易HTMLレンダリングルーチンを使用。…

TCustomForm::OnCreateでの注意点

フォーム作成時のエラー処理でちょっとハマったので、ほとんど覚え書き。アプリケーションの設定ファイルをアプリケーションと同じフォルダに置くことはよくあること*1だけど、設定ファイルが無い場合はデフォルト値で初期化するのではなく、アプリケーショ…