Delphi XE2를 사용하여 델파이 애플리케이션에서 몇 가지 버튼을 이동시키고 싶었습니다. 이 절차를 실행할 때델파이의 더블 버퍼링
procedure TForm1.DoSomething;
var x : integer;
begin
for x := 200 downto 139 do begin
// move two buttons
Button1.Top := x;
Button3.Top := x;
// skip some repaints to reduce flickering
if (x mod 7 = 1) then begin
Form1.Repaint;
Sleep(50);
end;
end;
불행하게도 여전히 크게 깜빡이는
는이 코드를 썼다.여기 내 질문 : 애니메이션을 부드럽게 (깜박임없이) 만들 수있는 방법이 있습니까?
편집 : 는, 애니메이션을 더 원활하게 수면 (50) 작은 뭔가 (50)을 변경하고이 줄을 삭제하려면 :
if(x mod 7 = 1) then begin
이렇게 강력한 속성입니다. 감사합니다. 10 분 후에 받아 볼 수 있습니다. –
네,하지만 불쾌한 시각적 단점이 생길 수 있습니다. –
@DavidHeffernan은 이중 버퍼링을 사용하지 않고 깜박임없이 다시 칠할 수있는 방법을 찾은 다음 시도해보십시오. 내 자신의 경험에서, 그리고 데이비드 더블 버퍼링을 지적 자주 버튼 주위 어두운 가장자리와 같은 몇 가지 시각적 문제로 이어집니다. –