Hola Panteon,
¿Eres nuevo en Delphi?
Lo mejor que puedes hacer para ir entendiendo el tema de la estructura de una unit es leer la cara oculta, disponible en el FTP del club.
En forma simple una unit se compone de 5 secciones, 3 de ellas son necesarias, las otras 2 opcionales.
La primera sección es la cabecera y contiene el nombre de la unit. Por ejemplo:
Seguidamente le sigue en orden, la seccion interface. En ella se pone todo lo que será de acceso público a las demás unidades que hagan uso de ella.
Pero he aqui que no va nada de código, por tanto esta sección es a nivel declarativa.
Dentro de esta sección pueden figurar en orden:
uses
constantes
tipos
variables
Un ejemplo es este:
Código Delphi
[-]interface
uses
Unit1, Unit2;
const
UNA_CONSTANTE = 3254;
type
TArray = array[1..UNA_CONSTANTE] of string;
var
MiArray: TArray;
En el caso de unit para los formularios te encuentras con algo como esto:
Código Delphi
[-]interface
uses
Windows, .... etc ...;
type
TForm1 = class(TForm);
...
end;
var
Form1: TForm1;
luego sigue la sección implementation. Y es aquí donde se encuentra el código. Por tanto todos los métodos, funciones y/o procedimientos que declares en interface deben tener su correspondiente código en implementation. Todo lo que de declare en Implementation es privado: no se da a concer al exterior (a otras unit).
De igual manera, en implementation también podemos tener:
uses
constantes
tipos
variables
La diferencia será que no será vistos desde afuera.
Cuando tu creas un método o evento (por ejemplo la pulsación de un botón) en la sección interface encontrarás algo como esto:
Código Delphi
[-]
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
public
end;
Si te fijas, no hay código alguno. Sólo aparece la declaración del evento.
Y en la sección implementation figura algo como esto:
Código Delphi
[-]
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
end;
Es aquí donde se colocará el código.
El problema tuyo está en que tienes en la sección implementation el "cuerpo" pero en interface no figura la declaración.
Como dice Neftali eso se soluciona borrando toda refencia al evento en cuestión y volviendo a pulsar en el evento OnClic de botón.
Espero que se entienda.
Saludos,