Ich hoffe, ihr seid alle gut im neuen Jahr angekommen
Zitat:
Ich versuche mich erst einmal bei dem "Standard" Graphics32
Weiß zufällig jemand, ob folgendes ein Bug in Graphics32 ist?
Wenn ich folgenden Code ausführe, erhalte ich in der Zeile "bitmap.LineToFSP" eine
Exception, weil intern einmal versucht wird, durch 0 zu teilen (Image ist vom Typ TImage32):
Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
var
bitmap: TBitmap32;
bitmapLayer: TBitmapLayer;
rect: TFloatRect;
begin
Image.Width := 1670;
Image.Height := 969;
bitmapLayer := Image.Layers.Add(TBitmapLayer) as TBitmapLayer;
rect.Left := 0;
rect.Top := 0;
rect.Right := Image.Width;
rect.Bottom := Image.Height;
bitmapLayer.Location := rect;
bitmap := bitmapLayer.Bitmap;
bitmap.Width := Image.Width;
bitmap.Height := Image.Height;
bitmap.MoveToF(-1, 485);
bitmap.LineToFSP(-1091, 485);
end;
Es gibt in GR32 einen Codeblock, der untersucht, ob die Linie überhaupt sichtbar ist (so habe ich den Code zumindest verstanden). GR32 erkennt das in diesem Fall aber wohl nicht richtig. Wenn man die -1 durch eine -2 ersezt bei bitmap.MoveToF(), dann erkennt GR32, dass die Linie gar nicht im sichtbaren Bereich ist und verlässt die Methode.
Ich könnte natürlich in meinen Code schon eine Prüfung einbauen, damit LineToFSP in solchen Fällen gar nicht aufgerufen wird, aber dann müsste ich mir extra erst einmal einen Wrapper für TBitmap32 bauen.
Edit: Ich glaube, die Frage hat sich erledigt. Habe gerade in GitHub nachgeschaut und da gibt es schon eine neuere Version, die die Variable, durch die geteilt wird, vorher auf = 0 prüft.
Edit2: Hat zwar mit dem eigentlichen Thema nur indirekt zu tun, aber vllt. kann mir trotzdem jemand helfen: Ich möchte die neuste Version von Graphics32 installieren. Wenn ich das
Package installieren möchte, dann erhalte ich jedoch folgende Fehlermeldung:
Zitat:
Package 'GR32_RRX3' kann nicht geladen werden. Es enthält die
Unit 'GR32_XPThemes', die auch im
Package 'GR32_RSXE5' enthalten ist.
Ich verstehe nicht ganz, wodurch diese Fehlermeldung ausgelöst wird?! Ich habe das
Package GR32_RSXE5 nicht installiert. Warum wird das dann bemängelt?