Delphi

Delphi2009でTIdFTPを使ってはまった

Delphi2009でIndy10のTIdFTPを使っているのですが、どうやらサーバによってはエラーメッセージすら出ずに落ちる。 なぜだろうといろいろ調べていて、ListResultがサーバによって違うのに気づいた。そういやFTPってそういう面倒な仕様ですね。 この記事を元に…

DLLでコールバック関数をやりとりする

Delphi-MLに投稿して、回答をもらって解決できました。ありがとうございます。 やりたいこと DLL側にデータを処理する関数/手続きがある DLL側からアクションが開始される(メインアプリのほうではコールバックを登録するだけ) DLL側の関数のポインタがメイ…

stdcallやcdeclをよく付け忘れる

Delphiはデフォルトがfastcallなんだっけかな。 Cで書かれたDLLにコールバック関数を渡すときに、stdcallやcdeclを付け忘れてエラーで落ちる。 デバッグしづらいのでよくはまる。

EProgrammerNotFound

たまたま見つけたのですが、Delphi2009のSysUtilsにはEProgrammerNotFoundというクラスが存在します。名前がとても気になります。 grepしてみたけど、どうやらVCLでは使われていない様子。何のためのクラスなのでしょう。イースターエッグなのかな? 参考 Fu…

レコード型の書き込みと読み込み

試したのはDelphi2009です。recordにメソッドを持たせても問題なくファイルに書き込めるっぽい。 test_record.dpr(sjis) program test_record; {$APPTYPE CONSOLE} uses SysUtils, Classes; type TPersonRec = record ID: Integer; Name: array [0..255] of …

DelphiでApacheのモジュールを作成する

Delphi2009でApache2.2(Windows)用のモジュールを作成する方法。Delphi7ぐらいのときは標準でApache2モジュール選べたのになぁ。 使用しているDelphiは2009pro。 Delphi2009になってからも、Apacheのヘッダファイル群をポートしてラップしたクラスが残ってい…

DelphiでTwitterのタイムラインを取得する

Delphi2009でXMLデータバインディングを使ってみようと思って、試しにTwitterのタイムラインをとってくるアプリケーションを書いてみた。 HTTP通信はSynapseを使いたかったけど、2009に対応していないので付属のIndyを使うことにした。 XMLデータバインディ…

MapとReduce

Pythonでよく使ってるMapとReduceをDelphi2009で実装してみた。 この辺の人がすでにうまいことやってるっぽいけども・・・。 map.pas unit map; interface uses Generics.Collections; type TFunc<T> = reference to function (Value: T): T; TFunc2<T> = referenc</t></t>…

CDSのエディタのショートカット

メモ。 Ctrl+Tab タブの切り替え Shiftで逆方向 Ctrl+Shift+↓ 宣言部と実装部のジャンプ ↑or↓ Ctrl+Enter カーソル行のファイルを開く

TWinDriveComboBox

相変わらずDelphi2009のDriveComboBoxも3.1スタイルなんだがどういうことだ。 というわけで作った。使う。 tokibito / WinDriveComboBox — Bitbucket XPとVistaでアイコンが変わるようにしてみた。 選択したドライブへのアクセスはこんな感じ。 WinDriveComb…

ドライブ選択のコンボボックスコンポーネントを作成中

ドライブ選択のコンボボックスはどこかであったと思うのだけど、満足いく実装のものがないので自作。 Delphi2009だとジェネリクスと無名関数使えてやっぱり楽だなぁ。 今日はここまで...。 参考 GetLogicalDrives 関数 GetDriveType 関数 ExtractIconEx 関数…

SpinEditとWinSpinEditの違い

SpinEditはValueがIntegerだけど、WinSpinEditはInt64 SpinEditはスピンボタン部分がWindows標準のデザインじゃないけど、WinSpinEditは標準 このぐらいしか違いはないんだけどやっぱり使う。

TWinSpinEditのバグ修正とリファクタリング

TWinSpinEditのバグ修正とリファクタリング 値が空になったときの挙動とか、もろもろ直した。 tokibito / WinSpinEdit — Bitbucket

TWinSpinEdit

bitbucket.orgにソースを移動。Delphi2009対応とかしていこうかと。 tokibito / WinSpinEdit — Bitbucket

バイト数のフォーマット処理とか

メモ。ファイルやらのバイト数のフォーマット処理とか。まあファイル破断なんかではよく使うわけです。Int64は必須。 変数名が難しいなあ。 FmtUtils.pas unit FmtUtils; interface uses SysUtils; const UNIT_BYTES = 1024; MAX_UNITS = 6; UNITS_STRING: a…

ディスク容量とメモリ容量の取得

メモ。ディスク容量とメモリ容量の取得。Delphi2009で動作確認。 いまさらですが。 SysStats.pas unit SysStats; interface uses Windows, SysUtils; type TDiskSpace = record Directory: string; FreeAvailable: UInt64; TotalSpace: UInt64; TotalFree: U…

Generics.Collections.TDictionary

program sample_dict1; {$APPTYPE CONSOLE} uses Generics.Collections; var dict: TDictionary<string,string>; s: string; begin dict := TDictionary<string,string>.Create; try dict.Add('でるふぁい', 'Delphi'); dict.Add('hoge', 'ふが'); Writeln(dict.ToString); for s in dict.K</string,string></string,string>…

コンソールアプリケーションのテンプレート

いつからこうなってるのかわからないけれど、Delphi2009でコンソールアプリの新規作成をしたらテンプレートが変わってた。 program Project1; {$APPTYPE CONSOLE} uses SysUtils; begin try { TODO -oUser -cConsole Main : ここにコードを記述してください …

Delphi Prism

Delphi.netの後継の Delphi Prism が発表されています。 .NET3.5対応とのことなので、WPFをどういったアプローチで扱うのかなどは興味深い。 RemObjectsのコンパイラなので、いい感じに動くのかなー。 Win32バージョンとは言語仕様から変わってくるか。 とこ…

あなたがCDN(CodeGearDeveloperNetwork)を活用しない理由は?

→重いから。

Delphi2009とUnicode

DEKOさんの記事。とてもわかりやすい。 Delphi 2009 と Unicode : Part I Delphi 2009 とUnicode : Part II Delphi 2009 とUnicode : Part III

Memoize

Pythonでいうところのデコレータかな。関数を引数に取って、前後に処理を追加した関数を返すとか。 Implementing Memoize in Delphi 2009

Delphi2009を買いました

ねんがんのDelphi2009をてにいれたぞ!

Statistics Library

Delphiッこ倶楽部東京出張所: ジェネリックの例 経由にて、 DelphiでGenericsやAnonymousMethodsを使ってごにょごにょやるらしい。 Building a Generic Statistics Library, Part 1: Interface Building a Generic Statistics Library, Part 2: Unit Tests B…

Delphi2009を体験する

今回のDelphi2009(Win32)は面白そうな機能追加が多くあり、購入を考えているので体験版をダウンロードして使ってみました。ちなみに現在持っているのはDelphi2005です。 起動時間について Delphi2005は遅いと有名で、2006の時点で起動時間の問題は解消されて…

Delphi2009が発表されましたね

既に各所で話題になっていますが、Delphi2009の発売が発表されました。 http://www.codegear.com/jp/article/38585 価格が今までに比べると高いです。諸所でも高いという意見が結構ありますね。 ただ、今回のバージョンではUnicode対応やWin32 Generics、匿…

a2c BOF Todo

**Vim SnippetsEmu.vim インデント filetype Delphi monoのインストール再戦 なんというかOSX用のバイナリでインストールしたらすんなりいった。 macportsでがんばった意味あまりなし。 Delphi.NETで作成したアプリをOSXのMonoで動かす コントロール貼付けた…

デバッグメッセージを表示するツール

Delphiでデバッグメッセージどうしようかなーといろいろ考えて作ったツール。 usesにuDebugManagerを追加してDebugMessage手続きを使うだけ。 procedure TForm1.FormCreate(Sender: TObject); begin DebugMessage('FormCreateが実行されました'); end; proce…

続Tiburon

匿名メソッド(関数)が使えるらしい。 Tiburon - Anonymous Methods win32genericsも入るという噂も。

Delphi2009がもうすぐ出るらしい

Unicode対応を含むDelphi2009がもうすぐ出るらしい。 次期バージョン「Tiburon」でのVCLコンポーネントの新機能・機能強化 Delphiッこ倶楽部東京出張所: まもなくリリース Delphi2009 http://bousyo.blog45.fc2.com/blog-entry-253.html