Kann es sein, dass du nicht berücksichtigst, das bei Delphi bzw. Windows das Koordinatensystem auf dem Kopf steht?
Wenn ich deinen Code richtig überblicke:
Delphi-Quellcode:
function TFktPlotter.YPix(yP:Extended):Integer;
begin
result:= ImgGraph.Height-1 - round(200+yP*200/def);
end;
Und in der Schleife benutzt du
yP:= XPix(y);, glaub nicht das das gewollt ist.