自分だけのクイズ作成 - Quipha公開中

【Delphi】サンプルアプリ作成とCliborウィンドウの作成例

Delphi
スポンサーリンク

はじめに

DelphiのCommunity Editionが公開され、Professional相当の開発ツールが無償で利用できるようになりました。
今回はサンプルアプリを作成してみようと思います。

プロジェクトの作成

Delphiを起動して、「ファイル→新規作成→Windows VCLアプリケーション」をクリックします。

以下のような画面が表示されました。

サンプルアプリの作成

ボタンを配置してみます。
基本的にはVisual Basicなどと同じような感じで使用できます。

右下のパレットから「button」と検索します。

buttonをフォームにドラッグアンドドロップします。

ボタンを選択した状態で、Captionを変更します。
これでボタンの表示が変わりました。

ボタンをダブルクリックすると、ボタンのクリックイベントを定義できます。
以下のように、メッセージダイアログを表示するコードを記述しました。

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage('サンプルアプリです!');
end;

デバッグ実行してみます。

アプリが実行され、ボタンをクリックするとメッセージダイアログが表示されました。

今度は終了ボタンを配置しました。

アプリを終了するコードを記述しました。

procedure TForm1.Button2Click(Sender: TObject);
begin
  Close;
end;

アプリを実行し、ボタンをクリックしたら終了することを確認してください。

境界線なしウィンドウの作成

通常のフォームは、以下のようなウィンドウで上部にバーが表示されています。

Cliborのようなウィンドウにしてみましょう。
FormのBorderStyleをbsNoneを選択します。

ついでに、FormのPositionをpoScreenCenterに変更します。

実行してみましょう。
以下のような、境界線なしのウィンドウになりました。

フォームに枠線を表示してみましょう。
先程の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っぽくなりました。

きちんと動作させるにはもっと実装が必要ですが、サンプルコードの紹介でした。

さいごに

無償で利用できる開発ツールですので、皆さんもチャレンジしてみてください!
特にWindowsアプリの開発のみならず、他のプラットフォームの開発も可能なので、試してみるのはアリだと思います。

コメント

タイトルとURLをコピーしました