View Full Version : resourcestring چیست ؟
www2006
سه شنبه 28 آذر 1385, 20:53 عصر
سلام
تو یکی از دمو های دلفی (RichEdit) یکسری از رشته های ثابت رو اینطور تعریف کرده :
resourcestring
sSaveChanges = 'Save changes to %s?';
sOverWrite = 'OK to overwrite %s';
sUntitled = 'Untitled';
sModified = 'Modified';
sColRowInfo = 'Line: %3d Col: %3d';
میخواستم بپرسم که این نحوه ی تعریف رشته های ثابت چه مزیتی نسبت به تعریف با const داره ..؟
سوال دوم : 's%' که در انتهای sSaveChange و sOverWrite نوشته شده است چه تاثیری دارد ..؟
با تشکر ...
vcldeveloper
پنج شنبه 30 آذر 1385, 08:52 صبح
resourcestring ها رشته های ثابتی هستند (مثل بخش const) که بصورت resource در فایل اجرایی ذخیره میشند، در نتیجه میشه اونها رو بعدا بدون نیاز به کامپایل مجدد برنامه تغییر داد.
عبارت s% در انتهای برخی از اون رشته ها به این دلیل استفاده شده در جایی از کد از اون رشته به عنوان قالب متن برای تابع Format استفاده شده. در خروجی تابع Format عبارت s% با یک رشته دیگه، که به عنوان پارامتر به تابع Format ارسال میشه، تعویض میشه.
www2006
پنج شنبه 30 آذر 1385, 15:51 عصر
resourcestring ها رشته های ثابتی هستند (مثل بخش const) که بصورت resource در فایل اجرایی ذخیره میشند، در نتیجه میشه اونها رو بعدا بدون نیاز به کامپایل مجدد برنامه تغییر داد.
اینکه "بعدا بدون نیاز به کامپایل مجدد میشه اونها رو تغییر داد" رو میشه بیشتر توضیح بدین ...
مگه میتونیم سورس یک برنامه رو تغییر بدیم ولی برنامه رو کامپایل نکنیم ..؟ در اینصورت فایل exe ساخته نمیشه .. ( یا اگر قبلا ساخته شده باشه ، تغییرات اخیر در اون اعمال نمیشود ) ..
( البته این پیش فرضی است که من در باره ساخت فایل exe دارم )
با تشکر ..
vcldeveloper
شنبه 02 دی 1385, 08:48 صبح
Resource ها رو میشه در یک فایل EXE تغییر داد، فقط کافیه یک برنامه کار با resource داشته باشید؛ مثل ResHacker.
البته می تونید reousrce ها را در DLL های مختلف هم قرار بدید. مثلا Reousrce های مربوط به زبان فارسی رو در یک DLL و مربوط به انگلیسی رو در DLL دیگه ایی با همون نام ذخیره کنید و هر کدوم از این DLL ها را متناسب با نوع زبان کاربر به همراه برنامه تون نصب کنید.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.