Ci siamo quasi, è come ho pensato il problema è che le procedure nel programma non vanno, solo funzioni, forse per il fatto che il programma ha bisogno di ricevere un valore dalle dll..
mettendo function il programma non mi crasha più, però mi succede che se appena apro il programma e senza disegnare linee o altro sopra, usando direttamente il flood fill, l'immagine si colora tutta con il colore scelto, però se invece ci disegno linee sopra no.
ecco il codice completo della dll:
Nel programma ho messo anche un drawline proprio per verificare se ci sono problemi del genere.codice:library FloodFill; uses SysUtils, Windows, Classes, Graphics; function HexToTColor(sColor : PChar) : TColor; begin Result := RGB( StrToInt('$'+Copy(sColor, 1, 2)), StrToInt('$'+Copy(sColor, 3, 2)), StrToInt('$'+Copy(sColor, 5, 2)) ) ; end; function Flood(x,y: real; ColorBack,FileName: PChar): real; stdcall; var FloodGriglia: TBitmap; begin FloodGriglia:=TBitmap.Create; try FloodGriglia.LoadFromFile(FileName); FloodGriglia.Canvas.Brush.Color:=clRed; FLoodGriglia.Canvas.Brush.Style:=bsSolid; FloodGriglia.Canvas.FloodFill(trunc(x),trunc(y),HexToTColor(ColorBack),fsBorder); FloodGriglia.SaveToFile(FileName); finally FloodGriglia.Free; end; Result:=1; end; exports Flood; {$R *.res} begin end.

Rispondi quotando