Работают.
Только событие OnPaint вызывается не только ними.
Как только форма начинает появлятся на экране, начинается ее рисование и соответственно вызывается событие OnPaint. Также оно будет вызываться при изменении размеров, если ее часть заслоняла другая форма и небыло буферизации и т.д.
Можно сообщить системе программно ( Invalidate() Refresh ... ), что требуется перерисовка. и система опять вызовит OnPaint.
Попробуй убрать рисование графика в отдельный метод и вызывать при необходимости.
Введи приватное поле типа Boolean и выставляй его после расчета - тогда проверять будет легче.
По поводу литературы. Когда то скачивал А.Я.Архангельский - Delphi 2006. Но потом перешел на C# идеология языка практически такая же, только синтаксис другой.
Вот несколько книжек
книга Delphi .Net