![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
![]() Hola a todos
Tengo una unidad en la cual se ejecutan varios procedimientos, pero ahora quiero incluir uno que construye un Objeto Digamos un (Form) y lo ejecuta todo bien pero cuando trato de compilar me da un aviso [Error] Procedim.pas(622): Undeclared identifier: 'Self' El procedimiento es el siguiente procedure ShowForm(FormClass: TFormClass); begin With FormClass.Create(Self) do try ShowModal; finally Free; end; end; La pregunta es la siguiente ¿ Porqué si lo ejecuto dentro de una form si compila y si lo hago dentro de solamente una Unit me da ese error ? y como poder superarlo Nota : Sera que falta incluir alguna unidad ? De Antemano, Gracias ![]()
__________________
IVAND |
#2
|
||||
|
||||
Self es una variable implicita, que funciona solamente en el contexto de un objeto, ya que contiene una referencia a si mismo (self). Es decir, a la instancia del objeto dentro del cual se hace la llamada al método en tiempo de ejecución.
De tal forma, si tenes una clase TForm1, utilizar self en uno de sus métodos te permitirá acceder a los métodos, propiedades y atributos de la instancia de TForm1 sobre la que se este actuando en ese momento. En cambio, si lo utilizas dentro de la clase TMiClase, Self es una variable de tipo TMiClase. En tu caso particular, podes agregar un parámetro al procedimiento, que traiga el owner del formulario, o por definicion crearlos con el objeto application como owner o por ultimo, sin owner. Algo como Código:
With FormClass.Create(Application) do o With FormClass.Create(nil) do Espero haberme explicado lo suficiente. Hasta luego. ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#3
|
||||
|
||||
![]() Aclaro que te respondi, porque no me di cuenta del "urgente" del título de tu post... el cual me disgusta bastante.
TE recomiendo que leas la guia de estilo de los foros (vinculo al pie de este mensaje) y que en un futuro tengas un mejor criterio para titular tus posts. Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate Última edición por jachguate fecha: 30-08-2003 a las 01:46:30. |
#4
|
|||
|
|||
Gracias por tu respuesta jachguate, por lo de Urgente, espero no haber ocasionado mas disgustos, para la proxima tendre mas cuidado
De antemano, Gracias ![]()
__________________
IVAND |
![]() |
|
|
![]() |
|