Swanman's Horizon

性欲をもてあましつつなんらかの話をするよ。

Delphi

GetTypeKindを使って擬似的に細かい型制約のジェネリクスを実現する。

ガード節も使います 前回ガード節は使うなと言ったな、スマンありゃウソだった…というわけではなく、ガード節を使わずに書いた方がいいのは「どんな型が指定されてもいい場合」で、class制約やrecord制約より細かい制約を課したい場合は、逆にガード節を使う…

ガード節を使ってはいけない?GetTypeKindの使い方。

GetTypeKindとは GetTypeKindはXE7で新しく実装された組み込み関数で、この関数に型を渡すとTTypeKind型の値が返ってきます。たったそれだけの関数です。 もちろん今までもTTypeKindを取得することはGetTypeKindを使わなくてもできました。TypeInfo関数です…

dNotes Ver.0.0.3。

プロジェクトマネージャ上で各ユニットにコメントを書くためのDelphi IDE プラグイン「dNotes」を更新しました。 更新内容は、Ctrl+C等のショートカットを有効化、IDEの言語設定による言語の自動切り替えの追加です。dNotes ver.0.0.3をダウンロード

痛IDEプラグイン for RAD Studio Ver.0.0.7。

IDEのコードエディタの背景に任意の画像を配置することで、一部デベロッパーの開発速度を爆発的に上げることでおなじみ痛IDEプラグインの久々の更新でございます。 画像はプロ生ちゃんこと暮井慧さま。 ダウンロード 痛IDEプラグイン for RAD Studio Ver.0.0…

dNotes Ver.0.0.2。

プロジェクトマネージャ上で各ユニットにコメントを書くためのDelphi IDE プラグイン「dNotes」を更新しました。 更新内容は、起動時のカラムサイズ自動調整、コメントの直接入力など。dNotes ver.0.0.2をダウンロード

クズがプロジェクトマネージャ弄った結果。

前回までの全力わはー なんやかんやあって全米川下り選手権へ。 今まで作ったIDEプラグインまとめ 埋め込みデザイナでもフォームユニットを複数開けるようにする 無名メソッドのひな形をショートカットキーで補完 プロジェクト読み込み時にコントロールをロ…

埋め込みデザイナにフォームユニットの複数表示機能を求めるのは間違っているだろうか。

前回までの全力わはー コントロールのロックを自動でオンにしたり、無名メソッドをショートカットで一発入力させたり、最近何かとIDEを弄くり回すことに楽しみを覚えたLynaは、埋め込みデザイナへの挑戦権を獲得すべく、例の紐を手に全米川下り選手権への参…

無名メソッド、さらに楽に入力できるようになったっぽいっぽい?

ダウンロード 無名メソッド入力補完プラグイン ver.0.0.2 なんと当日に解決 技術的制約(笑)のせいでできないと思われていたツールチップ表示無しでの補完、そしてあらかじめ指定した無名メソッド型しか補完できないという残念な点は両方とも解決しました。…

あぁ^〜無名メソッドをもっと楽に入力したいんじゃぁ^〜。

まずはダウンロード 無名メソッド入力補完プラグイン ver.0.0.1 これはいったい何なのか と言っても名前の通りなんですが、要はTList.Sortに指定する比較用無名メソッドだとか、TDirectory.GetFilesに指定するフィルタリング用無名メソッドだとか、ああいう…

プロジェクトロード時に「コントロールのロック」を自動でオンにしたい。

したいけどできなかったので作りました。 全ソース unit LockOnLoad; interface uses ToolsAPI, ComponentDesigner; implementation type TIDENotifier = class(TNotifierObject, IOTAIDENotifier) private procedure FileNotification(NotifyCode: TOTAFile…

普通のコンポーネントで【初期化】やってみた。

この投稿はDelphi / Appmethod Advent Calendar 2014の21日目の記事です。 ところで皆さん何か忘れてませんか? 「Object Pascal / C++」Advent Calendar」じゃないですよ!「Delphi / Appmethod」Advent Calendarですよ! もっと開発環境の話もぶっ込んでい…

Delphi 3分ハッキング。

この投稿はDelphi / Appmethod Advent Calendar 2014の3日目の記事です。 ♪例のテーマ はい、それでは本日はDelphiをハックしていきたいと思います。IDEのハックも季節的にとっても旬でおいしいんですが、今日はRTLやVCLをハックしてみましょう。材料はこち…

FMXでセルシェーディング

前回までの全力わはー FireMonkeyでシェーダを使えるようになったLynaは、全米川下り選手権へ出場するのだった。 セルシェーディングとは google:セルシェーディング とりあえず成果 ダウンロード 中身の説明 セルシェーディングです。詳しい説明は上のグー…

FMX3Dで任意のシェーダを使う

シェーダってなに? google:シェーダ FireMonkeyでのシェーダ FireMonkeyでは基本的にTCustomMaterial(の派生クラス)とシェーダが1:1で対応します。そしてTCustomMaterialはTMaterialSource(の派生クラス)が保持します。つまり、3DオブジェクトにTMater…

MMD4Delphi 0.0.1

これは何? MikuMikuDance(MMD)のモデルデータをFireMonkeyのTModel3Dクラスで利用するためのライブラリです。 ダウンロード MMD4Delphi 0.0.1 使用上の注意 XE4用に作っているので、それ以外のバージョンではそのままでは動かない可能性があります。一応X…

LibOVR wrapper for Delphi 0.0.1

これは何? OculusRift用アプリを作るために必要なOculus SDKをDelphiから使うためのラッパーライブラリです。 ダウンロード LibOVR wrapper for Delphi 0.0.1 細かい話 FireMonkeyで使うのは難しい LibOVRを使うには描画した内容をLibOVR側に渡す必要があり…

いろいろ混ざったデモ。

OculusRiftとMMD DelphiでOculusRiftアプリが書けたらいいよね!という話と、DelphiでMMDモデルを扱えたらいいよね!という話が脳内で同時進行した結果、キメラ的なデモができました。 とりあえず動くもの ということで技術デモと名乗るには本間先生が助走付…

未確認で16進数。

うまく言えないのでインストールして確認してください╭( ・ㅂ・)و ダウンロード 16進数表示プラグイン for Delphi ver.1.0 をダウンロード これは何? 設計時に定数の識別子上にマウスカーソルを置くとツールチップが出ますよね*1。これ、昔はその定数が宣言さ…

スマートポインタ、使ってる?

使ってません(でした) 僕自身も2009年頃に匿名メソッド使ってスマートポインタ作れるよ的な記事を書いてましたが、ぶっちゃけ使ってませんでした。 というのも、こちらの実装を見てもらうと分かるんですが、書くのが面倒だったんですね。 後述のクラス等と…

UIImageWriteToSavedPhotosAlbumを呼んでコールバックしてもらう。

正攻法だと呼んでもらえないという話があったので、さくっと要点だけ。テスト環境はXE4です。 原因はRTLのバグ バグです。Macapi.ObjectiveCユニットのMangleType関数がおかしいです。 本来は色々と用意さえすれば、(TOCLocalを継承したクラスなら)自身の…

インスタンスの数を調べる。

発端 だ、だめだ。かなり粘ったけど TObject がインスタンス化された数、かつ、生存数を取得するなんてできぬ… #cross2014— HOSOKAWA Jun (@pik) 13 Jan 2014というツイートがあったんですが、確かインスタンスの生成と破棄時にそれぞれ呼ばれるメソッドがあ…

外部DLL関数をクラスメソッド化する。

これもAdvent Calendarネタにしようと思ってたけど、間に合わなかったので放出。 メンバーにしたい! 外部DLLから関数をインポートすると、どうしてもユニットの直下に宣言することになります。クラスのメンバーにすることはできません。 それでもしたいとな…

日本語関連修正プラグイン for Delphi XE4 ver.1.2。

手っ取り早い説明 ってことで 今回は検索時の不具合を直してみました。 ただ完全ではなく、検索オプション(単語単位の検索とか)にはほぼ対応していないのでずれたり変なところの色が変わったりします*1。 また、Shift+F3等での逆順検索時にはカーソル位置…

日本語関連修正プラグイン for Delphi XE4 ver.1.10。

意外と早く次ができました。 ビフォー アフター 説明 するまでもないと思いますが、Ctrl+Spaceを押した時の挙動です。 上から、 UTF-8で2バイトの文字 UTF-8で3バイトでUnicode的には全角なんだけどフォントによって半角の文字 UTF-8で3バイトでフォントも全…

日本語関連修正プラグイン for Delphi XE4 ver.1.00。

ご挨拶 皆様、そろそろ明けますがおめでとうございます。あと30分ほどで新年ですがそれまで待つのが面倒なのでさっさと書きます。 突然どうした 今回のはDelphi Advent Calendar 2013用のネタにするつもりだったんですけど、時間がなくて間に合いませんでし…

VCLアプリで新規フォームのデフォルトフォントをあらかじめ設定する。

こういうのあるならね、環境設定から弄らせろと。何のための設定だよと。 あと公式ブログも、日本語の音声も字幕も一切付ける気のない全編英語の動画記事にちょろっと日本語書き足して紹介するくらいなら、こういうの翻訳して載せてくれた方がみんな嬉しいと…

TMessageManagerってこんなの。

あっとうてきなどきゅめんとぶそく\(^o^)/ TMessageManagerとはなんぞや TMessageManagerは、FMX.Messagesユニット内にある200行足らずの小さなクラスで、FireMonkey内における簡単なメッセージング機構を提供しているようです(推測)使い方は簡単で、 TM…

痛IDEプラグイン for RAD Studio Ver.0.05。

画像はクラウディア…ではなく、MS台湾公式キャラの藍澤光…でもなく、さらにそれをKDDIがパロって作った雲野コアさんという変化球(参考)。 とりあえずダウンロード 痛IDEプラグイン for RAD Studio Ver.0.05をダウンロード 何が変わったの? 2007以前で画像…

Alt+Enterによるフルスクリーン化を無効にする。

これで悩む人が地味に多そうなので備忘録的に。 最近のDirectXは自動でAlt+Enterを処理してくれる ちゃんと調べてないので10からか11からか分からないですが、最近のDirectXはAlt+Enterを自動で処理してフルスクリーン化してくれる機能があるそうです。とい…

痛IDEプラグイン for RAD Studio Ver.0.03。

ワンポイントだけでは物足りない! やっぱり痛IDEといったら全体を覆うようなサイズを指定するものだと思うんですよね。 ただ、今までのプラグインは描画が劇遅で、そんなものを指定したら一行ずつ描画する様を眺めることができるほどでした。 そこでVer.0.0…