Ver Mensaje Individual
  #7  
Antiguo 29-10-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Reputación: 25
Delphius Va camino a la fama
Cita:
Empezado por Stanley Ver Mensaje
me seria de mucha ayuda un ejemplo, es cierto que lo que Delphius me indica funciona para los procedimientos que uso pero lo que me mata es que coloco el uses en el formulario y aunque le haya agregado procedimientos publicos y variables publicas en el codigo del form coloco
edit1.text := Proceds.Tclass.
pero despues de este punto no me aparece nada aun con el ejemplo que Delphius hizo, ya que lo copie tal y como esta y no pude ver la tArreglo solo pude ver la TCLass, pero no vi los procedimientos que coloque despues de tipo publico
¿Sería posible que mostrases mayor código para ver como estas trabajando?

Ya dec te explicó que un procedimiento o función ajeno a una clase no debe ir precedido de alguna directiva public o private. Lo que debes hacer es:
1. Si la función o procedimiento debe ser y puede ser usada desde afuera (global, como dice dec) debe incorporarse la declaración en la sección interface:

Código Delphi [-]
unit Foo;

interface

function FooGlobal(): boolean;
// Esta declaraciòn hace que FooGlobal sea vista y usada desde afuera

implementation

function FooGlobal(): boolean;
begin
  result := true;
end;

end.

2. Si la función o procedimiento debe ser local, por tanto no puede ser vista y usada desde afuera. NO debe contar con la declaración en la sección interface:

Código Delphi [-]
unit Foo;

interface
{En interface no se se cuenta con la declaración de FooLocal. Solo puede ser usada localmente de cualquiera de estas formas:
1. Una función/procedimiento global "llama" a FooLocal
2. Aprovechando la sección Initialization y/o Finalization}

implementation

function FooLocal(): boolean;
begin
  result := true;
end;

end.

En el ejemplo que te envié ProcedimientoOculto y Aviso están declarados en forma local.

Me extraña que digas que no puedes ver el tipo TArreglo. Está en la sección interface.

Con respecto a la situación de las clases creo que dec dió una idea de como se procede. Allí si es necesario indicar la visibilidad (ojo: solo en la sección de interface) Como ya lo ha explicado dec, en implementation no se indica la visibilidad.
Por si la dudas, explico aprovechando la Foo de dec como es la estructura:

Código Delphi [-]
unit Foo;

interface

type
  TFoo = class
  // Inicio de la clase
  // Para proceder a dar visibilidad a los mètodos se procede asì:
  { Visibilidad
      1. Variables (si es Private)
      2. Propiedades
      3. Mètodos
  }

  public
  // aqui comienza la visibilidad public. Públic sólo posee un método Foo
    function Foo(): boolean;
  {el compilador solito interpreta donde comienza y termina la declaraciòn de las visibilidades. No hace falta un end, Ojo } 
  end; // aqui termina la clase

implementation

{ TFoo }

function TFoo.Foo(): boolean;
// Como ves... no hay ningún public o private aqui... el compilador solito
// se encarga de interpretar correctamente que tipo de visibilidad posee.
begin
  {...}
  result := true;
end;

end.

Creería que se entiende ahora. ¿Por casualidad leíste lo que te recomendé? Allí se explica detalladamente todas estas cuestiones.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]

Última edición por Delphius fecha: 29-10-2007 a las 04:05:24.
Responder Con Cita