Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Publicar parte de un objeto de clase (https://www.clubdelphi.com/foros/showthread.php?t=51733)

jlrbotella 27-12-2007 09:09:55

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.

dec 27-12-2007 09:30:01

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".

Al González 27-12-2007 15:22:33

¡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. :)

jlrbotella 27-12-2007 18:47:54

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

dec 27-12-2007 19:02:05

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;

Al González 27-12-2007 19:49:38

Cita:

Empezado por jlrbotella (Mensaje 254667)
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...:rolleyes:

jeliardo 19-07-2017 01:03:28

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.

Ñuño Martínez 19-07-2017 09:18:54

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.


La franja horaria es GMT +2. Ahora son las 19:24:10.

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