2013-05-13 9 views
5

Jak mogę złożyć oświadczenie dotyczące procedury w Delphi i dokonać jej wdrożenia w innym miejscu? Chcę zrobić coś takiego kodu w języku C, ale w Delphi:Przekazanie deklaracji procesowej w delphi

void FooBar(); 

void FooBar() 
{ 
    // Do something 
} 
+2

Dlaczego nie zwróciłeś uwagi na deklarację w dokumentacji? –

+1

@DavidHeffernan: Najprawdopodobniej, gdyby wiedział, czego szukać, nie musiałby tego sprawdzać. Wygląda na to, że jego doświadczenie jest z C, które nie ma słowa kluczowego "forward" lub czegoś podobnego. –

+2

@MasonWheeler Ponownie przeczytaj temat pytania. Wpisz go w wyszukiwarkę docd Delphi. Oto, co się dzieje: http://docwiki.embarcadero.com/Search/?cx=0017879905796164350846%3Ad3x3zsyivu0&cof=FORID%3A9&ie=UTF-8&lr=lang_en&q=forward+declaration+ofrocedure+w+delphi&sa=Go&siteurl=docwiki. embarcadero.com% 2FRADStudio% 2FXE4% 2Fen% 2FMain_Page & ref = docs.embarcadero.com% 2Fproducts% 2Frad_studio% 2F & ss = 160j25600j2 Powinniśmy zachęcać ludzi do korzystania z dokumentacji. Twoja odpowiedź powinna zawierać odniesienie do dokumentacji. –

Odpowiedz

16

to zrobić z dyrektywą forward, tak:

procedure FooBar(); forward; 

... 
//later on 

procedure FooBar() 
begin 
    // Do something 
end; 

Jest to konieczne tylko jeśli jesteś deklarując ją jako funkcję wewnętrznego. (tj. już wewnątrz sekcji implementation Twojej jednostki.) Wszystko, co zostało zadeklarowane jako metoda klasy, lub w sekcji interface jednostki, jest automatycznie rozumiane jako zadeklarowane do przodu.

+0

Dzięki, to zadziałało. – Seatless

5

Oto jeden sposób to zrobić za pośrednictwem strony interfejsu/realizacji jednostki.

Unit YourUnit; 

Interface 

    procedure FooBar(); // procedure declaration 


Implementation 

// Here you can reference the procedure FooBar() 

procedure FooBar(); 
begin 
    // Implement your procedure here 
end; 

Należy również spojrzeć do dokumentacji o forward declarations, gdzie inna opcja jest wymieniony, jak @MasonWheeler odpowiedział.

Powiązane problemy