- RAD Studio で Hello world を 作 る - RAD Studio Hello world - RAD Studio Hello world RAD Studio RAD Studio FireMonkey. 図. プロジェクトの 新 規 作 成 メニュー. 図. アプリケーションの 種 類 選 択 ダイアログ 99
初 めての ios アプリケーション iphone Form TLabel TButton. 図. コントロールの 配 置 Button OnClick Button. 00
- RAD Studio で Hello world を 作 る 図. イベントハンドラの 指 定 Label.Text := 'Hello world!'; Hello world!. 0
初 めての ios アプリケーション 図. 実 行 結 果 COLUMN デフォルトイベント コントロールのデフォルトイベントを 定 義 できます たとえば TButton のデフォルトイベ ントは OnClick になっているので ボタンそのものをダブルクリックすると OnClick イベ ントハンドラが 生 成 されます RAD Studio Xcode Hello world Xcode Control RAD Studio RAD Studio Way-Tools IDE Xcode RAD Studio 0
- カップラーメンタイマーを 作 ろう Windows ios Android UI InterfaceBuilder Storyboard Windows Delphi ios Delphi FireMonkey が Windows 上 でも 実 行 可 能 であることの 意 味 COLUMN FireMonkey で 作 成 した ios アプリケーションは PAServer を 経 由 して 実 行 するため ア プリケーションの 配 置 にそこそこ 時 間 が 掛 かります 毎 回 この 時 間 を 待 つのは 苦 痛 かもし れません しかし FireMonkey はマルチプラットフォームに 対 応 したフレームワークです ターゲッ ト OS を Windows にすれば そのまま Windows で 動 作 するアプリケーションになります そのアプリケーションは 当 然 PAServer を 経 由 しないため コンパイル 後 すぐに 実 行 されま す つまり Windows 上 で 実 行 しながら 大 枠 の 動 きを 確 認 しつつ 要 所 要 所 で ios シミュ レータや ios デバイスで 実 行 するということが 簡 単 にできるのです これは 開 発 効 率 の 向 上 に 大 いに 寄 与 することでしょう - - Xcode RAD Studio FireMonkey CupRamenTimer.dproj umain.pas 0
初 めての ios アプリケーション ユーザーインターフェースの 作 成 Form Name frmmain. 図. Nameプロパティ TToolBar. 図. Alignプロパティ TToolBar TToolBar 0
- カップラーメンタイマーを 作 ろう Align Align altop Align. 表. Alignプロパティの 代 表 的 な 値 値 説 明 altop 親 領 域 の 上 部 にフィット 幅 は 親 領 域 の 幅 と 同 じ 大 きさ albottom 親 領 域 の 下 部 にフィット 幅 は 親 領 域 の 幅 と 同 じ 大 きさ alleft 親 領 域 の 左 部 にフィット 高 さは 親 領 域 の 高 さと 同 じ 大 きさ alright 親 領 域 の 右 部 にフィット 高 さは 親 領 域 の 高 さと 同 じ 大 きさ alclient 親 領 域 の 空 いている 領 域 にフィットする 大 きさになる alcenter 親 領 域 の 中 央 に 表 示 される ToolBar bartitle TLabel ToolBar lbltitle Text.8 図.8 Textプロパティ 0
初 めての ios アプリケーション AutoSize AutoSize True.9 AutoSize 図.9 AutoSizeプロパティ ios ios ToolBar StyleLookup StyleLookup.0 0
- カップラーメンタイマーを 作 ろう 図.0 StyleLookupプロパティ ToolBar StyleLookup toollabel ToolBar. 図. Style 適 用 後 0
初 めての ios アプリケーション Align alclient AutoSize True False. 図. Alignの 設 定 TextAlign TextAlign. 表. TextAlignの 値 値 tacenter taleading tatrailing 説 明 中 央 寄 せ 左 寄 せ 右 寄 せ tacenter. 08
- カップラーメンタイマーを 作 ろう 図. TextAlignプロパティ TSpinBox spintimer lbltimerprefix lbltimersuffix AutoSize True. lbltimerprefix Text lbltimersuffix Text 09
初 めての ios アプリケーション 図. SpinBoxとプロパティ Ctrl. 図. 複 数 のコンポーネントを 選 択 し 位 置 揃 えを 行 う 0
- カップラーメンタイマーを 作 ろう. 図. 位 置 揃 えダイアログ. 図. 選 択 したコントロールが 中 央 に 揃 う Text lblresttimeprefix
初 めての ios アプリケーション lblresttime Text 00:00 Font.Size Font.Style fsbold btnstart Text.8 図.8 Fontプロパティ TTimer TMediaPlayer TTimer Interval OnTimer
- カップラーメンタイマーを 作 ろう Timer timerresttime Interval 00 Enabled Timer Enabled True Timer Enabled False TMediaPlayer FileName MP Play.9 図.9 TTimerとTMediaPlayer MP IPA.0
初 めての ios アプリケーション 図.0 配 置 マネージャを 開 くメニュー MP.. 図. 配 置 マネージャ
- カップラーメンタイマーを 作 ろう 図. MPを 選 ぶダイアログ. 図. MPが 追 加 される. StartUp Documents.
初 めての ios アプリケーション 図. パスの 修 正 Documents/alarm.mp GUI frmmain bartitle (TToolBar) lbltitle (TLabel) btnstart (TButton) lblresttime (TLabel) lblresttimeprefix (TLabel) lbltimerprefix (TLabel) lbltimersuffix (TLabel) spintimer (TSpinBox) playeralarm (TMediaPlayer) timeresttime (TTimer) 構 成 ツリーのコンポーネントの 名 前 の 後 ろの 括 弧 内 はコンポーネントのクラス 名 コーディング btnstart OnClick timerresttime OnTimer frmmain OnCreate
- カップラーメンタイマーを 作 ろう リスト. カップラーメンタイマーのソースコード unit umain; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.StdCtrls, FMX.Edit, FMX.Media; type TfrmMain = class(tform) bartitle: TToolBar; lbltitle: TLabel; spintimer: TSpinBox; lbltimerprefix: TLabel; lbltimersuffix: TLabel; lblresttime: TLabel; btnstart: TButton; lblresttimeprefix: TLabel; timerresttime: TTimer; playeralarm: TMediaPlayer; procedure btnstartclick(sender: TObject); procedure timerresttimetimer(sender: TObject); procedure FormCreate(Sender: TObject); private { private } // --------------------------------------------------------------------------------------------------------------------------------------- FTime: TDateTime; FTargetTime: Integer; FStarting: Boolean; // --------------------------------------------------------------------------------------------------------------------------------------- procedure SetAllEnabled(const ienabled: Boolean); procedure SetTime(const iresttime: Integer); public { public } end;
初 めての ios アプリケーション var frmmain: TfrmMain; implementation uses System.DateUtils; // ------------------------------------------------------------------------------------- {$R *.fmx} // btnstart OnClick -------------------------------------------------------------------------------------------- procedure TfrmMain.btnStartClick(Sender: TObject); begin if (FStarting) then begin SetAllEnabled(False); end else begin if (spintimer.value = 0) then ShowMessage(' ') else begin FTime := Now; FTargetTime := Trunc(spinTimer.Value) * 0; SetAllEnabled(True); SetTime(FTargetTime); end; end; end; // frmmain OnCreate -------------------------------------------------------------------------------------------- procedure TfrmMain.FormCreate(Sender: TObject); begin playeralarm.filename := GetHomePath + PathDelim + 'Documents' + PathDelim + 'alarm.mp'; end; // Enabled ---------------------------------------------------------------------------------------------------------------------------- procedure TfrmMain.SetAllEnabled(const ienabled: Boolean); begin FStarting := ienabled; timerresttime.enabled := ienabled; spintimer.enabled := not ienabled; 8
- カップラーメンタイマーを 作 ろう if (ienabled) then begin btnstart.text := ' '; SetTime(FTargetTime); end else begin btnstart.text := ' '; SetTime(0); end; end; // lblresttime ----------------------------------------------------------------------------------------------------------- procedure TfrmMain.SetTime(const iresttime: Integer); begin lblresttime.text := Format('%.d:%.d', [iresttime div 0, iresttime mod 0]); end; // timerresttime OnTimer ----------------------------------------------------------------------------------8 procedure TfrmMain.timerRestTimeTimer(Sender: TObject); var Diff: Integer; begin Diff := SecondsBetween(Now, FTime); if (Diff > FTargetTime) then begin SetAllEnabled(False); playeralarm.play; ShowMessage(' '); end else SetTime(FTargetTime - Diff); end; end. 9