Posted at
DelphiDay 20

Delphi7で止まっていたロートルがBerlinを触ってみた

More than 1 year has passed since last update.

これは 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だけで済ませられましたね。

TMainMenuTActionListTToolBarTImageList の組み合わせは素敵でした。

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も健在で以前の開発スタイルでも問題なさそうです。

Delphi_run.gif


エディタのフォントが充実

Ricty が標準で入っているのは嬉しいですね。

image.png


Windows 10コンポーネント

TSplitViewTToggleSwitchTSearchBox といった今風なコンポーネントが追加されています。 TMainMenu から TSplitView を使用したメニューに切り替えるのが良さそうです。

Delphi_menu2.gif


FMXが利用できる

マルチプラットフォーム向けのFMX(FireMonkeyフレームワーク)が使えます!


残念な点・ハマった点


画像のインポート

TImageList に画像を追加したら何故か黒く潰れてしまいました。

image.png

原因は TImageListColorDept が初期状態だと cdDeviceDependent になっていたことでした。

cd32bit に変更したらちゃんとインポートできました。 Starter Edition だと cd32bit を選択するしかないようです。

image.png


ジェネリクスの使用には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 の廉価版のお手頃なライセンスが登場してくれることを祈ります。