フォーラム


ゲスト  

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

ページ: [1] 2 3 4
トピック: Value Calc プロパティエディタ
DEKO
管理者
投稿数: 2691
Value Calc プロパティエディタ
on: 2014/02/03 06:45 Mon

何をするものなのかは 以下の Youtube 動画を参照してください。

[フォームエディタとボタンのリサイズ?]
http://www.youtube.com/watch?v=YSoVQT1vaEM
http://www.youtube.com/watch?v=5qu7MQ3PwZE
http://www.youtube.com/watch?v=Pv-J3gJ4IXQ
http://www.youtube.com/watch?v=1YgdT03elYs

詳細については以下の記事を参考にしてください。

[プロパティエディタで計算? (DEKO のアヤしいお部屋)]
http://ht-deko.minim.ne.jp/ft1402.html#140203

※ このプロパティエディタは無償で自由に利用できます (ハラヘッタウェア)。
http://ht-deko.minim.ne.jp/delphiforum/harahettaware/

Value Calc ver 1.00β (2014/02/03)
・初版作成

Value Calc ver 1.00 (2014/02/03)
・FireMonkey 対応 (Thx! らいなタンさん)
・公開

DEKO
管理者
投稿数: 2691
Value Calc ver 1.10
on: 2014/02/03 06:50 Mon

Value Calc ver 1.10 (2014/02/03)

  • uFloatCalcPropEditor.pas を修正。浮動小数点に丸め処理を入れた。これにより、オブジェクトインスペクタで入力可能な実数は小数点第3位迄に制限される。
DEKO
管理者
投稿数: 2691
Value Calc ver 1.20
on: 2014/02/03 07:24 Mon

Value Calc ver 1.20 (2014/02/03)

  • uFloatCalcPropEditor.pas を修正。丸め処理を変更。小数点第3位までという制約がなくなった。
DEKO
管理者
投稿数: 2691
Re: Value Calc プロパティエディタ
on: 2014/02/03 17:07 Mon

コントロールの位置を計算で出したい場合に使えます。

例えば 10 個のボタンがあって、最初のボタンが (100, 100) にあって、Height が25、これをマージン 6 で縦に整列させるには、

100+(25+6)*0
100+(25+6)*1
100+(25+6)*2
 …
100+(25+6)*9

 
を指定してやればいい事になります (式はコードエディタとかにコメントで貼り付けとけば便利です)。

計算ワークが必要なのであれば、コンポーネントには必ずと言っていい程存在する Tag プロパティを使うとよいでしょう。

DEKO
管理者
投稿数: 2691
Value Calc プロパティエディタのインストール
on: 2014/02/03 17:53 Mon

話が前後しますが、Value Calc プロパティエディタは Delphi 6 以降に対応しています。

[インストール手順]

1.アーカイブを適当な場所に解凍
2.Delphi を起動
3.パッケージ PkgValueCalc.dpk を開く。
4.プロジェクトマネージャで右クリックしてインストール

 

こんな感じです。

XE2 以降では fmx をパッケージに追加するかどうかを尋ねられると思うので、素直に追加してください。

DEKO
管理者
投稿数: 2691
Value Calc ver 1.30
on: 2014/02/04 04:20 Tue

Value Calc ver 1.30 (2014/02/04)

  • RegisterPropertyEditor() で、プリミティブな整数型と実数型を網羅した。
  • Delphi 2007 等の ANSI 版 Delphi でもコンパイルできるようにした。

…のはいいのですが。ANSI Delphi では コンパイルも通り、パッケージもインストールされますが、何故か動作しません

"ANSI 版 Delphi のコンポーネントパッケージには SysUtils を追加しないと何故かコンポーネントがパレットに並ばない" という問題があったりしますがあれの類でしょうかね?何かを見落としているだけのような気がするのですが…何なのでしょう?

DEKO
管理者
投稿数: 2691
Value Calc ver 1.40
on: 2014/02/04 13:00 Tue

Value Calc ver 1.40 (2014/02/04)

  • Delphi 6 以降でコンパイルできるようにした。
  • Delphi 6 / 7 でそのままコンパイルできるようにユニットを ANSI で保存した。

twitter でらいなタンさんや細川さんからツッコミを頂きました。
https://twitter.com/ht_deko/status/430493459921633280

Register 手続きは大文字/小文字を区別する! (少なくとも ANSI 版 Delphi は "Register" でなければならない)」

[Register 手続きの宣言(DocWiki)]
http://docwiki.embarcadero.com/RADStudio/ja/Register_%E6%89%8B%E7%B6%9A%E3%81%8D%E3%81%AE%E5%AE%A3%E8%A8%80

「見落とし」とか言う以前の問題で、コレは本当に頭の片隅にもありませんでした。多謝!!

DEKO
管理者
投稿数: 2691
Delphi 5 以前への対応は?
on: 2014/02/04 23:12 Tue

Delphi 5 以前は dsgnintf の互換性の問題がありますので、対応予定はありません…あしからず m(_ _)m

DEKO
管理者
投稿数: 2691
Value Calc ver 1.50
on: 2014/02/05 03:25 Wed

Value Calc ver 1.50 (2014/02/05)

  • スイッチ USEFLOAT を追加した。
  • 消えていた readme を加筆して添付した。

[スイッチ USEFLOAT について]
ValueCalc.inc の {$DEFINE USEFLOAT} のコメントを外すと、整数型プロパティで "実数式での計算を行う" ようになります。20*1.5 のような事ができるようになる反面、論理(ビット)演算や、シフト演算は行えなくなります。また、計算結果は整数に切り捨てられます。お好みに応じてスイッチを変更してください。もっと細かくカスタマイズしたい方は、uValueCalcPropEditorReg.pas をいじってください (VCL の Top / Left / Width/ Height プロパティのみ実数計算にするとか)。

DEKO
管理者
投稿数: 2691
Value Calc ver 1.60
on: 2014/02/06 11:46 Thu

Value Calc ver 1.60 (2014/02/06)

  • 関数が実装された。
  • べき乗演算子を追加した (実数式の場合)。

[整数式で使える関数]
Abs(I):I
Ceil(F):I
Floor(F):I
Round(F):I
Trunc(F):I

[実数式で使える関数]
Abs(F):F
ArcCos(F):F
ArcCosh(F):F
ArcCot(F):F
ArcCotH(F):F
ArcCsc(F):F
ArcCscH(F):F
ArcSec(F):F
ArcSecH(F):F
ArcSin(F):F
ArcSinh(F):F
ArcTan(F):F
ArcTanh(F):F
Cos(F):F
Cosh(F):F
Cot(F):F
Cotan(F):F
CotH(F):F
Csc(F):F
CscH(F):F
CycleToDeg(F):F
CycleToGrad(F):F
CycleToRad(F):F
DegToCycle(F):F
DegToGrad(F):F
DegToRad(F):F
Float(I):F
Exp(F):F
GradToCycle(F):F
GradToDeg(F):F
GradToRad(F):F
Int(F):F
Ln(F):F
LnXP1(F):F
Log10(F):F
Log2(F):F
Pi(F):F
Sec(F):F
Secant(F):F
SecH(F):F
Sin(F):F
Sinh(F):F
Sqr(F):F
Sqrt(F):F
Tan(F):F
Tanh(F):F

※()内は引数の型、:に続く文字は戻り値の型を表しています。
 (F=実数、I=整数)

例えば、実数型プロパティでシフト演算を行うには Float(2 shl 4) のように Float() 関数を使います。逆に整数型プロパティで実数を扱いたい場合にはTrunc(10 * 1.5) のように Trunc() 関数等で整数値にします。

関数は Delphi-RTL の関数と同じです。Power() がありませんが、べき乗は ^ 演算子として実装されています。整数式の時は XOR の演算子ですが、実数式の場合にはべき乗の演算子となります。

なんでこうなっているのかと言えば、仮引数のパースと構造が複雑になるからです。関数には引数を一つ持つ関数か、引数のない関数 (Pi の事ですが) しかありません。Power() はよく使う関数ですが、引数が二つなので、演算子として実装したのです…インタプリタやコンパイラを作る訳じゃありませんので、この仕様でいいかと思っております。

三角関数の類が使えると、FireMonkey 3D なんかで便利かもしれませんね。

See Also:
[数値計算ルーチン (DocWiki)]
http://docwiki.embarcadero.com/RADStudio/ja/%E6%95%B0%E5%80%A4%E8%A8%88%E7%AE%97%E3%83%AB%E3%83%BC%E3%83%81%E3%83%B3

※続きは ↓ の [2] をクリック。

ページ: [1] 2 3 4
WP Forum Server by ForumPress | LucidCrew
バージョン: 1.7.5 ; ページロード: 0.04 sec.