あなたの助けが必要です(私は探しています)。私はデルファイ・シアトルにいて、フォームのスムーズなサイズ変更をしようとしています。 Delphi:smooth collapse/expand form
がどのように私はそれを実現することができます。私の場合は、「リサイズ」のように拡大/ほんの少し崩壊のですか?私はTTIMER使用を試してみた:
procedure TForm1.Timer1Timer(Sender: TObject);
var
h, t: integer;
begin
t := Button10.Top + Button10.Height + 10; //slide TForm from/to this point
if t > h then
begin
h := h + 1;
Form1.Height := h;
end
else
begin
Timer1.Enabled := false;
end;
end;
...しかし、それは(何の加速/減速を)非常にシンプルに見えないし、小さな間隔でゆっくりと作品です。
ローカル変数( 'h'や' t'など)は呼び出し間で永続的ではありません(タイマーイベント)。これらはスタックに割り当てられ、プロシージャの終了時に存在するように確保されます。繰り返しの呼び出しであなたは幸運かもしれないし、同じメモリが再利用されますが、これに頼るのは間違っています。 TTimerの解像度は1msに設定することができますが、10ms〜15msです。また、メッセージベースであり、タイマーメッセージは優先度が低いメッセージです。より正確でパフォーマンスの高いタイマーを使用するには、winapiマルチメディアタイマーを使用します。最後に、シンプルなコードはシンプルな外観を与えるかもしれませんが、なぜそれが加速/減速を示すことを期待していますか? –