Ampliando lo ya dicho por
vtdeleon, solamente quiero apuntar que en la implementación que tenes del método Edit1Change, aunque efectivamente este se disparará para todos los edits que crees dinamicamente, en realidad seguirá actuando sobre Edit1, es decir, aún cuando el que esté cambiando es edit3, seguirá evaluando el valor de edit1 (y cambiandolo).
Supongo que lo que queres es que si Edit3 es el que cambia, sea el valor de este el que se modifique. En este caso, podes valerte del parámetro Sender del método, que traerá una referencia al edit que en realidad ha disparado el evento. Así, podes tener
un solo método atendiendo los eventos de
muchos objetos.
La codificación debiera lucir algo similar a lo siguiente:
Código Delphi
[-]
procedure TFormulario.Edit1Change(Sender: TObject);
var
EditCambia : TEdit;
begin
EditCambia := Sender as TEdit;
if EditCambia.Text = '' then
begin
EditCambia.Text := '0';
EditCambia.SelectAll;
end;
end;
Hasta luego.
