Skip to content

Instantly share code, notes, and snippets.

View freeonterminate's full-sized avatar

HOSOKAWA Jun freeonterminate

View GitHub Profile
@freeonterminate
freeonterminate / FizzBuzzHelper.pas
Created August 28, 2013 07:49
Helper で FizzBuzz
program FizzBuzzHelper;
uses
System.SysUtils;
type
TFizzBuzzHelper = record helper for Integer
function ToFizzBuzz: String;
end;
@freeonterminate
freeonterminate / FizzBuzzNoIf.pas
Last active October 17, 2016 07:57
条件文使わない FizzBuzz
program FizzBuzz;
uses
System.SysUtils;
var
i: Integer;
Values: array [0.. 3] of String = ('', 'Fizz', 'Buzz', 'FizzBuzz');
begin
for i := 1 to 100 do
begin
Values[0] := i.ToString;
@freeonterminate
freeonterminate / 半沢直樹.pas
Last active December 23, 2015 14:19
半沢直樹ヘルパー
program 半沢直樹;
uses
System.SysUtils;
type
T半沢直樹 = record helper for Single
function 倍返し: Double;
end;
@freeonterminate
freeonterminate / 小木曽.pas
Last active December 23, 2015 14:19
小木曽
program 小木曽;
uses
System.SysUtils;
type
T小木曽 = record helper for String
function バンバン: String;
end;
@freeonterminate
freeonterminate / ForQuiz.pas
Created September 30, 2013 07:55
Pascal の for 文を知らないと、どうなるか判らない系。
program ForQuiz;
var
Count: Integer;
i: Integer;
begin
Count := 3;
for i := 0 to Count - 1 do begin
Inc(Count); //→ Count := Count + 1;
Writeln(i); // 数字はいくつまで表示される?
@freeonterminate
freeonterminate / uStyleProvider.pas
Last active December 26, 2015 11:59
TStyleProvider は、StyleFile を簡単に利用する仕組みです。
unit uStyleProvider;
(*
以下のように利用します
procedure TForm1Create(Sender: TObject);
var
StyleName: String;
begin
// 生成
@freeonterminate
freeonterminate / uFMXMenu.pas
Last active December 27, 2015 23:49
TMenuBar を使った Menu の問題を修正します。詳しくはソース先頭のコメントをご覧ください。似た問題として QC#119282 と QC#101866 があります。
{
■概要
TMenuBar を使った Main Menu の次の問題を修正します。
1.マルチディスプレイで Form の X 座標がマイナス座標の時、
メニューが座標 0, y に表示されてしまう問題
2. OnMouseDown でメニューが選択されてしまう問題(通常は OnMouseUp で選択)
@freeonterminate
freeonterminate / uNSAppSample.pas
Created November 19, 2013 16:02
Delphi で OS X / Objective-C のランタイムライブラリを呼んでいるサンプル
unit uNSAppSample;
interface
implementation
{$IFDEF MACOS}
uses
// Delphi の RTL
System.SysUtils, System.Generics.Collections,
@freeonterminate
freeonterminate / Interface.pas
Last active December 31, 2015 01:09
Interface のサンプル
program Project1;
uses
System.SysUtils;
type
// Sample Interface
IFoo = interface
['{174C7089-888D-4B3A-A348-DBAEC0AA70A5}']
function GetBar: String;
@freeonterminate
freeonterminate / GetColor.pas
Last active December 31, 2015 14:19
ARGB でも ABGR でも正しい色を返す
// ARGB を ABGR に変換
// IsRev が True の時 ABGR(PixelFormat が pfA8B8G8R8)
function GetColor(const iColor: TAlphaColor): TAlphaColor;
{$IFDEF CPUX86}
asm
cmp byte ptr IsRev, 0
jz @@exit
rol eax, 8
bswap eax
@@exit: