SlideShare a Scribd company logo
1 of 12
Download to read offline
Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 1
Happy Creation, Play the Development!
スタイルが絶対に必要だと言ったな。
あれは嘘だ
TImageList / TGlyph の使い方
2016/06/13
株式会社シリアルゲームズ
細川 淳
Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 2
Happy Creation, Play the Development!
西都原考古博物館アプリ
• とにかく時間が無かった
• ほとんど宮崎で実装した…!
• 小さな机で実装…!
• スタイル作るの大変だよおお!
⇒スタイル作るのヤーメタ!
Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 3
Happy Creation, Play the Development!
TImageList
• TImageList は画像をまとめて扱うクラス
• VCL版と違ってサイズは自由
Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 4
Happy Creation, Play the Development!
TGlyph
• TImageList の画像を表示するだけのコント
ロール
これ
ImageList
ImageIndex
を指定
Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 5
Happy Creation, Play the Development!
例:イメージボタン
Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 6
Happy Creation, Play the Development!
イメージボタン
• TImageList / TGlyph を使ってボタンを作る
• OnMouseDown / OnMouseUp を使う
• しかし! TGlyph は操作を受け付けない!
– 画像を表示するだけ。HitTest プロパティは無い
⇒TLayout を使う
Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 7
Happy Creation, Play the Development!
• TLayout の OnMouseUp/Down を使う
TLayout
TGlyph
TImageList
ImageIndex
OnMouseUp
OnMouseMove
OnMouseDown
Down/Up でImageIndexを変える
Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 8
Happy Creation, Play the Development!
procedure TGlyphButton.LayoutMouseDown(
Sender: TObject;
Button: TMouseButton;
Shift: TShiftState;
X, Y: Single);
begin
// FIndex は通常時の ImageIndex
FGlyph.ImageIndex := FIndex + 1;
end;
Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 9
Happy Creation, Play the Development!
procedure TGlyphButton.LayoutMouseUp(
Sender: TObject;
Button: TMouseButton;
Shift: TShiftState;
X, Y: Single);
begin
if (FIndex <> FGlyph.ImageIndex) then
begin
FGlyph.ImageIndex := FIndex; // 戻す
if (Assigned(FOnClick)) then
FOnClick(Self);
end;
end;
Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 10
Happy Creation, Play the Development!
procedure TGlyphButton.LayoutMouseMove(
Sender: TObject;
Shift: TShiftState;
X, Y: Single);
begin
if not (ssLeft in Shift) then
Exit;
// マウスカーソルが範囲内ならダウン画像にする
if TLayout(Sender).PointInObjectLocal(X, Y) then
FGlyph.ImageIndex := FIndex + 1
else
FGlyph.ImageIndex := FIndex
end;
Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 11
Happy Creation, Play the Development!
TImageList / TGlyph
TLayout / TFrame
• これらのコントロールを使うとスタイルを使わ
なくても何とかなる場合も多い!
– TFrame を使えば複雑に組み合わさったコントロー
ルを別のコントロールに載せることも可能…!
Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 12
Happy Creation, Play the Development!
まとめ
• 基本は Style
• 時間が無かったりしたら TImageList もアリ

More Related Content

Viewers also liked

Delphi ideを使わない開発スタイルの紹介
Delphi ideを使わない開発スタイルの紹介Delphi ideを使わない開発スタイルの紹介
Delphi ideを使わない開発スタイルの紹介
Shinya Okano
 

Viewers also liked (19)

Delphi 言語に見る顕在化する言語のリスクとは?(2013/08/24)
Delphi 言語に見る顕在化する言語のリスクとは?(2013/08/24)Delphi 言語に見る顕在化する言語のリスクとは?(2013/08/24)
Delphi 言語に見る顕在化する言語のリスクとは?(2013/08/24)
 
Delphi のダメな所
Delphi のダメな所Delphi のダメな所
Delphi のダメな所
 
Delphi のひみつ!(2015/01/29 CROSS 2015)
Delphi のひみつ!(2015/01/29 CROSS 2015)Delphi のひみつ!(2015/01/29 CROSS 2015)
Delphi のひみつ!(2015/01/29 CROSS 2015)
 
Delphi Debut Tokyo #1 - FireMonkey HD の基本
Delphi Debut Tokyo #1 - FireMonkey HD の基本Delphi Debut Tokyo #1 - FireMonkey HD の基本
Delphi Debut Tokyo #1 - FireMonkey HD の基本
 
2016/11/21 社内LT Android TV
2016/11/21 社内LT Android TV2016/11/21 社内LT Android TV
2016/11/21 社内LT Android TV
 
Dev camp25 lt
Dev camp25 ltDev camp25 lt
Dev camp25 lt
 
CnPack の紹介
CnPack の紹介CnPack の紹介
CnPack の紹介
 
Developer Summit 2014, 13-C-4 セッション
Developer Summit 2014, 13-C-4 セッションDeveloper Summit 2014, 13-C-4 セッション
Developer Summit 2014, 13-C-4 セッション
 
知っておいて欲しい Android の基礎知識
知っておいて欲しい Android の基礎知識知っておいて欲しい Android の基礎知識
知っておいて欲しい Android の基礎知識
 
VCL ユーザーのための FireMonkey 入門
VCL ユーザーのための FireMonkey 入門VCL ユーザーのための FireMonkey 入門
VCL ユーザーのための FireMonkey 入門
 
「今さら聞けない!? FireDAC入門 ~ オンメモリーデータベース編」
「今さら聞けない!? FireDAC入門 ~ オンメモリーデータベース編」 「今さら聞けない!? FireDAC入門 ~ オンメモリーデータベース編」
「今さら聞けない!? FireDAC入門 ~ オンメモリーデータベース編」
 
CROSS 2014 - 言語CROSS:Delphi のご紹介
CROSS 2014 - 言語CROSS:Delphi のご紹介CROSS 2014 - 言語CROSS:Delphi のご紹介
CROSS 2014 - 言語CROSS:Delphi のご紹介
 
「Delphiで作るデータベースツール。その開発のポイントは・・」
「Delphiで作るデータベースツール。その開発のポイントは・・」「Delphiで作るデータベースツール。その開発のポイントは・・」
「Delphiで作るデータベースツール。その開発のポイントは・・」
 
Delphi ideを使わない開発スタイルの紹介
Delphi ideを使わない開発スタイルの紹介Delphi ideを使わない開発スタイルの紹介
Delphi ideを使わない開発スタイルの紹介
 
「Delphiのマイグレーションを行うのであれば、これだけは知っておこう!」
「Delphiのマイグレーションを行うのであれば、これだけは知っておこう!」「Delphiのマイグレーションを行うのであれば、これだけは知っておこう!」
「Delphiのマイグレーションを行うのであれば、これだけは知っておこう!」
 
Xamarin 概要 @ 2015/1/29 CROSS 2015
Xamarin 概要 @ 2015/1/29 CROSS 2015Xamarin 概要 @ 2015/1/29 CROSS 2015
Xamarin 概要 @ 2015/1/29 CROSS 2015
 
CROSS 2015 モバイル開発環境セッション
CROSS 2015 モバイル開発環境セッションCROSS 2015 モバイル開発環境セッション
CROSS 2015 モバイル開発環境セッション
 
HTML5時代のネット動画技術〜良い子悪い子普通の子(増補改訂版)
HTML5時代のネット動画技術〜良い子悪い子普通の子(増補改訂版)HTML5時代のネット動画技術〜良い子悪い子普通の子(増補改訂版)
HTML5時代のネット動画技術〜良い子悪い子普通の子(増補改訂版)
 
AbemaTVの動画配信を支えるサーバーサイドシステム
AbemaTVの動画配信を支えるサーバーサイドシステムAbemaTVの動画配信を支えるサーバーサイドシステム
AbemaTVの動画配信を支えるサーバーサイドシステム
 

Recently uploaded

Recently uploaded (11)

知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 

TImageList / TGlyph の使い方

  • 1. Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 1 Happy Creation, Play the Development! スタイルが絶対に必要だと言ったな。 あれは嘘だ TImageList / TGlyph の使い方 2016/06/13 株式会社シリアルゲームズ 細川 淳
  • 2. Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 2 Happy Creation, Play the Development! 西都原考古博物館アプリ • とにかく時間が無かった • ほとんど宮崎で実装した…! • 小さな机で実装…! • スタイル作るの大変だよおお! ⇒スタイル作るのヤーメタ!
  • 3. Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 3 Happy Creation, Play the Development! TImageList • TImageList は画像をまとめて扱うクラス • VCL版と違ってサイズは自由
  • 4. Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 4 Happy Creation, Play the Development! TGlyph • TImageList の画像を表示するだけのコント ロール これ ImageList ImageIndex を指定
  • 5. Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 5 Happy Creation, Play the Development! 例:イメージボタン
  • 6. Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 6 Happy Creation, Play the Development! イメージボタン • TImageList / TGlyph を使ってボタンを作る • OnMouseDown / OnMouseUp を使う • しかし! TGlyph は操作を受け付けない! – 画像を表示するだけ。HitTest プロパティは無い ⇒TLayout を使う
  • 7. Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 7 Happy Creation, Play the Development! • TLayout の OnMouseUp/Down を使う TLayout TGlyph TImageList ImageIndex OnMouseUp OnMouseMove OnMouseDown Down/Up でImageIndexを変える
  • 8. Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 8 Happy Creation, Play the Development! procedure TGlyphButton.LayoutMouseDown( Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); begin // FIndex は通常時の ImageIndex FGlyph.ImageIndex := FIndex + 1; end;
  • 9. Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 9 Happy Creation, Play the Development! procedure TGlyphButton.LayoutMouseUp( Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); begin if (FIndex <> FGlyph.ImageIndex) then begin FGlyph.ImageIndex := FIndex; // 戻す if (Assigned(FOnClick)) then FOnClick(Self); end; end;
  • 10. Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 10 Happy Creation, Play the Development! procedure TGlyphButton.LayoutMouseMove( Sender: TObject; Shift: TShiftState; X, Y: Single); begin if not (ssLeft in Shift) then Exit; // マウスカーソルが範囲内ならダウン画像にする if TLayout(Sender).PointInObjectLocal(X, Y) then FGlyph.ImageIndex := FIndex + 1 else FGlyph.ImageIndex := FIndex end;
  • 11. Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 11 Happy Creation, Play the Development! TImageList / TGlyph TLayout / TFrame • これらのコントロールを使うとスタイルを使わ なくても何とかなる場合も多い! – TFrame を使えば複雑に組み合わさったコントロー ルを別のコントロールに載せることも可能…!
  • 12. Copyright © 2013 SERIALGAMES inc. All Rights Reserved. PAGE 12 Happy Creation, Play the Development! まとめ • 基本は Style • 時間が無かったりしたら TImageList もアリ