Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-06-2007
Chandra Chandra is offline
Miembro
 
Registrado: jun 2006
Posts: 23
Poder: 0
Chandra Va por buen camino
Declaración de Procedimientos

Llevo años haciendo mal una cosa básica, y me acabo de dar cuenta ahora...

Siempre he declarado mis procedimientos y funciones bajo el resto de declaraciones de procedures correspondientes a los eventos de los objetos (es decir, al final del evento OnClick de un Button, por ejemplo). No sé... supongo que cuando empecé hace años, vi allí las declaraciones de los procedimientos de los eventos, y supuse que ahí era donde tenía que declarar los mios. Un vicio adquirido y no revisado.

Ejemplo:

Código Delphi [-]
type   
  TForm1 = class(TForm)     
    Button1: TButton;     
    procedure Button1Click(Sender: TObject);     
    procedure MiProcedimiento;

Luego, en el cuerpo del código, anteponía "TFormX."... y listo.

Ejemplo:

Código Delphi [-]
implementation 

{...}

procedure TForm1.MiProcedimiento;   
begin     
  //bla, bla, bla...   
end;

Pero me he dado cuenta, con gran estupor, de que NO hay por qué declararlos, que se escribe el cuerpo en la sección implementation (sin el TFormX. delante, claro) y se acabó. He vivido engañado todo este tiempo . Con razón me extrañaba no encontrar nunca en los manuales la "acrobacia" que yo "perpetraba". Aunque... tampo he encontrado nunca la forma correcta de hacerlo, lo dan por supuesto...

Ahora bien, al darme cuenta de mi tremenda laguna, me he puesto a buscar y he visto que hay autores (como Charte) que sí que declaran los procedimientos en la sección public, por ejemplo. ¿Por qué? ¿Cuál es la forma correcta de hacerlo?

Gracias

Última edición por dec fecha: 18-06-2007 a las 12:25:51.
Responder Con Cita
  #2  
Antiguo 18-06-2007
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,

En realidad no creo que pueda hablarse del lugar correcto para declarar un procedimiento, a no ser que con esto nos queramos referir al lugar adecuado para hacerlo.

Un procedimiento puede ser público para otras unidades si se declara en la cláusula "interfaz" de una unidad. Si sólo se implementa el procedimiento en la cláusula "implementation" el mismo no estará disponible sino para la unidad en que se implementa.

Si un procedimiento (o función) pertenece a una clase decimos que se trata de un método de dicha clase. Aquí ya hay que decidirse no por el lugar de la declaración sino por el "alcanze" del ya método de la clase.

Un método puede declararse dentro de una clase como privado, protegido o público. En las últimas versiones de Delphi también puede declararse como "privado estrictamente" o "protegido estrictamente".

Si se declara público el método estará disponible para todo aquel que use la clase. Si se declara protegido sólo podrá accederse a él desde la clase en cuestión o clases derivadas de esta. Si se declara privado el método será accesible sólo desde la clase en que se declara.

En Delphi hay un "problema" que se soluciona en las últimas versiones. Si un método se declara "privado estrictamente" no podrá accederse al mismo sino desde el interior de la clase en que se declare, incluso si se trata de hacerlo desde la misma unidad en que se encuentra declara la clase que contiene el método.

Y esto es... más o menos (más menos que más) y en pocas palabras, lo que puedo decir sobre lo que planteas.
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 18-06-2007 a las 12:24:22.
Responder Con Cita
  #3  
Antiguo 18-06-2007
Chandra Chandra is offline
Miembro
 
Registrado: jun 2006
Posts: 23
Poder: 0
Chandra Va por buen camino
Muy interesante e instructivo todo lo que cuentas, dec.

El caso es que aunque tengo clara la teoría sobre clases, partes privadas, públicas y protegidas (tanto en Delphi como en Java), no he tenido (no me ha hecho falta, la verdad) demasiado interés por comprender la estructura de las units de delphi. De ahí el lío y mi confusión. Por eso, aunque tengo bastante claro como construir y usar clases, no termino de entender el por qué de la estructura de una unit normal y corriente .

Voy a tener que hacer un alto y ponerme a repasar ese tipo de conceptos básicos. Este es el peligro de los IDEs, que a veces avanzas pasando por alto cosas básicas. Ahora comprendo por qué la gente de Java prefiere usar bloc de notas y no dejar que un eclipse o un netbeans les meta el esqueleto.

Pero en fin, que me salgo del tema y lo que me interesa ahora es Delphi.

Gracias por tu aclaración
Responder Con Cita
  #4  
Antiguo 18-06-2007
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,

Tú tranquilo, hombre. En mi opinión los IDEs son unos programas fantásticos. Y lo que has aprendido con ellos no quita que sigas aprendiendo después: lo que sea. La verdad, no me imagino construyendo un programa complejo (espero que me entiendas... tal vez esta no sea la palabra más adecuada) con el bloc de notas... puede ser curioso, interesante, incluso sí, llevarse a cabo... pero tiene muchas posibilidades de convertirse en algo tedioso y de aburrida realización.

Pero bueno, para los gustos están los colores.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 18-06-2007
Chandra Chandra is offline
Miembro
 
Registrado: jun 2006
Posts: 23
Poder: 0
Chandra Va por buen camino
Cita:
Empezado por dec
Hola,

Tú tranquilo, hombre. En mi opinión los IDEs son unos programas fantásticos. Y lo que has aprendido con ellos no quita que sigas aprendiendo después: lo que sea. La verdad, no me imagino construyendo un programa complejo (espero que me entiendas... tal vez esta no sea la palabra más adecuada) con el bloc de notas... puede ser curioso, interesante, incluso sí, llevarse a cabo... pero tiene muchas posibilidades de convertirse en algo tedioso y de aburrida realización.

Pero bueno, para los gustos están los colores.
Te entiendo perfectamente, y tienes mucha razón . Es un placer encontrarse a gente como tú, que domina un área del conocimiento, pero no necesita de alardes frikis (el bloc de notas, por ejemplo ) para demostrarlo.

Gracias por tu tiempo y por tu amabilidad compartiendo tus conocimientos conmigo
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
Declaracion de Variables berfer Firebird e Interbase 10 13-10-2011 21:12:20
Declaracion de nuevos tipos FGarcia Varios 2 10-05-2007 20:46:21
Declaracion If --- Then Caral Varios 12 07-10-2006 23:17:01
declaracion de variables... azaagh Varios 4 08-06-2004 15:44:45
Haciendo la declaración de la renta... santana Humor 1 14-04-2004 23:02:32


La franja horaria es GMT +2. Ahora son las 18:00:28.


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