PDA

View Full Version : فوري:خطا در اجراي برنامه در دلفي2009



maisam57
سه شنبه 01 بهمن 1387, 07:58 صبح
با سلام
من اين پروژهها رو توي دلفي7 به راحتي اجرا ميكردم حالا كه توي دلفي2009 باز ميكنم براي برنامه date اونطوري و براي function كپي خطا ميگيره

maisam57
سه شنبه 01 بهمن 1387, 16:56 عصر
از دوستان كسي نيست كمك كنه!

vcldeveloper
سه شنبه 01 بهمن 1387, 17:12 عصر
بخاطر اینکه دارید از TSHFileOpStructA استفاده می کنید، که با توجه به حرف A در آخر آن، یک ساختار داده ANSI هست، ولی در کدتان از PChar استفاده می کنید که در دلفی 2009 به نوع داده WideChar ارجاع داده میشه، نه AnsiChar.

راه حل:
1- بجای استفاده از نسخه اختصاصی ANSI، از نسخه عمومی ساختار داده مربوطه استفاده کنید، تا در هر نسخه از دلفی، خودش بطور خودکار آن را به نسخه اختصاصی مربوطه ارجاع دهد:

var
shellInfo : TSHFileOpStruct;
کد بالا در دلفی 2009 به TSHFileOpStructW ارجاع داده میشه، و در نسخه های قدیمی تر به TSHFileOpStructA.

maisam57
چهارشنبه 02 بهمن 1387, 09:01 صبح
سوال من دو بخش بود اگه ممكنه بخش دومم جواب بديد من از يك يونيت تاريخ استفاده ميكردم كه از همين سايت برداشتم و توي دلفي 7 كار ميداد ولي الان كه توي دلفي2009 باز ميكنم كاراكترها بصورت ناخانا نشون ميده
در ضمن سورسو (DATE.RAR)بالا گذاشتم

maisam57
چهارشنبه 02 بهمن 1387, 11:31 صبح
دوستان اگه ممكنه سورسو توي دلفي2009 باز كنيد خيلي بهش احتياج دارم

vcldeveloper
چهارشنبه 02 بهمن 1387, 12:09 عصر
من از يك يونيت تاريخ استفاده ميكردم كه از همين سايت برداشتم و توي دلفي 7 كار ميداد ولي الان كه توي دلفي2009 باز ميكنم كاراكترها بصورت ناخانا نشون ميده
بخاطر اینکه کدهای موجود در اون یونیت با دلفی 2009 سازگار نیستند؛ مثلا در کدهای آن طول هر کارکتر 1 بایت فرض شده، در حالی که در دلفی 2009 طول هر کارکتر 2 بایت هست. اون کد با همین پیش فرض ها محاسباتی انجام داده که مسلما با غلط بودن پیش فرض محاسبه هم غلط از آب در میاد. می تونید به سایت نویسنده یونیت (آقای سالار خلیلی) مراجعه کنید، یا باهاش از طریق ای میل تماس بگیرید و ازش بپرسید آیا نسخه ایی برای دلفی 2009 در دست تهیه داره یا نه، و اگر نداره، آیا شما اجازه دارید کدش را ویرایش کنید یا نه.

Naruto
جمعه 04 بهمن 1387, 02:03 صبح
سلام.
متغیری از نوع Pchar را چطور تو MessageBox نمایش بدیم؟(2009)