Początkujący w Delphi potrzebuje pomocy z rysowaniem

0

Cześć od tygodnia uczę się delphi teraz czytam o rysowaniu i postawiłem sobie ambitny cel aby zrobić rysowanie za kursorem o ile udało się to zrobić to ekran strasznie mrugał wiec dopisałem do tego używanie bitmapy i przerzucanie jej na ekran kod wygląda tak:

procedure TForm3.ObrazMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var temp:integer;
begin
    mouse_down:=false;
end;

procedure TForm3.ObrazMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
    oldx:=0;
    oldy:=0;
    mouse_down:=true;
end;
procedure TForm3.ObrazMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
  var buffer:TBitmap;
begin
    buffer:=TBitmap.Create;
    buffer:=Obraz.Picture.Bitmap;
    if (mouse_down) then
      begin
          if (oldx=X) or (oldy=Y) then exit;
          if (oldx=0) and (oldy=0) then
            begin
              //Obraz.Canvas.MoveTo(X,Y);
              buffer.Canvas.MoveTo(X,Y);
              oldx:=x;
              oldy:=y;
            end;
          buffer.Canvas.MoveTo(oldx,oldy);
          buffer.Canvas.LineTo(X,Y);
          oldx:=x;
          oldy:=y;
          Obraz.Picture.Bitmap:=buffer;
      end;
    buffer.Free;
end;

Lecz teraz program wyłącza się po najechaniu na obiekt TImage

proszę was o pomoc gdyż zależy mi na rozwiązaniu mojego problemu

0

buffer:=Obraz.Picture.Bitmap;
Zamień to na:
buffer.assign(Obraz.Picture.Bitmap);
Powinno zadziałać ;)

0

Sry ale nie sprawdzę bo zrobiłem to troszkę inaczej a mianowicie ustawiając

DoubleBuffered

na true :D

ale dzięki za chęci

0

Korzystając z okazji zapytam

za co odpowiada właściwość

Canvas.pen.Mode

?

0

Ta właściwość odpowiada za tryb rysowania linii oraz obramowania (np.do rectangle).
Np.kreskowane, ciągłe, itd.

1 użytkowników online, w tym zalogowanych: 0, gości: 1