Учитывая чудность алгоритма чутка подкоректируй размер тут:
Код:
Result.Height := AForm.ClientHeight;
Result.Canvas.CopyRect(Rect(0,0,Res ult.Width,Resul t.Height),
AForm.Canvas,AForm.ClientRect);
Что касается путей сохранения, то юзай ParamStr или ExeName + группу функций для работы с путями типа ExtractFilePath.