nil も含めて、TEdit 以外では例外を出すべきなんだから

if (cmp is TEdit) then TEdit(cmp).Text := IntToStr(num[i])
else raise Exception.Create('InvalidCast');

でいいと思う。>>257 の説明を読んでも as が nil を参照したら例外を出してくれた
ほうが、ずっと便利だと思う。だって、実際、nil をキャストしたい場面が思い浮かばない。
現状の as がどの場面で使われるのかやっぱ分かんない。