Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Duda! donde crear una Classe¿? (https://www.clubdelphi.com/foros/showthread.php?t=15549)

kye_z 27-10-2004 13:20:45

Duda! donde crear una Classe¿?
 
buenas,

mi duda la verdad es que es algo ... simple pero que me trae de cabeza...

estoy mirando lo de POO i me preguntaba que donde creais normalmente las classes i como.

Os dire mi opinion i corregirme si me ekivoco o si acierto o kualkier cosa que os pase por la cabesa...

Yo crearia la clase en un unit a parte sin formulario ni nada. (lo que no se es si las crearia todas alli o cada una en un unit distinto...)

Luego el como crearla esto ya no lo tengo mu claro... si podeis aportar un pequeño ejemplo.. pues me seria de bastante ayuda ( con un par de atributos i un par de funciones me conformaria...)

lo de utilizarla despues en los formularios i en la aplicacion en general.. ya ire investigando.. k poko a poco empiezo a tener las cosas claras...

muchissimas gracias de antemanoooo i por vuestra ayuda desinteressada!!!

delphi.com.ar 27-10-2004 13:46:19

Cita:

Empezado por kye_z
Os dire mi opinion i corregirme si me ekivoco o si acierto o kualkier cosa que os pase por la cabesa...

Tratándose de un foro en español, te recomiendo escribir en este idioma :D

Cita:

Empezado por kye_z
Yo crearia la clase en un unit a parte sin formulario ni nada. (lo que no se es si las crearia todas alli o cada una en un unit distinto...)

Donde crear la clase, queda bajo criterio del programador... si es una clase que solo se va a usar dentro de una unit, tenga o no un "formulario", yo la crearía en esa unit. Si la clase va a ser utilizada desde diferentes unit, podría crearla solitaria en otra unit, o una unit que contenga varias clases...

Cita:

Empezado por kye_z
Luego el como crearla esto ya no lo tengo mu claro... si podeis aportar un pequeño ejemplo.. pues me seria de bastante ayuda ( con un par de atributos i un par de funciones me conformaria...)

Con ver cualquiera de las units de Delphi, por ejemplo "classes" tienes unos cuantos ejemplos para observar.

Saludos!

kye_z 27-10-2004 15:25:51

buenas,

he estado mirando la unit "classes" del delphi i mas o menos ya lo tengo claro...
ahun asi, a parte del codigo de la classe, se tendria que poner algo mas?!..

yo de momento tengo un unit con solo esto i no se si funcionaria.
Código:

categoria = class
  private
        idCategoria: integer;
        nomCategoria: string;
        maxims: integer;
        minims: integer;
        sexe: string;
  protected
        procedure putId (id: integer);
        procedure putNom (nom: string);
        procedure putMax (max: integer);
        procedure putMin (min: integer);
        procedure putSexe (sexe: string);
  public
        constructor categoria(id: integer;nom: string;max: integer;min: integer;sexe: string);
end;

abajo iria implementando cada uno de los procedimientos que consideraria necesarios.

muchas gracias!!

ruina 27-10-2004 15:55:41

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.

kye_z 27-10-2004 16:14:59

aahora me quedao en blanco.. jejejeanalizare un poco mas lo que me cuentas i a ver que puedo sacar d claro!! muchas gracias por eso!!1

ya ire evolucionando!! :DD jejeje

ta la proxima!!


La franja horaria es GMT +2. Ahora son las 09:59:35.

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