2009-09-11 19 views
6

Bueno, este tipo de pregunta n00b, pero todavía no puedo resolverlo. Tengo la unidad main con el procedimiento Discard() en ella. Ahora tengo otra unidad engine y quiero ejecutar desde ella el procedimiento Discard() de la unidad main. Tengo principal en uses sección de engine.pas. Traté de llamar al procedimiento con main.Discard() pero no es bueno. ¿Qué estoy haciendo mal?¿Cómo ejecutar el procedimiento desde otra unidad?

Respuesta

5

que necesita para poner la firma del procedimiento en su interfaz, así:

unit main; 

interface 

procedure Discard(); 

implementation 

procedure Discard(); 
begin 
//do whatever 
end; 

Otras unidades sólo pueden "ver" lo que está enumerado en la sección de interfaz.

5

En la unidad "principal" se declara Descartar en la sección "interfaz":


unit Main; 

interface 

uses ... 

procedure Discard (...); // only the declaration, not the entire procedure 

implementation 

... // code 

ahora en la unidad de "motor" que añadir "Principal" a la sección "utiliza".

uses Main, ...

Eso es todo, puede llamar Discard(...) ahora. Si hay más de un Discard() puede llamar explícitamente al esteDiscard() usando Main.Discard().

+0

¡Gracias, muchachos! Funciona bien ahora – Vlad

Cuestiones relacionadas