>>749 それでオーバフローで叱られないと思うが・・・

たぶんもう一つ掛算を書き忘れたのだとして、 1000000*1000000 で説明します。

どうしてオーバフローになるかというと、即値は32bitの整数の範囲なら32bitとして解釈されます。
それで、1000000*1000000 は32bit同士の掛算としてコンパイル時に掛算してしまおうとして
32bitの範囲に入らないよ=オーバーフローになるよとエラーが出るわけです。
Delphiのコンパイラは、結果をint64に入れるのだから型はint64だろうなんて推測はしません

回避するには64bitの定数である事をどこかで教えてやればいいのです
 たとえば、 
Int64(1000000)*1000000 とか 片方だけでもint64だと教えてやります

なお、 Int64(1)*1000000*1000000  はOKだけど
1000000*1000000*Int64(1) は駄目です