Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos


Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-12-2007
jlrbotella jlrbotella is offline
Miembro
 
Registrado: ene 2007
Posts: 178
Poder: 11
jlrbotella Va por buen camino
Publicar parte de un objeto de clase

Hola:

Me gustaría saber como puedo publicar parte de una clase, es decir un objeto que pertenezca a ella. Para ello he intentado realizarlo de esta forma pero no me funciona.

Código Delphi [-]
TClase = class
  public
     Directorios : string;
end;
 
TClaseMaestra = class(TForm)
private
    AppDirectorios : TClase;
property
    Directorios : TClase.Directorios read AppDirectorios.Directorios;
end;

Un saludo y gracias.

Última edición por dec fecha: 27-12-2007 a las 10:20:35.
Responder Con Cita
  #2  
Antiguo 27-12-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 12.559
Poder: 27
dec Va camino a la famadec Va camino a la fama
Hola,

En este caso yo creo que podría quedar más o menos así:

Código Delphi [-]

TClaseMaestra = class(TForm)
public
  AppDirectorios: TClase;
end;

De ese modo, cualquier podrá acceder a "AppDirectorios" a partir de la correspondiente instancia de "TClaseMaestra".
__________________
David Esperalta
www.davidesperalta.com
Responder Con Cita
  #3  
Antiguo 27-12-2007
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.499
Poder: 22
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Smile

¡Hola a todos!

Si nos ceñimos estrictamente al verbo publicar, creo que jlrbotella quiere hacer de la propiedad un elemento publicado, más que público. Para ello, la propiedad debe tener la visibilidad Published dentro de la clase contenedora. Pero además, si se desea visualizar en el inspector de objetos, más concretamente, si se quiere que la propiedad esté disponible para interacción con el entorno de diseño, la subclase debe ser descendiente de TPersistent, que es la clase base para todos los objetos que pueden mostrar propiedades en el inspector de objetos y almacenarlas en un DFM.

Cabe mencionar que cuando la clase contenedora es una forma o módulo de datos (como al parecer es el caso), requiere un tratamiento adicional, sobre el cual ya hay varios hilos en este foro. Si es un simple componente, basta con registrarlo en la paleta.

Espero haber orientado un poco.

Un abrazo publicado.

Al González.

Última edición por Al González fecha: 27-12-2007 a las 20:56:21. Razón: Corregir. Cambiar TStream por TPersistent.
Responder Con Cita
  #4  
Antiguo 27-12-2007
jlrbotella jlrbotella is offline
Miembro
 
Registrado: ene 2007
Posts: 178
Poder: 11
jlrbotella Va por buen camino
HOla

Lo de lo TStream no lo sabia.

Pero solo quiero poder hacer que parte de un objeto que pertenezca a una clase sea visible como solo lectura, en vez de lectura y escritura. Por eso he intentado hacerlo con property para no declararlo como private o public.

Un saludo,
JL
Responder Con Cita
  #5  
Antiguo 27-12-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 12.559
Poder: 27
dec Va camino a la famadec Va camino a la fama
Hola,

Algo similar a esto, quizás:

Código Delphi [-]
type
  TClase = class
  public
    Directorios: string;
  end;

  TClaseMaestra = class(TForm)
  private
    AppDirectorios: TClase;
    function GetDirectorios(): string;
  public
    property Directorios: string read GetDirectorios;
  end;

implementation

{ TClaseMaestra }

function TClaseMaestra.GetDirectorios(): string;
begin
  result := Self.AppDirectorios.Directorios;
end;
__________________
David Esperalta
www.davidesperalta.com
Responder Con Cita
  #6  
Antiguo 27-12-2007
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.499
Poder: 22
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Arrow

Cita:
Empezado por jlrbotella Ver Mensaje
Lo de lo TStream no lo sabia...
Lo lamento mucho, quise decir TPersistent. Eso de escuchar la radio mientras escribo respuestas no es nada bueno...
Responder Con Cita
  #7  
Antiguo 19-07-2017
jeliardo jeliardo is offline
Registrado
 
Registrado: jul 2017
Posts: 1
Poder: 0
jeliardo Va por buen camino
Funcion

Cree la sigueinte funcion, sin embargo siempre me devuelve el resultado 1, no continuan con el ELSE. Alguien tiene una idea, son principiante.
Gracias

function SQLGetReEnvios (strMedResub : string) :string ;
var
strSQL : string;
begin
strSQL := 'SELECT MedReSub' + 'FROM Hcinsuranceclaimheader';
if strMedReSub = '' then
begin
result := '1';
end
Else
begin
result := '7';

end;

end;
end.
Responder Con Cita
  #8  
Antiguo 19-07-2017
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 5.635
Poder: 18
Ñuño Martínez Va camino a la famaÑuño Martínez Va camino a la fama
Hola Jeliardo, bienvenido al Club.

Como a todos, te recuerdo que debes leer nuestra Guía de Estilo. En tu caso concreto, los puntos 11 y 12.

Saludos.
__________________
Proyectos actuales --> Burdjia Components|http://gesbit.sf.net/
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
publicar pagina web desde pc Yoli PHP 1 23-09-2007 03:17:09
Publicar Web realizada en Intraweb K-ba OOP 1 14-08-2007 23:47:17
Cargar/Guardar un objeto de una clase propia Uoha OOP 7 14-05-2007 23:44:01
publicar en pdf santiago14 Varios 2 03-03-2007 15:54:07
Clase, objeto, tipo? [Gunman] OOP 3 04-01-2006 17:11:32


La franja horaria es GMT +2. Ahora son las 07:08:07.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi