Jeg har prøvet bare at bruge TImage, og så bruge dens Canvas til at tegne med, men det giver en ufattelig dårlig streg.
Hvad mener du helt præcist med ufattelig dårlig streg - og kan du ikke supplere os med koden, der tegner denne streg?
/MHA
Selvfølgelig...
Koden er her:
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
// Tegn!!
Draw := True;
end;
procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
// Tegn Ikke!!
Draw := False;
end;
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
MousePos: TPoint;
begin
// Kun hvis tegn
If Draw Then
begin
// Find Mus pos
GetCursorPos(MousePos);
// Sæt Pen pos
Image1.Canvas.MoveTo(MousePos.X, MousePos.Y);
Image1.Canvas.LineTo(MousePos.X + 1, MousePos.Y + 1);
end;
end;
Og i kan se et billede af stregen her: http://www.frip.dk/Vurdering/Billeder/Tegneprogram.jpg
Håber det var det du mente...
/Mads
Glem at det med MousePos ikke er helt rigtigt... det kan jeg selv ordne, mit problem er den stiplede linie... Glemte det lige før ;o)
/Mads
Hej Mads,
prøv at tilføj variablen
FLastMouse : TPoint til din private sektion i din klasse og sørgfor at sætte den (X, Y) til -1 i din OnCreate event.
Prøv så at sætte denne kode ind i steder for din MouseXXX events:
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
// Tegn!!
Draw := True;
FLastMouse.X := X;
FLastMouse.Y := Y;
end;
procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
// Tegn Ikke!!
Draw := False;
FLastMouse.X := -1;
FLastMouse.Y := -1;
end;
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
MousePos: TPoint;
begin
// Kun hvis tegn
If Draw Then
begin
if FLastMouse.X <> -1 and FLastMouse.Y <> -1 then
begin // Sæt Pen pos
Image1.Canvas.MoveTo(FLastMouse.X, FLastMouse.Y);
Image1.Canvas.LineTo(X, Y);
end;
FLastMouse.X := X;
FLastMouse.Y := Y;
end;
end;
/Michael.