ورود

View Full Version : یک اتفاق جالب در دلفی



fahimi
جمعه 27 شهریور 1388, 16:04 عصر
من برنامه ای را در دلفی 2009 نوشتم مجبور شدم به خاطرنداشتن بعضی کامپنونت ها آن برنامه در دلفی 6 ادامه دهم بعد از این کار کلیه editbox ,button,checkbox و غیره بصورت xp در امده است در حالی این حالت از دلفی 7 به بعد با اضافه کردن xpاتفاق می افتاد

AliReza Vafakhah
جمعه 27 شهریور 1388, 16:51 عصر
اصلا این کار شدنی نیست !

خودم که اوایل دلفی 7 رو یاد گرفتم بعد به دلفی 2007 پرش کردم نمی تونستم پروژه های دلفی 2007 را در دلفی 7 باز کنم و این امر باعث هنگ دلفی 7 می شود

حالا نمی دونم شما چه طوری از دلفی 2009 به دلفی 6 پرش کردید !!!

Felony
جمعه 27 شهریور 1388, 17:04 عصر
تو برنامتون ببینید یونیت XPMan اضافه نشده ؟

vcldeveloper
جمعه 27 شهریور 1388, 18:19 عصر
اصلا این کار شدنی نیست !
فایل نوشته شده با دلفی 2009 بدون مشکل در دلفی 7 باز میشه. البته اگر از کدهایی استفاده کنید که در نسخه های جدیدتر اضافه شدند، کامپایل نمیشه.


من برنامه ای را در دلفی 2009 نوشتم مجبور شدم به خاطرنداشتن بعضی کامپنونت ها آن برنامه در دلفی 6 ادامه دهم بعد از این کار کلیه editbox ,button,checkbox و غیره بصورت xp در امده است در حالی این حالت از دلفی 7 به بعد با اضافه کردن xpاتفاق می افتاد
بخاطر اینکه Manifest مربوطه همچنان بصورت Resource در پروژه وجود داره. در دلفی 2009 در Project Options در صفحه مربوط به Application، گزینه مربوط به فعال کردن Theme را غیرفعال کنید، و پروژه را کامپایل کنید، بعد به دلفی 7 ببرید. یا اینکه ریسورس مربوطه را از داخل فایل ریسورس مربوط به پروژه حذف کنید.

fahimi
جمعه 27 شهریور 1388, 21:28 عصر
چطور میشود Manifest مربوطه را بصورت دستی به Resource پروژه اضافه کرد

fahimi
جمعه 27 شهریور 1388, 22:09 عصر
این دو فایل را از دلفی 2009 به به دلفی 6 کپی کردم

C:\Program Files\Borland\Delphi6\Lib\WindowsXP.res
C:\Program Files\Borland\Delphi6\Source\Vcl\XPMan.pas

به این صورت xpman را use کردم و xpman در دلفی 6 فعال شد
unit XPMan;

{$WEAKPACKAGEUNIT ON}

interface

uses
{$IF DEFINED(CLR)}
System.ComponentModel.Design.Serialization,
{$IFEND}
SysUtils, Classes;

type
TXPManifest = class(TComponent)
end;

{$IF DEFINED(CLR)}
{$R Borland.Vcl.WindowsXP.res}
{$ELSE}
{$R WindowsXP.res}
{$IFEND}

implementation

end.

vcldeveloper
جمعه 27 شهریور 1388, 23:48 عصر
چطور میشود Manifest مربوطه را بصورت دستی به Resource پروژه اضافه کرد
Manifest مربوطه یک سند ساده XML هست که بصورت Resource کامپایل میشه و به فایل EXE پیوست میخوره.

AliReza Vafakhah
شنبه 28 شهریور 1388, 00:08 صبح
خوب چه جالب من فکر کردم مثل دلفی 7 به 2007 هست

fahimi
دوشنبه 06 مهر 1388, 19:22 عصر
Manifest مربوطه یک سند ساده XML هست که بصورت Resource کامپایل میشه و به فایل EXE پیوست میخوره.
بعد از کامپایل پروژه در دلفی 6 بعضی اوقات هنگام خروج از برنامه ویندوز با خطا
Access violation at address 5AD71531 in module 'UXTheme.dll'. Read of address 00000040

مواجه میشود برنامه در رایانه های دیگر هم این مشکل را ایجاد میکند

vcldeveloper
دوشنبه 06 مهر 1388, 23:13 عصر
بعد از کامپایل پروژه در دلفی 6 بعضی اوقات هنگام خروج از برنامه ویندوز با خطا
Access violation at address 5AD71531 in module 'UXTheme.dll'. Read of address 00000040

مواجه میشود برنامه در رایانه های دیگر هم این مشکل را ایجاد میکند
فایل Resource همراه پروژه (با پسوند res)، و فایل های DCU تولید شده را حذف کنید، پروژه را یک بار Build کنید.