これは Delphi Advent Calendar 2016 20日目の記事です。
Delphi 10.1 Berlin Starter Edition がリリースされ、無料でDelphiに触れることができるようになったので勢いで触ってみました。
これまでのDelphi経験
業務アプリケーション開発でDelphi 4、Delphi 7を使用しました。HTML、CSS、JavaScriptだと3日かかる作業がDelphiだと1日で終わるというGUI開発の生産性の高さに魅了され、Delphiが世界を席巻してくれることを夢見続けています。
よく使っていたVCL
簡単なCRUDなら以下のVCLだけで済ませられましたね。
TMainMenu
、 TActionList
、 TToolBar
、 TImageList
の組み合わせは素敵でした。
TPanel、TMainMenu、TActionList、TToolBar、TImageList、TLabel、TEdit、TListView
本記事の趣旨
Delphi 10.1 Berlin でどんなところが変わり、改善されたのかを実際にアプリケーションを開発しながらまとめてみます。ちなみに Starter Edition での内容です。なお、Delphi 7までで個人的に感じていたところは以下になります。
Delphiの良いと感じていた点
- コンパイル、起動が速い
- ビューを直接いじりながら画面デザイン、コンポーネント配置ができる
- Shiftキー+方向キーで1px単位で位置調整できるのは最高
- 標準のVCL、クラスライブラリだけでも十分に開発できる
- 各コンポーネントのイベントハンドラの作成、把握が容易
- 困ったら
F1
ヘルプでたいてい解決できる - 初期Delphiの主要開発者だったアンダース・ヘルスバーグ氏が ネ申
Delphiの残念に感じていた点
- 有料で結構なお値段
- IDEとしてのエディット機能が貧弱
- リファクタリングがつらい・・・
- Windowsでしか動かないし(Kylyxなんてなかった、いいね?)、Windowsのバージョンアップ対応が大変
Delphi 10.1 Berlin の良い点
あまり大きな違和感を感じなかった
操作感、コンパイル・起動速度は変わらずですね。
かつてのVCLも健在で以前の開発スタイルでも問題なさそうです。
エディタのフォントが充実
Ricty
が標準で入っているのは嬉しいですね。
Windows 10コンポーネント
TSplitView
や TToggleSwitch
、 TSearchBox
といった今風なコンポーネントが追加されています。 TMainMenu
から TSplitView
を使用したメニューに切り替えるのが良さそうです。
FMXが利用できる
マルチプラットフォーム向けのFMX(FireMonkeyフレームワーク)が使えます!
残念な点・ハマった点
画像のインポート
TImageList
に画像を追加したら何故か黒く潰れてしまいました。
原因は TImageList
の ColorDept
が初期状態だと cdDeviceDependent
になっていたことでした。
cd32bit
に変更したらちゃんとインポートできました。 Starter Edition だと cd32bit
を選択するしかないようです。
ジェネリクスの使用にはGenerics.Collectionsのインポートが必要
unit BookUnit;
interface
uses
System.Classes;
type
TBook = class
private
FTitle: String;
FTags: TList<String>;
public
constructor Create(Title: String; Tags: TList<String>);
function GetTag: String;
end;
ジェネリクスがいつのまにかにサポートされたという事で上記のようなコードを書いてみたらコンパイルが通らない?
[dcc32 エラー] BookUnit.pas(12): E2003 未定義の識別子 : 'TList<>'
Delphi ジェネリクス
で泣きそうになりながらググっていたら Generics.Collections
というワードを発見。uses節に追加したらコンパイルが通りました!
これはハマる人が多そうだな・・・ 。
リファクタリング機能、クラス補完機能が備わっていない
残念ながら Starter Edition にはリファクタリング機能、クラス補完機能がありませんでした。
Ctrl + Shift + C
で実装の雛型が作成されないのは戸惑いますね。
Ctrl + Shift + ↓
Ctrl + Shift + ↑
で定義と実装の行き来ができないのもコーディングのリズムに大きく影響を受けました。
Windows用の32ビットEXEしかビルドできない
Windows用の32ビットのEXEしか作成できませんでした。
でも、無料版でそれなりに動くアプリケーションを開発できるのはプログラミング初心者には良い素材に思います。
まとめ
Starter Edition は機能制限はあるもののDelphiの良さを感じるには十分な内容が備わっていると思います。HTMLやCSS、JavaScriptに疲れた人やGUIに興味のあるプログラミング初心者には是非お勧めしたいですね。 Professional の廉価版のお手頃なライセンスが登場してくれることを祈ります。