Hallo!
Da es bei graphics32 keine analoge Lösung zu Pen.Width gibt, hab ich mich entschlossen es über die Polygone zu lösen:
Delphi-Quellcode:
// 1) Erstellt Pinsel und Polygone zur Demonstration der aktuellen Einstellungen
procedure TMain.ErstellePinsel;
begin
PenSettings.Color:= clBlack32;
PenSettings.Width:= 1;
PinselDemo.SetupBitmap;
P:= TPolygon32.Create;
P.Add(FixedPoint(5, 15));
P.Add(FixedPoint(145, 15));
end;
// 2) Aktualisiert die Pinseleinstellungen in dem zugehörigen Menü
procedure TMain.PinselDemoAktualisieren;
begin
Outline:= P.Outline;
Outline:= Outline.Grow(Fixed(PinselSize.Position / 10),0.99);
Outline.FillMode:= pfWinding;
PinselDemo.Bitmap.BeginUpdate;
PinselDemo.Bitmap.Clear(clWhite32);
Outline.DrawFill(PinselDemo.Bitmap, SetAlpha(clBlack32, 255));
PinselDemo.Bitmap.EndUpdate;
PinselDemo.Refresh;
end;
Das Eigentliche Problem besteht in der Zeile:
Outline:= Outline.Grow(Fixed(PinselSize.Position / 10),0.99);
Ich möchte die Dicke der Linie auf genaue Werte einstellen können, z.B. 7 Pixel... Leider kann ich mit dem TFixed Format überhaupt nicht umgehen. Was muss ich als Parameter eingeben um auf meine 7 Pixel zu kommen??
i n f l i c t e d . d e