Jetzt habe ich noch ein Problem. Wenn ich das Canvas der Form verwende und die Stiftbreite auf 50 einstelle, dann wird auch eine sehr dicke Linie gezeichnet, so dass man sieht, dass die nicht nur ein Pixel breit ist. Wenn ich nun in das Create Ereignis der Form den leicht umgeänderten Quelltext:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
const
PenStyle = PS_Geometric or PS_Solid;
var
LogBrush: TLOGBRUSH;
begin
LogBrush.lbStyle := BS_Solid;
LogBrush.lbColor := Form1.Image1.Canvas.Pen.Color;
LogBrush.lbHatch := 0;
with Form1.Image1.Canvas do
begin
Pen.Handle := ExtCreatePen(PS_Geometric+PS_Dash+PS_Endcap_Square+PS_Join_Round, 50, LogBrush, 0, nil);
end;
end;
Dann sage ich dem Programm noch folgendes:
Delphi-Quellcode:
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Image1.Canvas.MoveTo(x, y);
end;
procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Image1.Canvas.LineTo(X, Y);
end;
und trotzdem malt der die Linie nur ein Pixel breit, warum?