![]() |
Pasar punteros a objentos en un procedimiento
Hola amigos, soy nuevo en este foro y un principiante en el lenguaje de programación.
Me podría decir alguíen si se puede pasar en un procedimiento un puntero a un objeto (Label, Shape,...) para poder modificar el objeto dentro del procedimiento. Si es posible ¿Como se debe declarar ? Graciasconfused: |
mas o menos seria una cosa asi
* Llamada -> pasamos un TLabel y un TEdit Código:
Código:
procedure Actualizar(L : TLabel; E . TEdit); Bueno, espero que te sirva |
Bien, básicamente es que toda "variable" objeto es, en realidad, una referencia a objeto.
Vamos: var MiSuperObjeto: TMiSuperObjeto; Sería "como" poner var MiSuperObjeto: ^TMiSuperObjeto; Son siempre punteros a objeto, mientras que el resto de tipos "primitivos" (real, entero, etc...), son el contenedor de un valor del tipo (vamos tienes la referencia y el espacio de memoria asociado). De ahí viene que si no se le asigna un objeto a la variable, en realidad no estés apuntando a algún sitio valido. Usea: var MiSuperObjeto: TMiSuperObjeto; begin MiSuperObject.SuperMetodo; // lanzará una violación en masa de los bits pares de la cpu. Luego, si haces lo que cadetill indica, siempre pasas una referencia al objeto (y por lo tanto, operarás, realmente, con ese objeto). |
La franja horaria es GMT +2. Ahora son las 09:58:59. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi