Delphi/C++Builder/RAD Studio

2018年2月10日 (土)

Embarcadero RAD Studio(Delphi、C++Builder)を10.2R2に更新

RAD Studioは10.2をインストールしてあったのだが、それを久々に動かし、ライセンス情報が消えていたので入力し直した。ついでに更新、ということで、10.2 Release 2にした。

20180210a_delphi10_2update2trimmed

10.2R2にするのはさほど面倒ではなかったが、ウェルカムページのパッチは、自分でファイルのバックアップとコピーをする必要があり、やれやれ、と思った。でもまあ、インストーラを作るより確実かもしれない。

今はプログラミング関連の仕事は来ないので、自分の使うプログラムをちょこちょこと作る程度である。

Visual Studioも更新した。「更新」ボタンを押すだけである。

H2

2017年4月 7日 (金)

RAD Studio 10.2をインストール

Windows 10のCreators Updateを入れたのを機に、RAD Studio(Delphi/C++Builder)を入れ直すことにした。前回は10.1だったが、今日見ると10.2になっていた。

20170407a_2

C++BuilderとDelphiの両方を入れるとなると面倒なのは相変わらずだが、前回よりはまともな手順が判明した。まず、C++Builderをインストールし、ライセンスマネージャでDelphiのキーを登録して、下図のような状態に持っていく。

20170407b_2

次に、「ウェルカムページ」→「ここから開始」→「RAD Studioの展開」→「プラットフォームマネージャと拡張機能マネージャ」を開く。

20170407d_2

で、Delphiにチェックを入れて「適用」をクリック。いったん終了してRAD Studioを起動すると(C++Builderではないので注意)、

20170407e_2

こんな風にC++BuilderとDelphiの両方が起動画面に現れる。メニューの「ファイル」→「新規作成」を見ると、

20170407f_2

両方のプロジェクトを作れるようになっている(らしい)。ちなみに、先ほどの青い画面で「知追加オプション」を選ぶと、サンプルやヘルプのインストールができる。

20170407g

ヘルプをインストールすると、「ヘルプ」メニューがこんな感じになる。

20170407h

コマンドプロンプトでbcc32が使えてもdcc32が使えないのは相変わらず。

20170407i

でも、バージョンは0.1上がったようだ。

H2

2017年3月24日 (金)

Delphi:ネットを信じちゃいけないよ

Delphiでちょっとしたソフトを作っている。「TableMaker」というソフトで、HTMLの表を作るものだ。自分のブログの記事からテーブルを生成したいと思っていて、どれでやろうかと考えていたのだが、Delphiがいいかな、ということで、久々のDelphiの練習の意味も兼ねて作り始めた。

起動するとグリッド(格子、一覧表)画面が現れる。3行3列のテストデータが入っているように作った。

20170324c

「テキスト」タブに切り替えると、グリッドの内容をHTMLにしたものを表示する。

20170324d

「ブラウザ」タブに切り替えるとWebブラウザ的な表示をする。

20170324e

グリッドとテキストのフォントは変更できる。

20170324f

ブラウザには「ズーム」というトラックバーがあり、拡大表示できる。ただ、スクロールバーも大きくなってしまう。ご愛敬である。

この後、自分が読み込ませたいHTMLをインポートする機能を付ければ、目的は達成できるかなと思う。

ここまで作る過程で、1日近く「はまった」のが、TWebBrowserExコンポーネントを使ってブラウザ表示を作るところであった。無償版のDelphiの場合、ツールパレットにこのコンポーネントがない。コードで生成し、イベントハンドラとの関連付けもコードで書く必要がある。こんな感じだ。

20170324g

ここでは


Wb.OnDocumentComplete := Self.WbOnDocumentComplete;

というコードを書いている。TWebBrowserExコンポーネントのインスタンスWbのOnDocumentCompleteイベントのハンドラとして、WbOnDocumentCompleteプロシジャ(メソッド)を割り当てるコードだ。ところがこれが、上の図にあるように、「型に互換性がありません。:パラメータリストが異なります」というエラーになってコンパイルできない。

WbOnDocumentCompleteプロシジャの宣言は

20170324h

こんな風に書いていた。


procedure WbOnDocumentComplete(
  ASender: TObject; 
  const pDisp: IDispatch; 
  var URL: OleVariant);

パラメータは3つである。でも、これではダメだというのだ。ネットの記事はこうだとみんな書いている(本当に「みんな」ではないかもしれないが)。エンバカデロのドキュメントでもそうなっている。

20170324i

この図のリンクはこちら。それなのに、どうして型が合わない?ということで、猛烈に悩んだ。

悩みに悩んで、RAD Studio Architect Trialをインストールしてみることにした。そちらなら、ツールパレットにTWebBrowserコンポーネントがあるのではないかと思ったからだ。インストールし、TWebBrowserコンポーネントを貼り付けてイベントハンドラを作り、そのコードを見ると、パラメータは、


ASender: TObject; 
const pDisp: IDispatch; 
const URL: OleVariant

となっていた。え?constなの?

真似てみた。

20170324j

これで動きましたよ…。

よーく見ると、上のリファレンスは「2007」である。どこかで変えたな…。

ということで、ネットのコードは、役に立つことが多いけれど、はまることもある、というお話でした。

現時点でのTableMakerはこちら

H2

2017年3月20日 (月)

Delphi:エディタの設定を変える

Delphiが懐かしい。これでちょっくら書いてみるか、と思うのだが、そうなると、やはりエディタの設定は変更したい。少ない手間で下のような感じにできた。

20170320t

「表示色のスピード設定」という項目があり、そこを「トワイライト」にすると黒バックになる。

20170320u

あとは、斜体がかかっているのをやめ、コンパイラ指令(だっけ?)が白バックになっているのを黒バックの赤紫字にし、フォントを14にすれば、上の感じになる。Delphiはもともとタブ幅が2なので、そこは設定する必要がない。おそらく私は、Delphiに慣れて、タブが4だと落ち着かないんだろう。

あー、Delphiうれしい。

H2

C++Builder:コマンドラインでコンパイルする

前記事「Visual Studio:コマンドラインでコンパイルする」に続いて、C++Builderでも同じようにコマンドラインコンパイルができるかどうかを試した。C言語のソースコードはその時と同じ。


#include <stdio.h>

int main() {
  printf("C言語でこんにちは!\n");
  return 0;
}

「RAD Studio コマンド プロンプト」を起動し、上のコードを、C++Builderのbcc32コマンドでコンパイルして、実行したのが下の図。

20170320q

次はC++。これもコードは前記事と同じである。


#include <iostream.h>

using namespace std;

int main() {
  cout << "C++でこんにちは!" << endl;
  return 0;
}

上のコードをbcc32コマンドでコンパイルして、実行したのが下の図。

20170320r

それでは、Delphiのdcc32コマンドはどうかというと、

20170320s

無償版のdcc32ではコマンドラインコンパイルができないらしい。

以前試した時は、bcc32は動かなくて、別途ダウンロードしてインストールしたような記憶がある。その手間をなくしてくれたのだとすれば、うれしい。がんばれエンバカデロ。

H2

C++Builder:VCLアプリケーションを作る

C++BuilderでVCLアプリケーションを作れるかどうか試して、失敗した、というのは前記事に書いた通りである。悔しいので、とりあえず、C++Builderだけでいいからインストールして試してみることにした。

プロジェクトは「VCLフォームアプリケーション - C++Builder」を選ぶ。

20170320i

Delphiの時と手順はほとんど同じで、今度はビルドできた。

20170320j

書き足したコードは、Delphiの時とは少し違って、

ShowMessage(”C++Builderでこんにちは!");

である。Delphiのリテラル文字列はシングルクォートで囲むが、C++Builderはダブルクォートで囲む。

下の図はプロジェクトを保存した様子。ただ、うまくできたのかどうか(名前が適切なのかどうか)は今ひとつわからない。

20170320k

さて、今度は、Delphiのインストールだ。うまくいくかなぁ…。

H2

Delphi:VCLアプリケーションを作る

Delphiの無償版をインストールしたので、VCL(Visual Component Library)アプリケーションを作ってみることにした。VCLは、Delphiの最初のバージョン(1995年くらい)のころからある、伝統的なGUI(Graphical User Interface)部品ライブラリだ。

RAD Studioを起動し、メニューで「ファイル」→「新規作成」→「VCLフォームアプリケーション - Delphi」を選ぶ。

20170320b

そうすると、開発環境の画面はこんな風になる。

20170320c

中央には、画面に相当する「フォーム」が出てくる。右下にある「ツールパレット」で部品を選び、それをフォームに貼り付けて(ドラッグ&ドロップして)画面を作る。下は、「Standard」の中にある「ボタン(TButton)」を選んだ様子。VCLのコンポーネント(部品)には、「T」で始まる名前が付けられている。

20170320d

ボタンをフォームに貼り付けると、下のようになる。

20170320e

貼り付けたボタンはマウスのドラッグで位置と大きさを変えられる。選択状態でDeleteキーを押せば削除できる。貼り付けたボタンをダブルクリックすると、ボタンのイベントハンドラ(デフォルトイベントのハンドラ)のコードが生成され、コードエディタでそれを編集可能な状態になる。

20170320f

ここでは、Button1Clickプロシジャ(procedure)に

ShowMessage('Delphiでこんにちは!');

と記述している。ShowMessageはダイアログを出す関数(たぶん)。Delphiは大文字小文字を区別しないので、それを打ち分ける必要はないのだけれど、見やすさの点では打ち分けた方がきれいだと思う。リテラル文字列はシングルクォートで囲む。

これで実行すると、ウィンドウが現れ、ボタンを押すとダイアログが現れる。

20170320g

その後、プロジェクトを保存すると、こんな感じにファイルができる。

20170320h

プロジェクトのフォルダーを作ったり、名前を付けたり、ちょっと面倒。やり方を忘れてしまったからであるけれども。

続いてC++Builderでも同じことをやろうとして失敗。ビルドできないのである。その原因はおそらくこちら。インストールをやり直そうとしたが、これも失敗。今、仮想マシンのスナップショット(チェックポイント)を戻して、いろいろやっている。うーむ。

H2

2017年3月18日 (土)

RAD Studio(Delphi/C++Builder)無償版をインストール

Visual Studio Community 2017をインストールし、今度はRAD Studio(Delphi/C++Builder)の無償版「Starter Edition」をインストールすることにした。ちょっと作りたいソフトがあって、何で作ろうか考えたんだけど、やっぱり、VSかDelphiかな、ということで。Delphiはここ数年触っていなかったのですべてを忘れていると思うが、まあ、なんとかなるでしょう。

まずは、こちらでDelphiをダウンロード。

20170318a

続いて、こちらでC++Builderをダウンロード。

20170318b

どちらも、同じインストーラをダウンロードする感じで、使ったのは一つだけ。でも、ダウンロードして、電子メールでキー文字列を受け取る必要があるので、おそらく、両方のダウンロード手続きが必要だろうと思う。

インストールを始める。

20170318c

途中でキーを入力する。Windows SDKのインストールもある。Visual Studioでインストールしたのとバージョンが違うかもしれないので、それも入れる。
20170318d

で、こんな風にインストールが完了。

20170318e

「作業開始」をクリックするとRAD Studioが起動する。

20170318f

でも、これだと、C++Builderのキーを入れてないぞ、ということで、どうやったらそれが入るのかを探す。

20170318g

ライセンス管理の画面にC++Builderのキーを登録してみた。でも、これだけでC++Builderが使えるわけではないようで、よくわからないが、アンインストールしてインストールして、レジストリ情報を生かす、とかなんとかやっていたら、何とか、起動画面にDelphiとC++Builderの両方が現れた。

20170318h

IDEを起動してプロジェクトの新規作成、その他を見るとこんな風になっている。

20170318i

ちゃんと作れるかどうか、試さないとね。あと、確か、このRAD StudioにはC++のコマンドラインがなかったような気がするので、それは別途入れないといけないかも。

H2

「HandsOnIT」検索

最近のコメント

最近のトラックバック