nit udc_class_f;
interface
1) uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, Mask, DB, DBTables, udc_date;
...
implementation
2) uses syslib;
{$R *.dfm}
위의 1), 2)번의 uses 에 쓰이는 유닛의 차이가 무엇인가요?
부탁드립니다
별다른 차이는 없습니다.
interface 절에 쓰면, interface 절에서 포함시킨 유닛의 클래스 및 상수 또는 새로운 형들을 사용할 수 있게 됩니다. 예를 들면, 새로 정의할 클래스나 함수에서 사용하는 클래스나 데이터형이 AUnit 이라는 유닛에 들어 있다면, interface 절의 uses 절에 AUnit 를 포함해야만 하죠. 우리가 폼을 새로 만들면, 새로 만든 폼은 TForm에서 상속을 받게 되는데, TForm이 Forms 이라는 유닛에 있기 때문에, Interface의 uses에 Forms 유닛을 포함시키게 되는것과 마찬가지죠.
이 때, 주의하실 점이라면, 서로 다른 두 유닛들이 서로를 uses 절에 포함시키려 할 때입니다. 이 때, 한쪽에서 interface절에 uses 했다면, 다른 유닛에서는 implementation에 uses를 시켜야 에러가 나지 않습니다.
2) 번의 syslib라는 유닛이 interface절에서는 굳이 필요가 없기 때문에, implementation 절에서 uses를 한 것이겠죠. ^^;