Mainform.Components [i] ist nur ein Zeiger, deshalb weiß der Compiler nicht, wen er da vor sich hat. Du brauchst etwas wie
Delphi-Quellcode:
if Mainform.Components[i] is TEdit then
begin
with if Mainform.Components[i] as TEdit do
begin
ReadOnly := true;
end;
Ungetestet, müsste aber etwa so gehen.
Grüße, Messie