毎度お馴染みですが、第19回 エンバカデロ・デベロッパーキャンプでまたしゃべります。 内容は、過去に掲載したOpen Tools APIに関する3点と、 Open Tools API その0:概要 - C++Builder好きの秘密基地 Open Tools API その1:"Hello,World!"を表示してみる…
かねてから要望が多かった個人向けエディションのC++Builder XE Starter/Delphi XE Starterが発表。Delphi関連は有志の方がまとめてくれているのでC++Builderの分について少々。 Delphi/C++Builder XE Starterの機能制限 DEKOのざつだん。 個人的にC++Bu…
かねてから、Pro版で使用可能なFirebird/Interbase用のコンポーネントを探していて、 Unified Interbaseコンポーネントをつかってみた(その1) Delphiッこ倶楽部東京出張所でUnified Interbaseコンポーネントの解説記事 という記事がポストされていたので…
QC#66768によると、TBallonHintは任意の位置にバルーンヒントを表示できないっぽい*1ので、代替としてJVCLのTJvBalloonHintを使ってみる。TJvBalloonHintはTBallonHintをJVCLが拡張したコンポーネントでは無いので、使い方が根本的に違う。あと、現時点での…
通常のポップアップヒントでは出来ない強調表示や文字の色変えをHTMLで定義して描画してみる。ただ、ポップアップヒントを表示する目的だけでIEコンポーネントやGeckoを使うのはヘビーなので、JVCLが用意してくれている簡易HTMLレンダリングルーチンを使用。…
フォーム作成時のエラー処理でちょっとハマったので、ほとんど覚え書き。アプリケーションの設定ファイルをアプリケーションと同じフォルダに置くことはよくあること*1だけど、設定ファイルが無い場合はデフォルト値で初期化するのではなく、アプリケーショ…
だ、そうです。 ちうことで、MacBook Air 11インチ欲しい!
C++のコンテナ類を列挙するときに便利なのがboost::foreach。可変長配列であるvectorを列挙する場合は以下の感じ。 //--------------------------------------------------------------------------- #include <iostream> #include <string> #include <vector> #include <boost/foreach.hpp> #include <tchar.h> //-</tchar.h></boost/foreach.hpp></vector></string></iostream>…
IDEのメニューを差し替えるには、IDEそのもののサービスであるINTAServicesのMainMenuプロパティを取得する。 これはTMainMenu型なので、通常のメニューにアクセスのと全く変わりなし。 procedure TFilterWizard.DataModuleCreate(Sender: TObject); var i: …
セキュリティ的に絶対的な効果はないけど、アプリケーションの実行中にPrintScreenキーを無効にしてスクリーンショットを撮れなくするのはそれなりの抑止力があるはず。キーストロークをWindowsに登録するホットキーはフックよりも実装が楽。元ネタは、ここ…
RAD Studio XEに実装されたコードフォーマッターがC/C++の細かいところまでフォローしてくれないので、メジャーなコードフォーマッターであるUncrustifyをRAD Studio XEのコードエディタに適用するプラグインを作ってみました。バイナリ(UncrustifyRS.bpl)…
Mozillaのエンコーディング自動判別ライブラリである「universalchardet」をDLL化したのをC++Builderで動作させてみました。C++Builderでの修正箇所はprmem.hの「#include 」を「#include 」にするだけ。アーカイブはhttp://a7m.sakura.ne.jp/SOURCE/univers…
RadPHPを使ってみて、ちょっと気になった点がありQCに登録したら、早速回答が来たので覚え書きとして記録。こんな感じのソースファイルを作成して、エンコーディングをUTF-8としてBOM無しで保存。 '; print '<BODY>'; print 'これはPHPのソースコードで、エンコー</body>…
Boost Update 1を含むRAD Studio XE/C++Builder XE Update1がリリース。ただし、Boost Update 1にすると、boost::tupleを使っている部分でコンパイルエラーになるので以下の部分を修正。$(BDS)\include\boost_1_39\boost\tr1\detail\config.hppの48行目、"(_…
プロジェクトの作成 IDEへのアドオンは、パッケージを作成してそれをIDEに「登録」することで実装される。RAD Studioの場合、[ファイル|新規作成|パッケージ-Delphi]で新規プロジェクトを作成する。Open Tools APIのクラスやインスタンスは通常のプロジェク…
戯言前口上 RAD Studioにコードフォーマッターが実装されても、残念ながら、宗教論争にすらなるC/C++のコーディングスタイルすべてをカバーし切れていないのが不満。ということで、RAD Studioのコードエディタ上からGNU IndentやUncrustifyといった既存のコ…
ファイル検索ツールで文字判定時に例外が発生する場合があるのでそれを修正しました。 アーカイブ:http://a7m.sakura.ne.jp/APPS/TextMatch100_2.zip ソースコード:http://a7m.sakura.ne.jp/APPS/TextMatch100_2.source.7z あと、バイナリファイルも検索で…
LinuxやFreeBSDといったUnix系OSにSSHとSubversionがインストールされていれば、RAD Studio XEからでもSSHトンネリングを利用してリモートのSubversionのリポジトリにアクセスできる。 サーバーは以下のように設定されているものとするので、適宜読み替えて…
いわゆる、GUI付きGrepを公開しました。詳細はアーカイブ中のヘルプファイルを参照してください。ちなみに、元ネタは第12回デベロッパーキャンプ「C++Builder ライブラリ徹底活用法」のサンプルコードで、こいつをブラッシュアップしたもの。既存のテキスト…
本編では時間が足りなくなりそうなので思いっきり端折ったTJvWizardについての補足。こいつは、よくあるウイザード画面を実現するコンポーネントでJVCLのインストーラーもこいつを使用してる。 使い方はTPageControlとTTabSheetに近く、TPageControlに「次へ…
本編で軽く紹介したSynEditについての修正アーカイブを公開しました。修正点は以下の通り。 RAD Studio XEのカラースキーマ取り込み(Delphi/C++) RAD Studio XE用のプロジェクトで、C++Builderでも使用できるようにした RTF形式の出力で、日本語文字列が化…
RAD Studio(C++BuilderとDelphiの両方)がインストールされている場合は、Delphi用のプロジェクトのプロジェクトオプションを変更することによって、C++Builderのプロジェクトでも使用可能。当然、コンパイル後のパッケージではなくソースコードが必要。 RA…
RAD Studio XEにインストールする場合は以下の点に注意。RAD Studio XEはJCL2.21 & JVCL2.40で対応。これらは、パートナーDVDに含まれている。 $(BDSCOMMONDIR)*1にフォルダ"hpp"を作成する。C++Builderが使用するJCLのヘッダファイルはここに生成される。*2…
会場とtwitter経由で質問事項があったのでそれの文書化とその補足。 Q1.JCL/JVCLの安定度は? 自分が使っている分には問題なし。実際、お客さんへの納品物にかなり使っています。会場では「DB関連は怪しいかも」と発言したけど、補足するとC++Builder6の頃で…
参加者の皆様お疲れ様でした。 うまくしゃべれたか判りませんが、質問はTwitterかここのコメント欄で受け付けます。最低、自己フォローとしてやらないといけないのは、以下の4点。 JCL2.21 & JVCL2.40でのインストールの変更点とC++Builderにインストールす…
Delphi/C++Builder XEに対応した、オープンソースライブラリ&コンポーネントのJCL2.21とJVCL2.40が正式リリース。デベロッパーキャンプの前に正式版が出て何より。と言っても、XEのパートナーDVDにはしっかり含まれているので、正式リリースは少し前だった…
UnicodeStringに関するちょっとした仕様変更 UnicodeString::t_char()は移行期間が過ぎたということで「非推奨」に。それに伴い、プロジェクトのTCHARのマッピングがデフォルトでwchar_tに。よって、C形式の文字列ポインタ(const wchar_t*)が欲しい場合は、c…
C++RTLの更新 まず、ディスカッションフォーラムで問題になっていた、ストリームIOについての致命的なバグはFIXされました。こんなコードを喰わせると何故か文字化け。 #include <string> #include <iostream> #include <locale> int main() { char locale[] = "japanese"; std::locale</locale></iostream></string>…
"Fulcrum"のコードネームで開発されていた、C++Builder/Delphiの新バージョンが"RAD Studio XE"として発表。 ベータテストをやっていたのだけど、表に出せる部分は出してもいいよとのお達しがEmbarcaderoから来たので、ほんの少しだけ晒してみる。 もちろん…
第12回デベロッパーキャンプでネタにしたmlang.dllのDetectInputCodepageがBOM無しUTF-8をWindows-1252と誤判別するので、代替としてバベルを使ってみる。使い方はヘッダファイルbabel.hをインクルードして、プロジェクトにbabel.cppを追加するだけ。以下は…