私のプログラムには、TPanel
上からスライドしてボタンと画像が表示されるカスタムがあります。うまくスライドしますが、隠そうとするととても遅いです。私はいくつかの方法を試しましたが、すべて同じ結果です。以下に気付いた場合、私は末尾の四角形を再描画できると考えて再描画を試みましたが、この呼び出しは、私が試した他のすべての方法と同様にフォーム全体を再描画します。スクロールも使ってみました。私はそれを間違って呼んでいますか、それともパネルが上に移動するときに更新が必要なフォーム部分を更新するためのより良い方法がありますか?
while z>mypanels[panel].Fstarttop do
begin
if z-x<mypanels[panel].Fstarttop then z:=mypanels[panel].Fstarttop else z:=z-x;
updaterect:=Rect(mypanels[panel].left,z+mypanels[panel].height,mypanels[panel].left+mypanels[panel].width,mypanels[panel].top+mypanels[panel].height);
mypanels[panel].top:=z;
//mypanels[panel].Repaint;
//Application.ProcessMessages;
//mypanels[panel].ScrollBy(0,-x);
//InvalidateRect(form1.Handle,@updaterect,FALSE);
//Application.ProcessMessages;
//RedrawWindow(form1.Handle,@updaterect, 0, RDW_UPDATENOW);
//form1.refresh;
end;