掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
FMXでTStringGrid処理が遅い (ID:48585)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
今回はFMXでのTStringGridの使い方についてご教授願えるでしょうか? 実数の二次元配列をStringGridへ表示させます。 配列の大きさは毎回変わるので可変とします。 var StringColumn_2 : Array of TStringColumn; begin SetLength( stringColumn_2, col2 ); StringGrid2.RowCount := row2; time2 := Time(); for i := 0 to col2 - 1 do begin stringcolumn_2[ i ] := TStringColumn.Create( StringGrid2 ); StringGrid2.AddObject( stringcolumn_2[ i ] ); stringcolumn_2[ i ].Width := 36; stringcolumn_2[ i ].Header := IntToStr( i ); for j := 0 to row2 - 1 do StringGrid2.Cells[ i, j ] := FloatToStrF( MTX[ i, j ].dens, ffFixed, 5, 0 ); end; time2 := Time() - time2; end としてみました。 配列サイズが約500x200の時、約1分強ほど要しました。 配列サイズが約1500x550の時、約10分以上要しました。 デバッガで追いかけてみましたが、配列サイズが大きいと後半になれなるほど処理が重たくなっている印象です。 データの配列表示は正しくされています。ただ、スクロール動作が重く、スクロールは出来ません。スクロールバー上をクリックで数秒後そこまで飛ぶ感じです。 何かTStringGrid操作上で改善点・改良点をご教授頂ければと思います。 高速に処理する方法などあるのでしょうか? そもそもTStringGridはサイズが1000を超える様な大きな配列の表示には向かないのでしょうか? TGridなども検討しています。 取り扱うデータ型によってColumnタイプを使い分ける様ですが、実数型のColumnタイプは無さそうです。 あれば、”FloatToStr”の型変換しなくて済むので、少しは早くなるかな?とも思いました。 ただ、こちらはStringColumnタイプを使うとしても、未だ、コードが出来上がっていません。TStringGridとも多少使い方が違う様です。 TStringGridを使うとして、配列処理が早くなる手段はあるでしょうか? また、表示後の動作の遅さについては、対策があるのでしょうか? よろしくお願い致します。 当方、 Windows10+DELPHI XE6
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.