PDA

View Full Version : تغییر در فالهای source دلفی



aliasghar
سه شنبه 01 اردیبهشت 1383, 00:54 صبح
سلام

من برای یک برنامه مجبور شدم از inputbox استفاده کنم ولی بعد از استفاده متوجه شدم که
فرم اون بصورت LeftToRight تنظیم شده در ضمن از فونت مورد نظر من هم استفاده نکرده
پس تصمیم گرفتم تغییرات لازم را خودم در این شی. بوجود بیارم

وقتی به سراغ source این شی رفتم تو فایل delphi7\source\dialogs.pas پیداش کردم که خودش تابع InputQuery را صدا زده بود ولی هر تغییری که در این فایل دادم و برنامه را دوباه compile کردم اصلا فایل مذکور compile نمیشد؟

پس تمام فایلهای dialogs را در شاخه دلفی serach کردم و فهمیدم که 2 تا از این فایل با پسوند dcu در مسیرهای زیر وجود دارد
1) delphi7\lib
2)delphi7\lib\Debug
اونها را پاک کردم که دلفی از فایلی که در مسیر source بود استفاده کنه ولی دیگه برنامه compile نشد و خطای پیدا نکردن فایل dialogs را میداد و من هم اجبارا" فایل dialogs.pas را از شاخص source به شاخه LIB کپی کردم.
این بار دیگه فایل هم compile میشد و من هم تغییرات را درون اون اعمال کردم و inputBox درست شد

حالا سوال اینه کار من اصولا درست بوده؟ و من اجازه تغییر در این فایل را داشتم یا نه؟
و اگه درست بوده ایا باید این فایل یعنی dialogs.pas را دوباره از مسیر LIB پاک کنم و dcu اون را در این مسیر بگذارم یا وجود این فایل در اینجا اشکالی ایجاد نمی کنه؟

moradi_am
یک شنبه 27 اردیبهشت 1383, 09:07 صبح
کسی جوابی به این سوال نداره ؟ اصولا چطور تغییرات در source را کامپایل کنیم منهم این مشکل را دارم.

JavanSoft
یک شنبه 27 اردیبهشت 1383, 12:43 عصر
در همین فروم آقای SyntaxCheck قبلا جواب داده است

moradi_am
یک شنبه 27 اردیبهشت 1383, 13:48 عصر
میشه آدرسش را بفرمایید ؟

aliasghar
دوشنبه 28 اردیبهشت 1383, 19:16 عصر
نمی دونم
ولی وقتی خوب فکر میکنم می بینم شاید تغییر در سورس فایلهای دلفی و کامپایل کردن اونها کار درستی نباشه
( با توجه به اینکه یه بار اینکار را انجام دادم :mrgreen: )
ولی راهی که به نظر من درستره override کردن پروسجر inputquery بود که توسط inputbox برای ساخت این کلاس صدا زده میشد
ولی متاسفانه این پروسجر بصورت override تعریف نشده بود

کسی راه حل دیگه ای بلد نیست؟

said ali
سه شنبه 29 اردیبهشت 1383, 16:08 عصر
با سلام
یه کپی از فایل مورد نظر رو تو دایرکتوری که داری کار میکنی بذار و از اون استفاده کن و یا تغییر بده و اصلا نیازی به استفاده و یا تغییر بقیه موارد نیست.
"در ضمن سورس رو دستکاری کردن مشکل داره. حرام است اقا نکنید :lol: :lol: :lol: "

aliasghar
سه شنبه 29 اردیبهشت 1383, 22:47 عصر
حرام است اقا نکنید

ببینم شما با سید علی بزرگ فامیل نیستی :wink:

Hidarneh
سه شنبه 29 اردیبهشت 1383, 23:52 عصر
یه راه حل برای کامپایل دستی ( که یه دفعه هم بدجوری بدرد من خورد و تا اونجایی که یادم میاد روی دلفی 4 بود ) استفاده مستقیم از کامپایلر است . در command prompt تایپ کنید dcc32

aliasghar
چهارشنبه 30 اردیبهشت 1383, 16:27 عصر
جالب بود ولی اگه بیشتر توضیح بدید خیلی بهتره
کامپایل مستقیم چی را کامپایل میکنه و چه مواقعی باید از این روش استفاده کرد؟

Hidarneh
چهارشنبه 30 اردیبهشت 1383, 17:36 عصر
همه چی رو و در حقیقت خود دلفی هم از این استفاده می کنه . من اون دفعه که گفتم واسه این ازش استفاده کردم که دلفی بالا نمی اومد ( کارت گرافیک نصب نبود و درایورش هم موجود نبود ) . ولی در کل مواقعی که بخوای یک فایل تنها رو کامپایل کنی مفیده .

Sepidar
چهارشنبه 30 اردیبهشت 1383, 18:17 عصر
ان الله جعل التوارث فی الاشیاء لهذه الامور 8)

said ali
دوشنبه 04 خرداد 1383, 12:05 عصر
با سلام
اولا سپیدار جون کلی خندیدم وقتی این رو خوندم :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol:
ثانیا این اقای سید علی بزرگ کی هستن بگید بفهمیم با کی قیاس شدم؟؟؟
ثالثا این کامپایل شدن یعنی چی میشه بیشتر توضیح بدین.

moradi_am
دوشنبه 04 خرداد 1383, 13:09 عصر
ان الله جعل التوارث فی الاشیاء لهذه الامور
انی لاادرک کیف استعمل التوارث فی تغییر فانکشن StrToInt بالطریقی هی یر جع 0 لهذه التابع :

ٍStrToInt('');
الان هی یرجع الپیغام الخطا !
تذکر: انا اعلم بالتابع StrTointDef

said ali
دوشنبه 04 خرداد 1383, 17:00 عصر
با سلام
"لا ادرک" کلمه خوبی نیست و بهتره به جای اون از "لا ادری" استفاده کنی چون تو اون کلمه یه جور تحقیر وجود داره.
بعد هم اول جای اون تابع رو پیدا کن بعد هم یه کپی از اون فایل بریز تو دایرکتوری خودت بعد یه سیو از کن . بعد تو اول تابع چک کن اگه اون استرینگ خالی بود استرینگ رو برابر صفر بزاره.
البته ممکنه سورس تابع در دست نباشه(از روی یه دی ال ال بخونه )در این صورت خودت یه فانکشن در دوخط بنویس که اول چک کنه و بعد هم بفرسته برای تابع StrToint . والسلام و یحفظکم الله جمیعا شماها رو من الاذیت و الازار دیگران.

aliasghar
دوشنبه 04 خرداد 1383, 18:28 عصر
فکر کن میفهمی کی را گفتم