Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-01-2006
jam888 jam888 is offline
Miembro
 
Registrado: sep 2004
Posts: 115
Poder: 20
jam888 Va por buen camino
Question propiedades ¿READ, WRITE?

Que tal gente de foro, de nuevo por aca, esto no es una duda, es un problema, necesito saber como funcinan las propiedades read y write, he chequeado el foro y encontre mucho pero no entendi poco, si alguien pudiera mostrarme con un pequeñisimo ejemplo y explicarme un poco de que se trata , como funciona y donde se define? le agradeceria un monton, espero me puedan responder, gracias y un abrazo.
Responder Con Cita
  #2  
Antiguo 11-01-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

No sé si deberías ser un poco más específico. Te refieres a las "propiedades read y write", pero, ¿propiedades de qué objeto? ¿de qué componente estamos hablando, si es que hablamos de algún componente?
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 11-01-2006
Ricardojosep Ricardojosep is offline
Miembro
 
Registrado: sep 2003
Ubicación: Sgo del estero (Argentina)
Posts: 75
Poder: 21
Ricardojosep Va por buen camino
Aqui va algo de Read y Write...

Hola Jam888

Como Dec tiene razon, no se sabe de que Read y Write estas hablando, yo te paso un Ejemplo de una de las aplicaciones que le puedes dar.

Ejemplo:
Código Delphi [-]
var

  F1, F2: TextFile;
  Ch: Char;
begin
  if OpenDialog1.Execute then begin
    AssignFile(F1, OpenDialog1.Filename);
    Reset(F1);
    if SaveDialog1.Execute then begin
      AssignFile(F2, SaveDialog1.Filename);
      Rewrite(F2);
      while not Eof(F1) do
      begin
        Read(F1, Ch);
        Write(F2, Ch);
      end;
      CloseFile(F2);
    end;
    CloseFile(F1);
  end;

end;

Para obtener este ejemplo solo puse la palabra Read en delphi y presione F1.
Esto es para la lectura de un archivo de texto. A Read y Write tambien lo puedes usar en una aplicacion de consola.

Te paso el Ejemplo que muestra Delphi:

Ejemplo
Código Delphi [-]
var

   s : string;
 begin
   Write('Enter a line of text: ');
   Readln(s);
   Writeln('You typed: ',s);
   Writeln('Hit  to exit');
   Readln;

 end;

Como ves aqui Write imprime una oracion (Enter a line of Text) en la Consola y ReadLn(S) Es la oracion que el Usuario Ingresa. WriteLn('You tuped: ',S) solo muestra en la Consola:

You typed: "La oracion que puso el Usuario"

Bueno, el resto es algo parecido,

Espero que te sirva.

Hasta pronto.
__________________
La amistad es la union de dos almas para formar una sola.
Responder Con Cita
  #4  
Antiguo 11-01-2006
jam888 jam888 is offline
Miembro
 
Registrado: sep 2004
Posts: 115
Poder: 20
jam888 Va por buen camino
Perdon read y write al definir componentes

Perdon es a la hora de definir un componente y asignarles propiedades de
getcarga y setcarga, para cargar valores y leerlos.
Responder Con Cita
  #5  
Antiguo 11-01-2006
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Cita:
Empezado por Ricardojosep
Como Dec tiene razon, no se sabe de que Read y Write estas hablando, yo te paso un Ejemplo de una de las aplicaciones que le puedes dar.
Dentro de la ambigüedad de suposiciones, yo descartaría tu ejemplo, pues "aparentemente" habla de propiedades

¿Te referís a genéricamente propiedades de lectura/escritura?... ¿Como definirlas?...
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #6  
Antiguo 11-01-2006
jam888 jam888 is offline
Miembro
 
Registrado: sep 2004
Posts: 115
Poder: 20
jam888 Va por buen camino
Eso, eso , eso

Propiedades de lectura escritura, como las defino, como las uso, si puede ser el mas chico de los ejemplos, se los agradeceria un monton.
Responder Con Cita
  #7  
Antiguo 11-01-2006
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Código Delphi [-]
type
  TClase = class(TClasePadre)
  private
    procedure MetodoEscritura(const Value: TTipoDeDatos);
    function MetodoLectura: TTipoDeDatos;
  protected
  public
  published
    property Propiedad: TTipoDeDatos read MetodoLectura write MetodoEscritura;
  end;
Bueno ahí tienes básicamente el la sintaxis de la declaración de una propiedad Lectura/Escritura. Si no defines un método de escritura la propiedad es de solo lectura, si no defines el método de lectura, la propiedad es de solo escritura.
Los métodos de lectura, por convención suelen nombrarse como Get+"Nombre de Propiedad", los métodos de escritura con Set. Si tu propiedad puede ser leída directamente de una variable sin ejecutar código, el típico caso:
Código Delphi [-]
function GetPropiedad: TTipoDato;
begin
  Result := FPropiedad;
end;
Puedes definir directamente una variable en el lugar del método de escritura o lectura según corresponda.

Código Delphi [-]
  TCuadrado = class(TObject)
  private
    FAncho: Integer;
    FAlto: Integer;
    function GetSuperficie: Integer;
    procedure SetAlto(const Value: Integer);
    procedure SetAncho(const Value: Integer);
  published
    property Alto: Integer read FAlto write SetAlto;
    property Ancho: Integer read FAncho write SetAncho;
    property Superficie: Integer read GetSuperficie;
  end;

implementation

{ TCuadrado }

function TCuadrado.GetSuperficie: Integer;
begin
  Result := FAlto * FAncho;
end;

procedure TCuadrado.SetAlto(const Value: Integer);
begin
  if Value <> 0 then
    FAlto := Value;
end;

procedure TCuadrado.SetAncho(const Value: Integer);
begin
  if Value <> 0 then
    FAncho := Value;
end;

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.

Última edición por delphi.com.ar fecha: 12-01-2006 a las 14:54:25.
Responder Con Cita
  #8  
Antiguo 11-01-2006
jam888 jam888 is offline
Miembro
 
Registrado: sep 2004
Posts: 115
Poder: 20
jam888 Va por buen camino
Talking Ok ya lo entendi

Ya entendi el tema ahora lo aplicare y ante cualquier duda nos estaremos viendo, muchas gracias y un abrazo.
Responder Con Cita
  #9  
Antiguo 11-01-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Yo creo que podrías repasar algún que otro texto al respecto, y fijarte en cuantos componentes consideres oporturno. En todo caso hay va un ejemplo muy sencillo de un componente con un par de propiedades... qué sé yo... me he puesto a escribir algo y me ha salido lo siguiente. No tiene utilidad ninguna más allá de lo que se deje entrever. Insisto en lo primero que he dicho.

Código Delphi [-]
unit UAmigo;

interface

uses
  Classes;

type
  // Sexo de nuestro amigo
  TSexo = (hombre, mujer);

  // Una clase a modo de ejemplo
  TAmigo = class(TComponent)
  //
  private
    FSexo: TSexo;         // Sexo de nuestro amigo
    FNombre: string;      // Nombre de nuestro amigo
    FApellidos: string;   // Apellidos de nuestro amigo
    FTratamiento: string; // Tratamiento para nuestro amigo

    // Variable puñetera
    FNivelAmistad: integer;

    { Establecerá el sexo y algo más...
    }
    procedure SetSexo(value: TSexo);

  public
    constructor Create(AOwner: TComponent); override; // Constructor del componente

  public
    // Nombre es una propiedad pública
    property Nombre: string read FNombre write FNombre;
    // Apellidos es una propiedad pública
    property Apellidos: string read FApellidos write FApellidos;
    // Sexo es una propiedad pública
    property Sexo: TSexo read FSexo write SetSexo default hombre;
    // NivelAmistad es una propiedad pública de solo lectura
    property NivelAmistad: integer read FNivelAmistad default 5;
  end;

implementation

{ TAmigo }

{ Utilizamos este procedimiento en lugar de
  asignar el valor directamente a FSexo, porque
  de este modo aprovechamos para dar un valor
  en consonancia a la variable privada
  FTratamiento.
}
constructor TAmigo.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  // Inicializamos
  FSexo := hombre;
  FNivelAmistad := 5;
end;

procedure TAmigo.SetSexo(value: TSexo);
begin
  if value <> FSexo then FSexo := value;
  case FSexo of
    mujer: Self.FTratamiento := 'Doña';
    hombre: Self.FTratamiento := 'Don ';
  end;
end;

end.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
Respuesta



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
Cambiar propiedades de la barra de scroll dmr1974 Varios 2 18-06-2008 20:04:02
Problema creando un nuevo componente y un editor de propiedades Koder OOP 8 21-08-2005 10:59:08
¿alguien conoce el uso de la clase TOwnerCollection? fredo OOP 11 01-08-2005 18:05:56
Guardar propiedades en el form sur-se OOP 4 30-09-2004 18:38:12
Propiedades de clases marto OOP 7 16-01-2004 12:38:02


La franja horaria es GMT +2. Ahora son las 16:45:23.


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
Copyright 1996-2007 Club Delphi