hi!
ich habe folgendes problem:
Nachdem ich eine funktion, die den Hintergrund eines Images zeichnen soll, in eine
dll ausgelagert habe, gibt das Programm beim Beenden eine EAccessViolation aus.
Inhalt der
dll:
Delphi-Quellcode:
library func;
uses
SysUtils, Graphics, Windows, Classes;
{$R *.res}
procedure DrawColor(
const Canvas: TCanvas; Width: integer; Height: integer; ColorR, ColorG, ColorB: Byte);
begin
Canvas.Brush.Color:=
RGB(ColorR, ColorG, ColorB);
// 1)
Canvas.Rectangle(-1, -1, Width + 1, Height + 1);
end;
exports
DrawColor;
begin
end.
zu 1): nachdem ich mich ein bisschen herumgespielt habe, bin ich darauf gekommen, dass beim entfernen dieser zeile der fehler beim beenden nicht auftritt (natürlich wird dadurch der Hintergrund auch weiß gezeichnet).
Übrigens, als ich eine 2. Funktion einbinden wollte, die einen Farbverlauf zeichnet, diese ebenfalls den selben fehler auslöste, und mich wieder ein bisschen mit den Code gespielt habe, habe ich herausgefunden, dass es anscheinend an der zuweisung von eigenschaften an die TCanvas-Variable IN der
dll liegt. Aber wieso? Und wie könnte ich das problem lösen?
Danke im voraus, mfg,
axio