Swanman's Horizon

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

Delphi

IDEにおける背景変更機能の導入による開発効率への影響とその考察。

これはDelphi Advent Calendar 2012の参加記事です(9日ぶり2度目)。 真面目な記事だと思った?残念、痛IDEちゃんでしたー! 痛IDEというのは、痛車と同じ発想でIDEを二次元的なアレで飾っちゃおうぜ☆というアレなアレです。 VisualStudioやEclipseなど有名…

関数ポインタとメソッドポインタの相互代入のおはなし。

この記事はDelphi Advent Calendar 2012の参加記事です。今日で5日目! はい、まさかの1年ぶりの更新です。 基本的にここは「Delphiそのものを触るのが楽しい!」という時にしか更新する気が起きないので、 早く楽しくなるような新しい言語機能がたくさん搭…

TTwitterでフォロワーのID一覧を取得する。

var api: TTwitterAPI; cursor: Int64; json: ISuperObject; i: Integer; begin api := TTwitterAPI.Create(...); // cursorパラメータを省略、もしくは-1を指定すると最初のデータが取得できる cursor := -1; repeat json := SO(api.GetFollowersIds(User('…

TTwitter私家版 111120。

今回ちょっと更新範囲が広すぎてチェックが全然できてないんですが、どうやら本家TTwitterが更新再開するらしく、作業が無駄になる予感しかしないのでさっさと公開しておきます^p^ダウンロードはこちらから。 http://twc.xrea.jp/junk/TTwitter/ 仕様変更…

TTwitter私家版 111110。

ダウンロードはこちらから。 http://twc.xrea.jp/junk/TTwitter/ 更新点 TTwitterTimeline.GetTimeline→Updateメソッドに変更 TTwitterTimeline.NumberOfGet→Countプロパティに変更 全てのタイムラインでパラメータが設定できなかったのを修正 タイムライン…

TTwitter私家版 111106。

ダウンロードはこちらから。 http://twc.xrea.jp/junk/TTwitter/ ユーザータイムラインに対応 オリジナルでは未実装のまま放置されてたTTwitterMultiTimeline.GetTimelineを実装しました。 TTwitter.Timelines.Usersで任意ユーザーのタイムラインを取得でき…

GetFieldsの挙動が変…かも?

概要 RTTIでクラスやレコードのフィールドを扱う際、TRttiTypeのGetFieldsメソッドが返す配列に何故かプロパティが含まれる場合がある。また、あるはずのプロパティが消える場合がある。 環境 Delphi XE2 Update 2 再現コード uses ..., System.Rtti; type T…

TTwitter私家版 111105。

Delphi用のTwitterライブラリであるTTwitterが動かなくなってたので、その辺の不具合を直したり、JSONライブラリをSuperObjectに差し替えたりしてる途中の何か。とりあえずツイートするサンプル。 procedure TForm1.FormCreate(Sender: TObject); with Twitt…

ジェネリクスを使って少しだけ手軽に列挙型の値を文字列に変換する。

これとは関係ないネタを書いてたんだけど、全然まとまりそうにないのでわりとどうでもいいネタでお茶を濁す。 列挙型を文字列に 例えば列挙型の値をiniファイルなどに保存したい場合、Ordで整数値を取り出す、Integerでキャストする、という選択肢のほかに、…

ShortCutToKey関数を実行時に置き換える。

[twitter:@zendenmushi]さんがFireMonkeyでのショートカットの不具合を何とかする方法を書かれていたので、修正ユニットをusesすれば有効になるようにしてみた。 元記事はこちら: FireMonkey/OSX メニューアイテムのショートカット: 生き物コーディング unit…

DelphiからCocoaを使う その2。

その3は…無い気がする。 ShowMessage?しらんがな(´・ω・`) 前回は何だったんだという話になりかねないですが、正直言うとダイアログの形とかどうでもいいですよね。それよりコントロールを置きたいんです。コントロールを置いてあんなところやこんなところ…

DelphiからCocoaを使う その1。

その1とか書いてるけど、次回があるかどうかは知らないです^q^ FireMonkey?ぼっこぼこにしてやんよ 最初に断っておきますが、数々のバグは別にしてFireMonkeyのコンセプト自体は良いと思います。やはりひとつのソースから複数プラットフォームの実行ファ…

DTween 110911版。

今回はたくさんバグを仕込んだ気がする^p^DTweenをダウンロード 修正点 Platform.GetTickのバグ(QC#98747)を回避 DTweenは処理をする際に時間情報が必要なので、WindowsではtimeGetTimeを使っていたんですが、MacやiOSにはそんなAPIはありません。なんて…

DTween 110906版。

予想通りFireMonkeyにDTweenと被りまくりの機能入ってたけど泣かない。DTweenをダウンロード 修正点 Delphi XE2に対応 VCLアプリケーションで動くだけでなく、FireMonkeyアプリケーションでも動きます。MacやiOSでも動作確認しました。 ちなみにFireMonkeyア…

dpr2xcode.exeを使うときの注意点。

XE2でiOSアプリが作れるようになったわけですが、その際Xcodeにエクスポートするために使う「dpr2xcode.exe」というツールに関するメモ。 plist=Windowsでいうiniみたいなもの dpr2xcodeを使って生成されるファイルのうち、「プロジェクト名.plist」という…

DTween 110824版。

前回記事の内容を取り込みつつ。DTweenをダウンロード※2011/08/25 22:06にファイルを差し替えたつもりがリンクだけそのままになってましたorz 08/30 20:00より前にファイルを落とされた方はお手数ですが再度ダウンロードをお願いします。 修正点 Delphi 2006…

RTTIによるプロパティの書き換え速度を比較してみた

TRttiProperty vs Set(Ord|Float)Prop Delphi 2010で拡張RTTIが導入されて、Rttiユニットでクラスやレコードの情報を調べたりプロパティを書き換えられるようになったんだけど、2009以前にもTypInfoユニットにあるSetOrdValueやSetFloatValueといった関数で…

DTween 110819版。

今回は2010やXEを使っている方にとっては内部処理の変更だけですが…。DTweenをダウンロード 新しい機能 Delphi 2009以前のバージョンに対応(ただし制限付き) ということで、今まで比較的新しめのDelphiでしか動かなかったDTweenですが、それ以外のバージョ…

DTween 110818版。

トゥイーンがひとつも実行されていないときは内部タイマーを止めるようにしました。DTweenをダウンロード

DTween 110817版。

とりあえずこの辺で安定する…はず。DTweenをダウンロード 仕様変更 単一パラメータ版のTween(To, From)メソッドを廃止 開発途中でパラメータがひとつしか指定できない頃の名残だったというか、リリース時に消し忘れてたというか…。 今の段階で「DTween使い…

DTween 110815版。

今回はTEasing.Combineのバグ修正だけです。DTweenをダウンロードと、これだけでは寂しいので、今っぽいUIにありがちな動きのデモを1つ増やしておきました。こんなの。 パネルに別々の色付けておけば良かったな。

DTween 110814版。

昨日の今日で仕様変わってますけどまあそれはそれで。DTweenをダウンロード 仕様変更 プロパティ値取得のタイミングを変更 値の相対指定時や、省略されたプロパティ値の取得のタイミングを「Tweenメソッドのコール時」から「初めてトゥイーンを実行した時」…

Delphi用トゥイーンライブラリ「DTween」できました。

Twitter上でデモ動画を2つほど公開してきたけど、最低限公開できそうな感じにはなったと思うので出してみるよ!DTweenをダウンロードDTweenとは何かというと、簡単に言えば下の動画のような動きが実質一行で書けちゃうようなライブラリです。具体的な書き方…

STRONGLINKTYPESコンパイラ指令からみる日本語版docwikiの酷さ。

ネタはさておき まあ使ってる使ってないにかかわらず強制リンクしちゃうよっていう、スマートリンク?何それ食えんの?的な機能だけど、こいつの威力はさておき、何が酷いかってdocwikiっすよ。 一応これXEでの新機能ってことになってるんだけど*1、英語版で…

エターナルストロングリンクタイプ!

一瞬でusesしたユニットごと型をリンクしexeサイズを肥大化させる。 相手は死ぬ。

docwikiでは教えてくれない演算子オーバーロード。

In演算子 Inをオーバーロードすると、集合演算子としてのinの動作を定義できるようになる*1。 // サンプル type TStrRec = record public Value: TArray<string>; class operator In(const A: string; const B: TStrRec): Boolean; end; class operator TStrRec.In(c</string>…

他に見つけたもの。

まあこちらはdocwikiにも載ってたんだけど。 experimental指令 ユニット全体、あるいは特定のシンボルがテスト用であることを示す指令。 次のように使う(と、コンパイル時に「これはテスト中のもんやで!」と出る)。 unit Unit1 experimental; // 「W1007 …

カスタム属性とRTTIを使ったCSVファイルのロード@Delphi2010。

1月1エントリ 順調に達成してるな…!と思ったらすでに4月に破綻してた。 そんなことよりカスタム属性やろうぜ! 先日カスタム属性とRTTIを利用したCSV読み込みクラスを作る機会があったので、それらの利用サンプルとして多少汎用化しつつ公開してみる。C#は…

メソッド解決節にジェネリックメソッドを指定できない。

たぶん バグじゃなくて仕様なんだろうけどね。 指定できたらどうなるの? 例えばTStreamにReadInt8やReadUInt64みたいなサイズ別読み取りメソッドを実装したいときなんかに、実装部の記述量の大幅削減が期待できる。 指定できない場合 type THogeStream = cl…

知られざるTHashedStringListの事実。

ハッシュテーブルといえば Delphiにジェネリクスが導入される以前、ハッシュテーブル(らしきもの)を使おうと思うと、標準VCLではIniFilesユニットに含まれるTHashedStringListしかなかった*1。一方、導入後はGenerics.CollectionsユニットのTDictionaryが…