Einzelnen Beitrag anzeigen

hansklok

Registriert seit: 14. Apr 2004
Ort: Karlsruhe
318 Beiträge
 
Delphi 2010 Architect
 
#8

Re: Grafikprogrammierung: Frage

  Alt 8. Aug 2004, 19:04
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?
  Mit Zitat antworten Zitat