喫茶XRAYトップページ

[スレッド全体
]

[11197] Re:レコードヘルパー(と言うのかな?)が面白い返信 削除
2017/5/27 (土) 22:34:49 Mr.XRAY
> 案外この便利さを知らない方もいるかと思いまして投稿しました。

おおっ !
レコード型の Helper って,こういうふうに使うのですか.
なるほど.
Delphi XE5 でコンパイルしたら,FMX.Controls.Presentation で未定義.
Delphi Berlin Starterでやってみました.
Delphi XE3 あたりからでしょうか.いろいろな型の Helper が実装されていますね.
String, TChar とか... どんどん便利にはなっているようですが...



[11199] Re2:レコードヘルパー(と言うのかな?)が面白い返信 削除
2017/5/28 (日) 21:39:21 Konnoya
▼ Mr.XRAYさん

返事が送れてすみません。
土日をかけて家の草むしりに没頭してたものですから(笑)
案外、草むしりも地道な作業で、運動にもなりメンタルを養うのには
結構いいものです。
草むしりはさておき…(笑)

レコードヘルパーですが、Object Pacal HandBook の 357ページ に記述があり、
「今後変更される可能性があり、あまり使用しないで下さい。」
と、書かれてありましたがどうなんでしょうね?
私の読解力がイマイチ(汗

Integer型やString型の別名を作り、拡張できるのですごく便利なのですが(汗

レコードヘルパーを使うと日本語の様な感じで記述できます。

> Label1.Text := HogeDateTime.AddMinute( 3 ).ToSecond.ToString;
上記の例では、日付時刻の値に、3分加算し、それを秒に直し、文字列にせよ。
といった具合で。

あと、inline識別子は、関数呼び出しではなくコード中に組み込むものだと
思ってましたが、これはコンパイラへの「提案」という形らしくて
必ずしも組み込まれるものではないという事です。

ToStringの様な、

Result := IntToStr( Self );

といった、単純な物なら組み込まれると思いますが。

あと、レコードヘルパはいつから利用可能なんでしょうね。
手持ちのDelphi 2010ではダメでした。怒られました(笑)
Delphi XE8ではOKでした。

> Delphi XE3 あたりからでしょうか.いろいろな型の Helper が実装されていますね.
> String, TChar とか... どんどん便利にはなっているようですが...


私もまだまだ勉強不足ですね。
もっと精進しなければ(^-^)


[11206] Re3:レコードヘルパー(と言うのかな?)が面白い返信 削除
2017/6/10 (土) 09:19:18 DEKO
> あと、レコードヘルパはいつから利用可能なんでしょうね。
> 手持ちのDelphi 2010ではダメでした。怒られました(笑)
> Delphi XE8ではOKでした。


・クラスヘルパー&レコードヘルパーは 2006 から
・フル機能は 2009 から
・プリミティブ型 (Integer とか) へのヘルパーは XE4 から
・拡張元のクラスやレコードの private メンバにアクセスできなくなったのが 10.1 Berlin から

です!

[11207] Re4:レコードヘルパー(と言うのかな?)が面白い返信 削除
2017/6/10 (土) 10:01:53 DEKO

[11208] Re5:レコードヘルパー(と言うのかな?)が面白い返信 削除
2017/6/10 (土) 19:45:59 Mr.XRAY
> 関連記事を書いてみました。
> http://ht-deko.com/delphiforum/?vasthtmlaction=viewtopic&t=1940


おおー !! サンクスです.

var
  i: Integer;
  s: string;
begin
  i := 100;
  s := i.ToString;
end;

これ便利ですよね.ホント...


[11211] Re6:レコードヘルパー(と言うのかな?)が面白い返信 削除
2017/6/10 (土) 22:56:26 Konnoya
▼ DEKO様、Mr.XRAY様

返信ありがとうございます。
こういった手法を使う事により、Delphi2010 でも出来るんですね。
未だに Delphi2010 を使用しているので、情報は助かります(^-^)

[▼次のスレッド]
INCM/CMT
Cyclamen v3.82