最近はLazarus使ってFreePascalでプログラム書いているのだけれど、せっかくクラスとか書いたら公開したいなぁと思うわけです。ところで、時代はDelphi 2010なわけで、Delphiで扱う文字列がUnicodeになっているわけです。そこで気にしたいのは、バイト単位で文字列を操作する部分はUnicodeとAnsiどちらでも動くようにするということ。
まぁぶっちゃけるとMIMEの処理を行いたいわけだけど、ISO-2022-JPの文字列をstringに突っ込むとどうなるんだろうとか、Base64のエンコード・デコードをしたときにデータを格納すべき変数のデータ型は?とかが、いろいろ分からないのです。データを全部TStream系とかarra of Byteか何かで処理すれば気にしなくていいんだけれど、そうすると文字列検索なんかが面倒になる。ちなみにIndyとかはarray of ByteをTBytesとして宣言して使っているっぽい。
まぁこんな感じで悶々と考えたわけだけれど、結論としてDelphi 2009以降がないとわからん!ってことであきらめました。とりあえずstringはすべてAnsiStringとして考えておくことにします。
タグ : Base64,Delphi,FreePascal,Lazarus,MIME,Unicode
2009/11/05 03:21:01 | Trackbacks (0) | Comments (0) | Technology
ずっと2週間くらい悩まされてきたことがやっと分かりましたよ。
ExtPascal内で動的にオブジェクトの属性を設定するときは、プロパティを参照するのではなく、メソッドで設定を行わなければならない。例えばボタンの有効状態を無効にしたければ、Button.Disabled := Trueではなく、Button.disable()を呼ばなければならないということです。
まぁよく考えてみれば、純粋にJavaScriptでExtJSを使うときもメソッド経由にしないと状態を設定することができないから当然と言えば当然なんです。Delphiのようにプロパティが暗黙にセッター・ゲッター関数になったりしていないから、動的に属性を変更するときはメソッドを呼ばなければいけないんですね。
基本的にExtPascalでは生成したオブジェクトのJavaScript内での名前しか覚えていないようです。そのためExtPascal内でpublicな変数でも、直接属性を設定するとアクセスエラーになるようです。
それにしてもコードでコンポーネントを配置していくのは面倒だなぁ。DelphiのフォームビルダがどれだけUIを設計する作業を簡便化しているかよく実感できる。
タグ : Delphi,ExtJS,ExtPascal,JavaScript
2009/10/20 20:48:24 | Trackbacks (0) | Comments (0) | Technology
正規表現が使えないと文字列処理が面倒です。Perl・PHPを使っていると当たり前のように正規表現を使うので、それに慣れてしまっていますね。
Delphiでプログラム書いていたころ、SkRegExpという正規表現コンポーネントを使っていたので、それをFreePascalで使えるようにしてみました。FreePascalの方が文法が厳格なので、ポインタ関連の処理で少々修正が必要です。具体的には、オブジェクトの代入時にはクラスのキャストを行う、関数変数の代入時には関数へのポインタを代入するようにする、で動くようになります。あ、あとUnitファイルをUTF8で保存し直しておかないと日本語が文字化けします。
コンパイルしながらエラーになったところ(ほとんどポインタ関連)を修正していけばいいと思います。MPLなので修正したものを再配布しようかと思いましたが、そんなに難しいことではないので自力でガンバ!ってことで。
タグ : Delphi,FreePascal,正規表現
2009/10/09 03:01:47 | Trackbacks (0) | Comments (0) | Technology
Delphi 6 プログラミングバイブル
篠原 慶 光田 秀
中古で6,000円。いや、決して安い金額ではないのだけれど、絶版になってからプレミアがついて値上がりしっぱなしだったのが、最近安いのが出品されたようです。2年くらい前に買ったときでさえ9,000円でしたから・・・。
Delphi使いならこの本は持っていて損はないと思います。だいたいプログラミングで困ったらネットで検索するか、この本を読みます。すでに2009の話題が出てますが、この本でも十分事足りると思います。Delphi 6以降IDE中身の革新はあるかもしれませんが、プログラミングスタイルというか概念というか、できることは大幅に変わっていないように感じているからです(Delphi 6から使い始めたのであいまいですが)。実際Rad Studio 2007を使っていますが、いまだにこの本は手放せないですね。
ちょっと本の内容に触れておくと、対象はDelphiの基礎をそれなりにおさえている人。初心者向けのように手とり足とりではないです。その代わりDelphiでできることがまんべんなく書かれています。VCL、DB、COMなど。
Delphiってなにさ!?とかこれからDelphiでプログラミング始めるって人は「はじめてのDelphi」がお勧め。ま、僕がDelphiを始めたときの本なんですけどね。Hello, world!にぴったりの本。プログラムってifやループでつくるんでしょー?ってくらいの知識があれば、この本を通して基本的なWindowsアプリは作れるようになっちゃいます。Delphi 6 Personalがフリーで配布されてダウンロードしたけれど、どう使っていいやらって時にこの本に助けられましたねぇ。
とりあえずDelphianなら「Delphi 6 プログラミングバイブル」買え。他の言語使っているならDelphiつかえ!.netもいいかも知れないけど、やっぱりネイティブアプリが作れた方がいいしね。
2008/09/16 02:15:08 | Trackbacks (0) | Comments (0) | Book,Technology