View Full Version : استفاده مشروط از uses  در زمان اجرا
  
danesh1351
چهارشنبه 04 تیر 1393, 10:06 صبح
با سلام
میخواهم در یک فرم با توجه به شرایط زمان اجرا  از یک یونیت استفاده کنم .
مثلا اگر شرط برقرار شد   از Unit1  استفاده شود .
در ضمن در پیاده سازی هم لازمه همین شرط استفاده بشه .
لطفا برای uses   و  ÷یاده سازی راهنمائی کنید .
اگه نمونه کد باشه بهتره .
ممنون
یوسف زالی
چهارشنبه 04 تیر 1393, 10:58 صبح
سلام.
یوز شدن یا نشدن رو نمی تونید ران تایم کنترل کنید، این مساله در بیلد به برنامتون اضافه می شه.
می تونید از {IfDef$}  استفاده کنید و کنترل کنید که هنگام بیلد از چه یوزی استفاده بشه.
danesh1351
چهارشنبه 04 تیر 1393, 13:27 عصر
بهتر بگم 
از یک فرم که کلی امکتنات در اون گذاشتم در دو برنامه مجزا استفاده کردم .
مشکل اینجاست فرم در یک برنامه کار میکنه و در برنامه دیگه بخاطر عبارت uses UMainPers کار نمیکنه
pezhvakco
چهارشنبه 04 تیر 1393, 14:03 عصر
سلام
مشکل اینجاست فرم در یک برنامه کار میکنه و در برنامه دیگه بخاطر عبارت uses UMainPers کار نمیکنه
این عبارتی که نوشتین چی است و کجا نوشته شده ؟
اگه 2 تا برنامه جدا از هم است، پس ارتباطی به هم ندارند و این یونیت مورد نظر (UMainPers) باید در هر یونیتی که می خواهین اون رو بکار بگیرین Use بشه .
یوسف زالی
چهارشنبه 04 تیر 1393, 14:21 عصر
همون طور که توضیح دادم از دایرکتیو استفاده کنید.
1- یک یونیت به هر کدوم از برنامه هاتون اضافه کنید به نام CmpDir.pas، هر برنامه باید برای خودش در فولدر جداگانه این رو داشته باشه.
2- در CmpDir.pas برنامه اول بنویسید:
unit CmpDir;
interface
const
  ProjectName = 'Prog1';
implementation
end.
و در  برای برنامه دوم هم:
unit CmpDir;
interface
const
  ProjectName = 'Prog2';
implementation
end.
3- در یوز مورد نظرتون این طور عمل کنید:
uses
.
.
{$IF CmpDir.ProjectName = 'Prog1'}
  UnitA
{$ELSEIF CmpDir.ProjectName = 'Prog2'}
  UnitB
{$IFEND}
 
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.