PDA

View Full Version : مشکل با Global Type



samprp
شنبه 17 مرداد 1388, 13:38 عصر
با عرض سلام
این کدها تو فرم اول هستند:


interface
...
ttype
Ta=(f1, f2, f3);
TRecA= record
id:Integer;
aa: Ta;
end;

var
Form1: TForm1;
RecA1:TRecA;
A1:Ta;

و تو فرم دوم این کد ها نوشته شدن:


interface
...

var
Form2: TForm2;
RecA2:TRecA;
a2:Ta;
implementation

uses Unit1;

procedure TForm2.FormCreate(Sender: TObject);
var
RecA3:TRecA;
a3:Ta;
begin

end;


تو فرم دوم کد های قرمز شده خطا می گیرن ولی کدهای آبی بدون خطا اجرا می شن.
خیلی جستجو کردم ولی فایده ای نداشت.
دوستان مشکل چیه؟

vcldeveloper
شنبه 17 مرداد 1388, 17:20 عصر
بخاطر وجود uses Unit1 در بخش implementation یونیت دوم. وقتی شما Unti1 را به uses بخش implementation اضافه می کنید، فقط کدهای بخش implementation می تونند از کدهای unit1 استفاده کنند.

شما اگر میخواید هم در interface و هم در implementation از آن یونیت استفاده کنید، باید آن را به لیست uses بخش interface یونیت اضافه کنید.

samprp
شنبه 17 مرداد 1388, 18:57 عصر
بله و درست شد.
این دو تا USESچه فرقی با هم دارند؟

Felony
شنبه 17 مرداد 1388, 19:35 عصر
این دو تا USESچه فرقی با هم دارند؟
آقای کشاورز پاسخ شما رو دادن :

وقتی شما Unti1 را به uses بخش implementation اضافه می کنید، فقط کدهای بخش implementation می تونند از کدهای unit1 استفاده کنند.