02. oktober 2004 - 07:32Der er
5 kommentarer og 1 løsning
Flimmer ved flytning af image
Hej
Jeg har lavet en rutine til at flytte et image rundt på skærmen og det virker sådan set godt nok men når jeg flytter imaget så " flimmer " billedet hvad kan der være galt eller er der en anden måde at gøre det på
procedure THovedeForm.Image2MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin If MuseKnapNede = 1 then begin if Y <> StartY then //flytter image ned Begin if Y > StartY then begin Image2.top := Image2.Top +5; end else begin //flytter image op Image2.top := Image2.Top -5; end; end; if X <> StartX then //flytter image mod højre Begin if X > StartX then begin Image2.Left := Image2.Left +5; end else begin //flytter image mod venstre Image2.Left := Image2.Left -5; end; end; end;
Støv, fibre og metalliske partikler kan påvirke både uptime, levetid og driftssikkerhed. Derfor arbejder flere datacentre systematisk med contamination control.
Du kan også undlade at flytte billedet før musen er flyttet lidt mere end 1 pixel, det gør det meget mere flydende.
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin If MuseKnapNede = 1 then begin if abs(Y-StartY)>=5 then {***} Begin if Y > StartY then begin Image2.top := Image2.Top +5; end else begin Image2.top := Image2.Top -5; end; StartY := Y; {***} end; if abs(X-StartX)>=5 then {***} Begin if X > StartX then begin Image2.Left := Image2.Left +5; end else begin Image2.Left := Image2.Left -5; end; StartX := X; {***} end; end; end;
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin If MuseKnapNede = 1 then if ((abs(Y-StartY)>=5) or (abs(X-StartX)>=5)) then Begin Image2.top := Image2.Top + Y - StartY; Image2.Left := Image2.Left + X - StartX; StartY := Y; StartX := X; end; end;
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.