Ver Mensaje Individual
  #4  
Antiguo 27-10-2004
Avatar de ruina
ruina ruina is offline
Miembro
 
Registrado: jun 2004
Posts: 196
Reputación: 22
ruina Va por buen camino
bien, algunos comentarios al código expuesto (pa ayudar, claro):


me estoy imaginando que esos procedimientos putId, put... son para guardar los valores ... pero en delphi tenemos un mecanismo realmente bueno para estos casos que son las propertys , por ejemplo, cuando tu escribes button1.visible := false estas cambiando una propiedad, es decir, lo escribes como si cambiases una variable de la clase, pero resulta que ademas el boton ¡desaparece de la pantalla!
¿como es posible esto?
¿como es que no tengo que escribir otra sentencia para que se oculte? como por ejemplo:
button1.visible := false
button1.Repaint(); ?

Porque en realidad lo que se hace al cambiar una propiedad es llamar a un método de la clase con el valor como parametro, es decir, nosotros escribimos button1.visible := false pero en realidad por debajo se esta escribiendo button1.Setvisible(false);


¿como hacer que funcionen las propertys en nuestras clases?

Sencillisimo:
Código Delphi [-]
  caracteristica = class
  private
    FidCategoria: integer;
    FnomCategoria: string;
    procedure SetidCategoria(const Value: integer);
    procedure SetnomCategoria(const Value: string);
...
  protected
  public
      property idCategoria: integer read FidCategoria write SetidCategoria;
      property nomCategoria: string read FnomCategoria write SetnomCategoria;
...
  end;
implementation
...
procedure caracteristica.SetidCategoria(const Value: integer);
begin
  FidCategoria := Value;
end;
procedure caracteristica.SetnomCategoria(const Value: string);
begin
  FnomCategoria := Value;
end;

como vemos en este caso para acceder (read) a la propiedad se lee directamente el valor desde la varaible privada FidCategoria y para escribirla se llama a Setxxx, así, si necesitamos hacer mas cosas cuando se cambie el valor de la propiedad tan solo debemos escribir debajo ó encima de FidCategoria := Value;

¿que hay que escribir mucho para poner una propiedad?
bueno, un pequeño truco: si tan solo escribimos
Código Delphi [-]
      property menu:string;
y pulsamos Shift + Ctrl + C, él solito nos rellenará el resto de código.

si necesitamos una propiedad con Get y Set escribiremos:
Código Delphi [-]
      property menu:string read Getmenu write Setmenu;
y pulsamos de nuevo Shift + Ctrl + C, para obtener la decinición de la funcion Getmenu y del procedure Setmenu

^_^

bueno, igual me he desviao un poco, pero tarde o temprano llegaras a la definición de propiedades.
__________________
todo el mundo debe creer en algo... yo creo que voy a tomarme otra copa.
Responder Con Cita