no, no, que no. Que no e a. (nada, que me apetecía un trabalenguas
)
Código Delphi
[-]
procedure Porvalor(const dato:integer);
procedure PorReferencia(var dato:integer);
Al menos a mí me enseñaron que pasar por referencia implica el "var" delante del parámetro, y podemos modificar el valor de la variable "dato".
En el caso de objetos, digamos que "no es común" modificar el valor de la variable, es como si quisiéramos hacer esto:
Código Delphi
[-]
procedure PorReferencia(var dato:TListView);
begin
dato := pointer(300);
end;
Aquí si es necesario pasar el ListView por referencia, ya que estamos modificando el valor que contiene la variable dato... aunque eso si... a saber qué hay en la dirección 300 de nuestra RAM, casi seguro que no está el ListView
Al pasar un objeto por valor, realmente estamos queriendo decir que
su dirección de RAM no la podemos cambiar. Pero podemos modificar todas sus propiedades y eventos, ya que estos, no se encuentran en la propia variable "dato" sino en el espacio que ocupa el objeto.
Ufff, no sé si he tenido una violación de acceso a memoria con tanto objeto en mente
Saludos