フォーラム


ゲスト  

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

ページ: 1 2 [3] 4
トピック: Value Calc プロパティエディタ
DEKO
管理者
投稿数: 2690
Value Calc ver 1.72
on: 2014/02/11 23:51 Tue

Value Calc ver 1.72 (2014/02/11)

  • RTTI の処理を修正した。

TRTTIConText.FindType() は失敗する事があるので、TRTTIConText.GetType() で書き直しました。これにより、ver1.71 では取得できなかった FMX の Font.Size 等が正しく取得できるようになりました。

DEKO
管理者
投稿数: 2690
Value Calc ver 1.73
on: 2014/02/12 00:39 Wed

Value Calc ver 1.73 (2014/02/12)

  • ソースコードの整理&軽微な修正。

"ソースコードの整理だけ行った" と言えるレベルの軽微な修正です。

DEKO
管理者
投稿数: 2690
Value Calc ver 1.74
on: 2014/02/12 10:47 Wed

Value Calc ver 1.74 (2014/02/12)

  • Float 型の式の中でも Integer / Int64 型のプロパティを参照できるようにした。

VCL アプリケーションの Width プロパティで "Trunc(Width * 1.5)" のような式が使えるようになりました (Float() 関数での変換が不要になった)。

  • Float 型の式中: Integer / Int64 / Float 型のプロパティを参照可能 (整数は実数にキャストされる)
  • Integer 型の式中: Integer / Int64型のプロパティを参照可能 (Trunc 関数等を使えば Float 型のプロパティを参照できる)
  • Int64 型の式中: Integer / Int64型のプロパティを参照可能 (Trunc 関数等を使えば Float 型のプロパティを参照できる)

Delphi でコード書く時の制限とほぼ同じなので、そこまで悩まないかと思います (^^;A

DEKO
管理者
投稿数: 2690
Value Calc ver 1.80
on: 2014/02/13 06:58 Thu

Value Calc ver 1.80 (2014/02/13)

  • コンポーネントが複数選択されていて、かつRTTI が有効の場合、個別に式を評価するようにした。
  • USEMULTI オプションを追加した (デフォルトでオン)。

らいなタンさんからの要望です。
https://twitter.com/lynatan/status/433652922836992000

"動画" というのはコレです。

[フォームエディタとボタンのリサイズ? (2)]
http://www.youtube.com/watch?v=5qu7MQ3PwZE

従来、コンポーネントが複数選択されている場合の処理はこうでした。

普段、オブジェクトインスペクタでやるように、最初に選択されたコンポーネントを基準にしている訳です。それをこう。

こうなると、Width 等が別の意味を持つ事になります。上の図の処理では最初に選択されたコンポーネントの Width プロパティの値でしたが、下の図の処理での Width は個々のコンポーネントの Width プロパティの値となります…以下の動画を観た方が手っ取り早く理解できるかもですね。

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

[スイッチ USEMULTI について]
このオプションが有効かつRTTI が有効 (Delphi 2010 以降) の場合、下の図の動作になります。式の実行が一回で済みますので、理屈的には上の図の従来の動作の方が高速です (今時の PC なら速度差はそんなにないとは思いますが…)。

※この機能ですが XE4 以降でないと RTTI で個別の値を持ってこれない (XE4 以降でしか動作しない) 気がするのですが…またもや僕の勘違い?
※勘違いどころか大ポカでした…orz

DEKO
管理者
投稿数: 2690
Value Calc ver 1.90
on: 2014/02/13 08:01 Thu

Value Calc ver 1.90 (2014/02/13)

  • 実数式で論理(ビット)演算及びシフト演算をできるようにした。
  • USESTRICTEXPオプションを追加した (デフォルトでオフ)。

これまたらいなタンさんからの要望です。
https://twitter.com/lynatan/status/433653289251377152

[スイッチ USESTRICTEXPについて]
実数式の中で論理(ビット)演算及びシフト演算を使った場合には、オペランドが整数に切り捨てられた上で計算が行われるようになりました。USESTRICTEXP オプションを有効にして従来の動作に戻す事もできます。

DEKO
管理者
投稿数: 2690
Value Calc ver 1.91
on: 2014/02/13 08:10 Thu

Value Calc ver 1.91 (2014/02/13)

  • USESTRICTEXP がオフの場合に実数式で not 演算ができなかったバグを修正。

# こうなってくると USEFLOAT はデフォルトで ON でもいい気がしてきた (^^;A

※ 2014/02/13 11:10 に readme.txt を追記したものを同名でアップしました。

DEKO
管理者
投稿数: 2690
Value Calc ver 1.92
on: 2014/02/13 16:12 Thu

Value Calc ver 1.92 (2014/02/13)

  • ValueCalc.inc の記述を派手に間違っていたのを修正。

# 複数選択のアレは Delphi 2010 から使えるようです。

DEKO
管理者
投稿数: 2690
ここまでのおさらい。
on: 2014/02/14 07:30 Fri

幅が 80px のボタンが 8 個あったとするでしょ?

こんな感じで。

Width プロパティに

80 + TabOrder * 40

 

なんて入力すると…

幅が階段状になるよね?そして、このまま Left プロパティに…

(Parent.ClientWidth - Width) / 2

 

なんて入力すると…

個々のボタンがフォームに対して水平中央に配置されますよ、と (但し、プロパティを参照できるのは Delphi 2010 またはそれ以降)。

ちなみにコントロールの整列だけだったらツールバーを右クリックして [間隔] と [位置合わせ] にチェックを入れると便利なツールバーが出てくるヨ…でもね?

ボタンを 12 個貼ってすべて選択し、 Left プロパティに

Cos(2 * Pi / 12 * ((TabOrder - 2) mod 12)) * 100 + 120

 
Top プロパティに

Sin(2 * Pi / 12 * ((TabOrder - 2) mod 12)) * 100 + 120

 
と入力すると

このようなボタン配置になるヨ (12 = 頂点数、100 = 半径)。流石にこれはツールバーの [間隔] [位置合わせ] ではできないね。ボタンを時計の表示に合わせなくていいのなら、Left が…

Cos(2 * Pi / 12 * TabOrder) * 100 + 120

  
Top が…

Sin(2 * Pi / 12 * TabOrder) * 100 + 120

 
こんな感じでちょっと簡単になるヨ。

Cos(DegToRad(360 / 12 * TabOrder)) * 100 + 120
Sin(DegToRad(360 / 12 * TabOrder)) * 100 + 120

 
これでもいいけれど、どっちが解り易いかなぁ…?

DEKO
管理者
投稿数: 2690
Value Calc ver 2.00
on: 2014/02/14 11:38 Fri

Value Calc ver 2.00 (2014/02/14)

  • FireMonkey の Float 型プロパティの処理を変更した (Thx! らいなタンさん)。
  • USEFLOAT オプションがデフォルトでオンになった。
  • 構文エラーで例外を投げるのに、SysUtils.Exception ではなく TypInfo.EPropertyError (6~2009) 或いは DesignEditors.EDesignPropertyError (2010~XE5) を使うようにした。

Float 型プロパティ用の処理が変更されました。

  • [FMX] Position下のプロパティエディタで計算が機能しない (Position.X 等)。
  • [FMX] 通常の Single 型プロパティで TFloatAnimation の新規作成メニューが出ない。

FireMonkey プロジェクトで上記の問題が発生しなくなりました。

USEFLOAT オプションがデフォルトでオンになったので、VCL でも何も考えずに Width * 1.5 のような計算が出来るようになりました。但し、USESTRICTEXP オプションがデフォルトでオフになっているため、シフト演算や論理(ビット) 演算を途中に含めてもエラーにならず、オペランドが整数に切り捨てられて予想外の計算結果になる事があります…ご注意ください。

DEKO
管理者
投稿数: 2690
Value Calc ver 2.01
on: 2014/02/14 19:29 Fri

Value Calc ver 2.01 (2014/02/14)

  • プロジェクトファイルに uPropEditorHelper.pas を含めた。
  • RTTI が使えないバージョンの Delphi でプロジェクトファイルに uPropEditorHelper.pas を含めてもコンパイルエラーにならないようにした。

RTTI が使えるバージョンの Delphi で「暗黙的になんたら~」という警告を出さないための措置です。
※ ver 2.00 と機能的な差異はありません。

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

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