odświeżenie Canvasa

sebik90

Użytkownik
Dołączył
Wrzesień 15, 2006
Posty
233
Kod:
var
  prostokat: TRect;
begin
  Canvas.Handle:=GetWindowDC(GetDesktopWindow);
  prostokat:=Rect(x,y,x+20,y+20); {x i y to współrzędne kursora myszy}
  Canvas.Brush.Color:=clLime;
  // TU MUSI BYĆ FUNKCJA USUWAJĄCA POPRZEDNI PROSTOKĄT
  Canvas.FrameRect(prostokat);
end;
Ta bardziej istotna część programu. Chodzi mi tak jak napisałem w komentarzu w programie o funkcje która będzie czyścić Canvas. (Czyścić nie zamalowywać na jakiś kolor). W takiej formie program zaznacza pozycje kursora poprawnie lecz pozostawia za sobą ciąg kwadratów.
Będę bardzo wdzięczny za pomoc :d

Widzę że na forum bardzo zmalał poziom wiedzy, +/- 5 lat temu jak zakładałem konto była to skarbnica wiedzy a teraz ... 0 pomocy :/

Dla zainteresowanych rozwiązanie problemu

Kod:
 procedure TForm1.Draw;
begin
  Canvas.Handle := GetWindowDC(GetDesktopWindow);
  with Canvas do begin
    Brush.Style := bsClear;
    Pen.Mode := pmNotXOR;
    Pen.Color := clLime;
    Rectangle(Pos.X, Pos.Y, Pos.X+20, Pos.Y+20);
  end;
end;
 
procedure TForm1.Timer1Timer(Sender: TObject);
var
  MousePos: TPoint;
begin
  GetCursorPos(MousePos);
  Draw;
  Pos := MousePos;
  Draw;
end;
oczywiście timer na 1ms
 
Ostatnio edytowane przez moderatora:
Do góry Bottom