1

Delphi プログラム内で挿入ソートをアニメーション化するために、タイマーを使用して文字列を移動しようとしています。誰でもアドバイスを提供できますか?

procedure TForm1.Button1Click(Sender: TObject);
var
current_position, index, count : integer ;
temp : string ;


begin
current_position := 0 ; //start insertion sort
repeat
current_position := current_position + 1 ; //set up pointers
index := 0 ;
while index <= current_position do
 begin
 if word[index] > word[current_position] then
  begin
  temp:= word[current_position];
   for count := current_position downto index + 1 do
    begin
    word[count]:= word[count-1]
    end;
    word[index]:= temp;
   end;
   index:= index + 1
  end;
 until current_position = 9 ;

 for current_position := 0 to 9 do
 StringGrid1.Cells[0,current_position]:= word[current_position];

end;
4

1 に答える 1

0

Sleep(<milliseconds>);コードにとを挿入するだけApplication.ProcessMessages;で、速度を落とし、進行状況を表示できます。ただし、これによりいくつかの問題や望ましくない動作が発生するため、注意が必要です。

于 2012-04-26T11:13:52.123 に答える