رهنمودهای کامپایلر دلفی - نسخه قابل چاپ +- Parsi Coders (http://parsicoders.com) +-- انجمن: Software Development Programming (http://parsicoders.com/forumdisplay.php?fid=37) +--- انجمن: Pascal/Delphi (http://parsicoders.com/forumdisplay.php?fid=45) +---- انجمن: Delphi (http://parsicoders.com/forumdisplay.php?fid=69) +---- موضوع: رهنمودهای کامپایلر دلفی (/showthread.php?tid=8) |
رهنمودهای کامپایلر دلفی - Amin_Mansouri - 04-15-2011 مقدمه اگر برنامه و طرحی برای نوشتن کد دلفی دارید که میبایست با نسخههای مختلف کامپایلر دلفی کار کند، باید بدانید که تحت کدام نسخه از کامپایلر دلفی کدتان کامپایل خواهد شد. فرض کنید یک کامپوننت شخصی-تجاری برای خودتان مینویسید. ممکن هست کاربران کامپوننت شما نسخههای متفاوتی از دلفی را داشته باشند و اگر آنها سعی کنند کد کامپوننت را دوباره کامپایل کنند، احتمالاً به دردسر خواهند افتاد. فرضاً اگر شما در یکی از توابع از پارامتری با مقدار پیشفرض استفاده کرده باشید و کاربر، کامپوننت شما را در دلفی3 کامپایل کند، با خطایی متوقف میشود به این دلیل که دلفی 3 پارامتر با مقدار پیشفرض را پشتیبانی نمیکند. رهنمودهای کامپایلر این امکان را به شما خواهند داد تا بتوانید اطلاعاتی از این قبیل را در زمان کامپایل بدست آورید. رهنمود کامپایلر یک توضیح یا comment با ترکیبی خاص هست. محل قرارگیری رهنمودهای کامپایلر میتواند در هرجایی که یک توضیح یا comment قرار میگیرد باشد. رهنمود کامپایلر با یک علامت $ بعد از بازکردن comment آغاز میشود و بدون فاصله بعد از آن نام رهنمود قرار میگیرد. انواع directiveها کامپایلر دلفی دارای سه نوع رهنمود یا directive هست Switch directives تغییر ویژگی خاصی از کامپایلر که میتواند On یا Off باشد، مانند : $D+ یا $D-، کامپایلر دلفی به صورت معمول اطلاعاتی را جهت رفع مشکل یا Debug برنامه تولید میکند که شامل جدول شمارهی خط برای هر متد هست و این اطلاعات باعث مصرف حافظه و حجیم شدن یونیت میشود(البته تاثیری روی حجم و سرعت فایل اجرایی ندارد).با غیر فعال کردن این ویژگی توسط رهنمود کامپایلر -D$ میتوان از تولید این اطلاعات و صرف زمان برای تولید این اطلاعات جلوگیری کرد. نمونه، این رهنمود به کامپایلر میگوید که پیغامهای Warning Messages را تولید نکند: کد: {WARNINGS OFF$} کد: {RUNONLY ON$} این رهنمودها پارامترهایی را مشخص میکنند که روی کامپایل تاثیر گذارند، مانند سایز حافظه، یا نام فایل. نمونه، که حداقل و حداکثر سایز Stack را مشخص میکند : کد: {M 16384,1048576$} رهنمودهای شرطی یا Conditional directives به ما اجازه میدهند تا بخش خاصی از کد را که شرط تعیین میکند، کامپایل کنیم. رهنمود کامپایلر IfDef$ یک بخش کامپایلشدنی شرطی را شروع میکند که این بلوک میتواند به صورت ساده با یک EndIf$ خاتمه یابد یا اینکه در داخل آن از یک Else$ نیز استفاده کرد. Syntax آن شبیه زیر است : کد: {$IfDef DefName} DefName به اصطلاح نماد شرطی را نمایش میدهد. دلفی چندین نماد شرطی استاندارد را تعریف کرده است. در کد بالا اگر DefName تعریف شده باشد، کد بالای Else$ کامپایل خواهد شد. Delphi Version Symbols بیشترین استفاده از رهنمود IfDef$ برای تست نسخهی کامپایلر دلفی هست. لیست زیر، نمادهایی از نسخههای مختلف دلفی هست که میتوان برای چک کردن یک کد: نسخهی خاص از آنها استفاده کرد : کد: {$IFDEF VER130} |