Delphi ユーザの為の C# Tips

ということで Delphi2005 を使って C# + .NET で簡単なテストアプリケーションを作ってみました。今日(正確には昨日)1日いじってみて、やっと C# + .NET の使い方が(1/10000くらい)分かった気がします。

まずコントロールの上にコントロールを乗せる場合、Delphi(VCL) ではこんな感じのコードを書いていました。

Memo1.Parent := Panel1;

.NET では(TMemoは無いですが便宜上ということで)

Panel1.Controls.Add(Memo1);

と関係がまるっきり逆になってます。Panel1.Parent も存在するので間違わないようにしましょう。まぁこんなところでつまずくのはオレくらいなんでしょうけど…。

あと「タブコントロールの中のタブページの中のメモ」という構成にする場合は

TabControl1.Controls.Add(TabPage1);
TabPage1.Controls.Add(Memo1);

この順番で乗せないと何故か Memo1 が表示されません。理由は良く分かりませんが、とりあえずはこの順番でやっていけば間違い無いようなので従いましょう。

もうひとつ。C# では大文字小文字を常に区別します。

int i;
Int i;

後者は「型または名前空間'Int'が見つかりませんでした」というエラーになります。C でもこうでしたっけ?覚えてないなぁ。まぁ駄目なものは仕方が無いので小文字で書くようにしましょう。

その他 Align プロパティが無いとか(Dock と Anchor 辺りでカバー*1 )、フォームデザイナのインターフェースが違うとか、メニューを貼り付けたのに小さいアイコン(非ビジュアル等ですがメニューはビジュアルコンポーネントですな)フォームに表示されないとか数々ありますが、あとは何とかなるレベルと思われますので Delphi ユーザの方は自分の力を信じて突き進んでいきましょう。

*1:近いうちに挙動を調査して、Align と同様の動作を行えるようにしてみたいと思います。