Was passiert denn bzw. was passiert nicht? Der Fehler liegt wahrscheinlich woanders, denn wenn man den Code in einer sonst leeren Anwendung einbaut, funzt's. Du könntest den Code noch verkürzen, was das Problem aber nicht lösen wird:
Delphi-Quellcode:
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
Edit1.ReadOnly := not CheckBox1.Checked;
Edit2.ReadOnly := Edit1.ReadOnly;
end;