掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
FMXでTStringGrid処理が遅い (ID:48598)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> TEST_ROW = 550; > TEST_COL = 1550; >の場合で、 この条件で試してみました。 OS:Windows 7 CPU:Celeron G1630 メモリ:8GB Delphi 10.1 Berlin Update 2 (Professional Edition) 結果は、 TStringGrid・・1分17秒 TGrid・・・・・1分17秒 時間、かかりますねぇ・・・ コードは、以下のとおり。 const TEST_ROW = 550; TEST_COL = 1550; procedure TForm1.Button1Click(Sender: TObject); var sCol: TStringColumn; c, r: Integer; t: TDateTime; begin t := Time(); with StringGrid1 do begin BeginUpdate; for c := 1 to TEST_COL do begin sCol := TStringColumn.Create(StringGrid1); sCol.Name := 'col' + IntToStr(c); sCol.Header := 'テスト' + IntToStr(c); sCol.Width := 60; AddObject(sCol); end; EndUpdate; RowCount := TEST_ROW; for r := 0 to RowCount - 1 do for c := 0 to ColumnCount - 1 do Cells[c, r] := Format('[%d, %d]', [c, r]); end; Label1.Text := TimeToStr(Time() - t); end; procedure TForm1.Button2Click(Sender: TObject); var sCol: TStringColumn; c: Integer; t: TDateTime; begin t := Time(); with Grid1 do begin BeginUpdate; for c := 1 to TEST_COL do begin sCol := TStringColumn.Create(Grid1); sCol.Name := 'col' + IntToStr(c); sCol.Header := 'テスト' + IntToStr(c); sCol.Width := 60; AddObject(sCol); end; EndUpdate; RowCount := TEST_ROW; end; Label1.Text := TimeToStr(Time() - t); end; procedure TForm1.Grid1GetValue(Sender: TObject; const ACol, ARow: Integer; var Value: TValue); begin Value := Format('[%d, %d]', [ACol, ARow]); end; で、 > XE6でスクロールに時間がかかるのは何故でしょう? おそらくバグだと思いますが、 > プログラムしていない箇所なので、手の出しようがないですよね。 update 1を適用されていない場合、適用してみるのもよいかと思いますが、 RAD Studio XE6(Delphi XE6/C++Builder XE6) Update 1 における不具合修正リスト http://edn.embarcadero.com/article/43925 を見ても、該当する部分の修正の記載がないみたいですし、 Update Subscription向けの ID: 30430, October 2015 XE6 Update Subscription Update http://cc.embarcadero.com/item/30430 でも、修正の記載がないので・・・
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.