Por supuesto que no tiene utilidad ni sentido... es un caso didáctico. Pongamos por ejemplo el caso que indica
roman, pero con algo más cercano a nosotros, la propiedad Tag que tienen todos los controles, imaginamos un Checkbox, que al marcarlo, queremos poner un texto en un Edit, podríamos hacer algo así:
En el Oncreate:
Código Delphi
[-]
checkbox1.tag := integer(Edit1);
Al hacer clic en el checkbox:
Código Delphi
[-]
TEdit(checkbox1.tag).Text:= 'Opcion activa';
para un checkbox es complicarse la vida, pero extrapolemos las cosas.... 30 checkbox asociados cada uno con un Edit. podemos tener un solo evento Onclick del checkbox, pero común a los 30 checkboxs de esta forma:
Código Delphi
[-]TEdit( TCheckbox(Sender).tag ).Text:= 'Opcion activa';
Sender : será el checkbox donde se haga clic
TCheckbox(Sender) : es necesario un moldeo de tipos, para que el compilador trate a ese Tobject como un Tcheckbox
TCheckbox(Sender).tag : Accedemos a su propiedad Tag, aquí se está usando lo ya comentado por
roman, usar un tipo de datos integer para almacenar un puntero.
TEdit(TCheckbox(Sender).tag) : moldeo necesario para que ese .Tag lo trate como un TEdit en lugar de un tipo de dato entero.
Por último accedemos a su propiedad Text y lo modificamos.
Si, ya, complejo ¿acaso es mejor algo así?:
Onclic del checkbox1:
Código Delphi
[-]
edit1.text:= 'Opcion activa';
Onclic del checkbox2:
Código Delphi
[-]
edit2.text:= 'Opcion activa';
Onclic del checkbox3:
Código Delphi
[-]
edit3.text:= 'Opcion activa';
... no sigo, ya lo entiendes de sobra
.
Saludos.