フォーラム


ゲスト  

ようこそ ゲスト さん。このフォーラムに投稿するには 登録が必要です。

ページ: [1] 2 3 4
トピック: Delphi Advent Calendar 2016
DEKO
管理者
投稿数: 2374
Delphi Advent Calendar 2016
on: 2016/12/01 19:55 Thu

Delphi Advent Calendar 2016

Delphi Advent Calendar も5年目!
今年は遂に!無料の Starter Edition が出ました!

[Delphi Starter Edition ダウンロードページ]
https://www.embarcadero.com/jp/products/delphi/starter/promotional-download
[C++Builder Starter Edition ダウンロードページ]
https://www.embarcadero.com/jp/products/cbuilder/starter/promotional-download

Delphi / C++Builder / RAD Studio(以下 "Delphi" で全て含む物とします)ユーザーの皆さん、年末のお祭りに参加しましょう!

Advent Calendar とは

技術系のアドベント・カレンダーとは、12/1 ~ 12/25 日まで、1日1人が各々のブログやウェブページに、技術やテクニックを紹介するイベントです。
もちろん、ここは Delphi の Advent Calendar ですので、VCL や FireMonkey の使い方や、IDE の小技とか、Object Pascal にまつわる話など、Delphi に関わる話なら何でも構いません!

基本的には1日1人が担当しますが、人数が満たない場合は、1人が複数の日にちを担当しても構いません。

 
[Delphi Advent Calendar 2016]
http://qiita.com/advent-calendar/2016/delphi

# twitter のハッシュタグは #delphiadvent2016 です。

DEKO
管理者
投稿数: 2374
12/01 Delphi で Android TV 開発 ~導入編~
on: 2016/12/01 19:56 Thu

http://qiita.com/pik/items/8eb510848f51c2009ce9

DEKO
管理者
投稿数: 2374
12/02 Utah Teapot を本気で描く。
on: 2016/12/02 01:36 Fri

https://github.com/LUXOPHIA/UtahTeapot

DEKO
管理者
投稿数: 2374
12/03 DelphiでスマホやPCをBLEビーコンにしたり、ビーコンの電波を受けてみたりする
on: 2016/12/03 05:40 Sat

http://qiita.com/kazinoue/items/c16189508f20be5a9bea

DEKO
管理者
投稿数: 2374
12/04 Delphi タイマイベントについて考える。
on: 2016/12/04 19:39 Sun

http://i65000.blogspot.jp/2016/12/delphi.html

DEKO
管理者
投稿数: 2374
12/05 Delphi で乱数にコクを出してみる
on: 2016/12/05 00:00 Mon

これは Delphi Advent Calendar 5日目の記事です。
http://qiita.com/advent-calendar/2016/delphi

こないだ Togetter で "乱数にコクを出す方法について" ってのを見かけたのですよ。
http://togetter.com/li/1044668
で、これが Delphi ならどうなるのかと。まぁ元ネタのように Random() の値を何度か足し算すればいいのですが、結局の所これは正規分布なわけで、Delphi なら Math.RandG() を使えばいいわけです。コードは以下のようになります。

unit Unit1;

interface

uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls, System.Math,
Vcl.ComCtrls;

type
TForm1 = class(TForm)
btnRandom1: TButton;
PaintBox1: TPaintBox;
btnRandG: TButton;
btnRandom2: TButton;
btnRandom3: TButton;
btnRandom4: TButton;
btnRandom5: TButton;
Edit1: TEdit;
UpDown1: TUpDown;
procedure PaintBox1Paint(Sender: TObject);
procedure btnRandom_Click(Sender: TObject);
procedure btnRandGClick(Sender: TObject);
private
{ Private 宣言 }
v: array [0..99] of Integer;
procedure InitArray;
public
{ Public 宣言 }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.InitArray;
var
i: Integer;
begin
for i:=Low(v) to High(v) do
v[i] := 0;
end;

procedure TForm1.btnRandom_Click(Sender: TObject);
var
i, l, Idx: Integer;
Loop: Integer;
R: Extended;
begin
Loop := (Sender as TButton).Tag + 1;
Randomize;
InitArray;
for i:=1 to 10000 do
begin
R := 0;
for l:=1 to Loop do
R := R + Random;
Idx := Trunc((R) / Loop * 100);
v[Idx] := v[Idx] + 1;
end;
PaintBox1.Invalidate;
end;

procedure TForm1.btnRandGClick(Sender: TObject);
var
i, Idx: Integer;
begin
Randomize;
InitArray;
for i:=1 to 10000 do
begin
repeat
Idx := Trunc(RandG(50, UpDown1.Position));
until (Idx >= Low(v)) and (Idx <= High(v));
v[Idx] := v[Idx] + 1;
end;
PaintBox1.Invalidate;
end;

procedure TForm1.PaintBox1Paint(Sender: TObject);
var
i: Integer;
begin
with PaintBox1.Canvas do
begin
Brush.Color := clWhite;
Pen.Color := clblue;
FillRect(PaintBox1.ClientRect);
MoveTo(0, PaintBox1.ClientHeight - v[0]);
for i:=Low(v)+1 to High(v) do
LineTo(i * 4, PaintBox1.ClientHeight - v[i]);
end;
end;

end.

 
実行結果がコレです。

RandG() は昔からありますが、最近の Delphi だと System 名前空間にイロイロと便利なのが増えています。今度のデベロッパーキャンプでは関連する話をやりたいと思っています…個別にそれを紹介する訳ではないですけどね。需要があるのかどうか知りませんが、一応ソースコードも置いておきますね。

Download: http://ht-deko.com/software/koku_random.zip

この記事の内容は以前 Facebook で書いたものなのですが、ソースコードを公開していなかったのでアドベントカレンダーの記事に転用しました。何故仮タイトルが "月曜日のはわわ" だったのかと言うと、デブキャンの資料がまだできていないからです…はわわ > <

DEKO
管理者
投稿数: 2374
12/06 FDMemTable フィールド定義作成
on: 2016/12/06 03:57 Tue

http://thinksoft.sblo.jp/article/177920983.html

DEKO
管理者
投稿数: 2374
12/07 Delphiでレイトレ実装して,超2次楕円体を描画してみた
on: 2016/12/07 03:57 Wed

http://qiita.com/HexagramNM/items/6526ded9cc45aac70b8c

DEKO
管理者
投稿数: 2374
12/08 シェーダでプロジェクションマッピングする。
on: 2016/12/08 00:39 Thu

https://github.com/LUXOPHIA/ProjectMap

DEKO
管理者
投稿数: 2374
12/09 プラグインのまほう
on: 2016/12/10 09:28 Sat

http://d.hatena.ne.jp/tales/20161209/1481210588

ページ: [1] 2 3 4

WP Forum Server by ForumPress | LucidCrew
バージョン: 1.7.5 ; ページロード: 0.077 sec.