喫茶XRAYトップページ

[スレッド全体
]

[9221] TComboBoxへのデータ追加時間返信 削除
2015/9/15 (火) 15:32:25 snail
VB6アプリをDelphiにコンバートしています。
開発環境は XE7 です。
アプリは完成したのですが動作速度が遅くて困っています。
問題箇所は単純に TComboBox にデータを追加するところです。

問題を単純にするためにテストプログラムを作成しました。

=========== ↓Delphi テストプログラム ===========
procedure TForm9.SpeedButton3Click(Sender: TObject);
const
  CnsMax = 5000;
var
  WIdx: Integer;
  WStr : String;
  WStringList : TStringList;
begin
    ComboBox1.Items.Clear;
    TimeDisp( 'Start Combo' );
    for WIdx := 1 to CnsMax do
    begin
      WStr := IntToStr( WIdx );
      WStr := WStr  + ' , ' + 'aaa'
           +  WStr  + ' , ' + 'BBB';
      ComboBox1.Items.Add( WStr );;
    end;
    TimeDisp( 'End Combo' );
end;

procedure TForm9.TimeDisp( ArgS : String );
begin
  Memo1.Lines.Add( ArgS + Formatdatetime ( 'hh:nn:ss', Now ) );
  Application.ProcessMessages;
end;

=========== ↑Delphi テストプログラム ↑===========
実行結果
>Start Combo15:20:42
>End Combo15:21:09

約27秒かかっています。
VBで実行すると1秒もかかりません。
何かヒントを下さい。

よろしくお願いします。
なおここは、
「そんなつまらない質問をするところではありません。」
といったお返事でも結構です。HELP!



[9222] Re:TComboBoxへのデータ追加時間返信 削除
2015/9/15 (火) 15:37:40 snail
▼ snailさん
別の仮想マシンで同じ環境 Win7X64 + XE7 でも1秒ですね。




[9223] Re2:TComboBoxへのデータ追加時間返信 削除
2015/9/15 (火) 16:38:32 snail
▼ snailさん
> ▼ snailさん
> 別の仮想マシンで同じ環境 Win7X64 + XE7 でも1秒ですね。


原因が判明しました。みなさんの予想通りデバッガオプションでした。
 
 ツール−オプション−デバッガオプション−メッセージ−ウィンドウメッセージにチェックが入っていた。
 ※ チェックを外した後、Delphi再起動しないと遅いまま。

ここに書き込みしたらすぐ解決したけど、
4日から別の仕事の合間をやりながら、ずーとはまっていました。




[9224] Re3:TComboBoxへのデータ追加時間返信 削除
2015/9/15 (火) 17:28:18 Mr.XRAY
▼ snailさん

>  ツール−オプション−デバッガオプション−メッセージ−ウィンドウメッセージにチェックが入っていた。
>  ※ チェックを外した後、Delphi再起動しないと遅いまま。


なるほど,IDE からの実行ですね.
描画というのは,何でも時間かかりますからね.

> ここに書き込みしたらすぐ解決したけど、

こういうことはよくあります.不思議なんですが,
心理学的にはあるらしいです.
専門用語は忘れてしまいましたが,心理的に頭の中が切り換わるのだそうです.
でも,この書き込み自体は参考になりますです.サンクスです.

> 4日から別の仕事の合間をやりながら、ずーとはまっていました。

なんと慰めていいのやら.
気を落として,じゃなくて,気を落とさずに... (^^;


[9225] Re4:TComboBoxへのデータ追加時間返信 削除
2015/9/15 (火) 17:56:42 Mr.XRAY
> 心理学的にはあるらしいです.

脳科学的かも知れません.


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