Einzelnen Beitrag anzeigen

axio

Registriert seit: 3. Dez 2005
3 Beiträge
 
Delphi 6 Enterprise
 
#1

EAccessViolation beim beenden

  Alt 7. Dez 2005, 17:35
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
  Mit Zitat antworten Zitat