はじめに
DelphiのCommunity Editionが公開され、Professional相当の開発ツールが無償で利用できるようになりました。
今回はサンプルアプリを作成してみようと思います。
プロジェクトの作成
Delphiを起動して、「ファイル→新規作成→Windows VCLアプリケーション」をクリックします。
![](https://chigusa-web.com/wp-content/uploads/2019/05/2019-05-12_14h56_22-500x159.png)
以下のような画面が表示されました。
![](https://chigusa-web.com/wp-content/uploads/2019/05/2019-05-12_15h00_12.png)
サンプルアプリの作成
ボタンを配置してみます。
基本的にはVisual Basicなどと同じような感じで使用できます。
右下のパレットから「button」と検索します。
![](https://chigusa-web.com/wp-content/uploads/2019/05/2019-05-12_15h01_23-500x399.png)
buttonをフォームにドラッグアンドドロップします。
![](https://chigusa-web.com/wp-content/uploads/2019/05/2019-05-12_15h02_17-500x318.png)
ボタンを選択した状態で、Captionを変更します。
これでボタンの表示が変わりました。
![](https://chigusa-web.com/wp-content/uploads/2019/05/2019-05-12_15h03_15-500x381.png)
ボタンをダブルクリックすると、ボタンのクリックイベントを定義できます。
以下のように、メッセージダイアログを表示するコードを記述しました。
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage('サンプルアプリです!');
end;
デバッグ実行してみます。
![](https://chigusa-web.com/wp-content/uploads/2019/05/2019-05-12_15h06_38-500x174.png)
アプリが実行され、ボタンをクリックするとメッセージダイアログが表示されました。
![](https://chigusa-web.com/wp-content/uploads/2019/05/2019-05-12_15h07_53-500x307.png)
今度は終了ボタンを配置しました。
![](https://chigusa-web.com/wp-content/uploads/2019/05/2019-05-12_15h10_11-500x316.png)
アプリを終了するコードを記述しました。
procedure TForm1.Button2Click(Sender: TObject);
begin
Close;
end;
境界線なしウィンドウの作成
通常のフォームは、以下のようなウィンドウで上部にバーが表示されています。
![](https://chigusa-web.com/wp-content/uploads/2019/05/2019-05-12_15h13_02-500x307.png)
Cliborのようなウィンドウにしてみましょう。
FormのBorderStyleをbsNoneを選択します。
![](https://chigusa-web.com/wp-content/uploads/2019/05/2019-05-12_15h13_58-300x404.png)
ついでに、FormのPositionをpoScreenCenterに変更します。
![](https://chigusa-web.com/wp-content/uploads/2019/05/2019-05-12_15h16_14-300x461.png)
実行してみましょう。
以下のような、境界線なしのウィンドウになりました。
![](https://chigusa-web.com/wp-content/uploads/2021/09/2019-05-12_15h16_54-1-500x307.png)
フォームに枠線を表示してみましょう。
先程のFormのコードを以下のように修正しました。
WMNCPaintで、フォームの枠線を表示しています。
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private 宣言 }
procedure WMNCPaint(var Msg: TWMNCPaint); message WM_NCPAINT;
public
{ Public 宣言 }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage('サンプルアプリです!');
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Close;
end;
procedure TForm1.WMNCPaint(var Msg: TWMNCPaint);
var
R: TRect;
begin
inherited;
Self.Refresh;
with TCanvas.Create do begin
try
Handle := GetWindowDC(Self.Handle);
Brush.Style := bsClear;
Pen.Mode := pmCopy;
// 枠線の色と太さ
Pen.Color := StringToColor('$004080FF');
Pen.Width := 10;
GetWindowRect(Self.Handle, R);
RoundRect(0, 0, R.Right-R.Left-0, R.Bottom-R.Top-0, 0, 0);
finally
ReleaseDC(Self.Handle, Handle);
Free;
end;
end;
end;
end.
実行してみるとこのようなフォームになりました。
なんとなくCliborっぽくなりました。
![](https://chigusa-web.com/wp-content/uploads/2019/05/2019-05-12_15h32_34-500x307.png)
きちんと動作させるにはもっと実装が必要ですが、サンプルコードの紹介でした。
Clibor
Cliborはクリップボードを履歴を取得することができるフリーソフトです。
様々な機能がありますので、ぜひ試してみてください。
さいごに
無償で利用できる開発ツールですので、皆さんもチャレンジしてみてください!
特にWindowsアプリの開発のみならず、他のプラットフォームの開発も可能なので、試してみるのはアリだと思います。
コメント