Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Perdon, Nociones basicas... (https://www.clubdelphi.com/foros/showthread.php?t=11435)

JorgeBec 14-06-2004 17:06:06

Perdon, Nociones basicas...
 
Hola comunidad, parece chistoso, pero tengo un error de kinder...

estoy realizando unos programas de consola en Delphi 4, debido a un curso de PSP(Personal Software Process) e hice un procedimiento, que a grandes rasgos es el siguiente....
Código Delphi [-]
unit {nombre};

interface

uses   ;
 
Procedure LeeMatriz({declaraciones});

var

Implementation
{$APPTYPE CONSOLE}

begin

     {Declaraciones
     ....
     Mas declaraciones}


end.

Procedure LeeMatriz({declaraciones});
begin
      {declaraciones}
end;
y me manda un error "Unsatisfied forward or external declaration 'LeeMatriz' "
como quien dice al parecer no estoy declarando el cuerpo del programa pero como se puede observar si esta, ahora si paso el codigo adentro del end. Me dice que 'declaration expected but Procedure found', y la verdad no se que es, obviamente he hecho programas con procedimientos, pero siempre siendo parte de una clase Form, para este caso si tuviera un form el cuerpo del programa que daria asi.

Procedure TfrmMatriz.LeeMatriz(<declaraciones>);
begin
<declaraciones>
end;

Pero entonces para programas sin formas pues no se como, alguien podria ilustrarme...agradecere sus respuestas...

marto 14-06-2004 17:14:16

Wop!

En primer lugar, pedirte que encierres tu código entre tags [delphi], ya que se sigue mucho mejor. Esta vez lo he hecho yo, pero espero que a partir de ahora lo hagas tu ;)

Sobre tu problema, fijate que la implementación de la función está después del "end.". Para delphi, despues del end "con punto" no existe nada, así que es como si no pusieses la implementación. Si te fijas, el compilador te tienes que estar dando un warning al respecto :)

__marcsc 14-06-2004 17:15:51

Hola,

lo que debe estar pasando es que el end con el punto final denota el final de la unit, y tu declaras el procedimiento después de esto y no lo encuentra. Yo creo que esto debería funcionar:

Código Delphi [-]
unit {nombre};

interface

uses   ;
 
Procedure LeeMatriz({declaraciones});

var

Implementation
{$APPTYPE CONSOLE}

Procedure LeeMatriz({declaraciones});
begin
      {declaraciones}
end;

begin

     {Declaraciones
     ....
     Mas declaraciones}


end.

Saludos.

JorgeBec 14-06-2004 17:22:15

Gracias a sus respuestas marcsc y marto, ha funcionado y he aprendido un poco mas , y a ti marto, procurare hacer lo de las etiquetas .

__cadetill 14-06-2004 17:25:25

cuando pones
Código Delphi [-]
interface
uses   ;
Procedure LeeMatriz({declaraciones});
Supongo que la declaración de este procedimiento está en la sección public, private, protected de la clase, no?

Si es así, en la implementation has de poner:
Código Delphi [-]
Procedure NombreClase.LeeMatriz({declaraciones});
begin
      {declaraciones}
end;
Espero que te sirva

marto 14-06-2004 20:27:45

Cita:

Empezado por cadetill
Supongo que la declaración de este procedimiento está en la sección public, private, protected de la clase, no?

Cadetill, me parece que la unit que nos manda es la del .dpr. Es una aplicación de consola a pelo, lo que pasa es que se ha olvidado de poner el "program"

Sirkius 14-06-2004 21:25:47

Yo mas bien creo que es una unit externa sin clase, solo procedimiento. Yo lo hago para procedimientos auxiliares que voy a usar en varios units

marto 14-06-2004 21:33:18

Cita:

Empezado por JorgeBec
estoy realizando unos programas de consola en Delphi 4

Cita:

Empezado por JorgeBec

Código Delphi [-]
Implementation
{$APPTYPE CONSOLE}

Dije que creía que era de consola por eso...


La franja horaria es GMT +2. Ahora son las 04:46:47.

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