# Native Code > برنامه نویسی در Delphi > برنامه نویسی در Delphi Prism >  CodeGear RAD Studio :: Delphi 2007

## Inprise

- این تاپیک محل جمع آوری لینکها و مطالب مربوط به مسئلهء انتقال محصولات بورلند به CodeGear و همینطور معرفی محیط دلفی 2007 و قابلیتها و ...لینکهای مربوطه است . فعلا فقط مدیران بخش میتوانند مطلبی ارسال کنند . اینجا به مرور تکمیل میشود .

آپدیت :

- لیست مطالب یا مقاله هائی که به Indy و Intraweb مربوط است را به این تاپیک اضافه کنید ترجیحا با توضیح . 
- اگر کسی علاقه مند بود که در مورد توسعه وب سرویس با دلفی و همینطور قابلیتهای جدید Intraweb مطلبی بنویسه با یکی از مدیران بخش تماس بگیره .

----------


## Inprise

- برای خرید Delphi for PHP 1.0 و همینطور Delphi 2007 Enterprise Edition با فروشگاه برنامه نویس تماس بگیرید .

----------


## Inprise

ویژگیهائی که بعد از دلفی 7 تا امروز ، به IDE دلفی اضافه شده اند  :
http://dn.codegear.com/article/34323

ویژگیهائی که بعد از دلفی 7 تا امروز ، به VCL اضافه شده اند :
http://dn.codegear.com/article/34325

ویژگیهائی که بعد از دلفی 7 تا امروز ، به کامپایلر دلفی اضافه شده اند :
http://dn.codegear.com/article/34324

ویژگیهائی که بعد از دلفی 7 تا امروز ، به دیباگر دلفی اضافه شده اند  :
http://blogs.codegear.com/ChrisHesik.../13/33946.aspx

----------


## Inprise

دلفی از InstallAware به عنوان Installer استفاده میکند و توسعه گران دلفی هم توصیه میکند از این محصول - که با دلفی نوشته شده - استفاده کنند . نسخه آزمایشی اش را از اینجا بگیرید و برای تهیهء Admin Studio - کاملترین نسخه اش - با فروشگاه برنامه نویس تماس بگیرید .

----------


## Inprise

.  
                                                                           .

----------


## m-khorsandi

سیستم مورد نیاز :
512 مگابایت رم - 1 گیگابایت توصیه می‌شود.
1.5 گیابایت فضای آزاد روی هارددیسک برای Delphi for Win32
750 مگابایت فضای آزاد روی هارددیسک برای نصب پیش‌نیازها.

پردازنده :
اینتل، پنتیوم 4، 2 گیگاهرتز پیشنهاد می‌شود.

ویندوز :
مایکروسافت ویندوز ویستا(با دسترسی Administrator)
مایکروسافت ویندوز سرور 2003 با سرویس پک 1
مایکروسافت ویندوز XP با سرویس پک 2
ویندوز 2000 Professional  با سرویس پک 4
ویندوز 2000 Server  با سرویس پک 4

دلفی 2007 تعدادی پیش‌نیاز را لازم دارد :



برنامه‌ی نصب کننده‌ی دلفی، این موارد (پیش نیازها) را قبل از نصب دلفی چک می‌کند و در صورتی که وجود نداشته باشند، با توجه به شرایط آنها را دانلود و نصب می‌کند. می‌توانید با دانلود(یا به هر روش دیگری) ، پیش نیازها را تهیه و نصب کنید تا چند گام جلوتر باشید.

Delphi 2007 دارای دو نسخه Professional و Enterprise هست :

----------


## m-khorsandi

*Nested Classes* – کلاس‌های تو در تو
با استفاده از این مفهوم می‌توان کلاس(هایی) را داخل کلاس دیگری تعریف کرد. معرفی بدنه‌ی Nested Class به صورت معمول انجام می‌شود و با رسیدن به تعریف اولین Procedure، Function، Class یا نوع، این تعریف خاتمه پیدا می‌کند. قوانین دستیابی معمول برای تمام کلاس‌ها در مورد Nested Class نیز استفاده می‌شود. یک Nested Class می‌تواند به متغیرها، فیلدها و متدهای معمولی موجود در کلاسی که در آن تعریف شده، دسترسی داشته باشد اگر که یک شیئ از آن کلاس ساخته شده باشد. یک Nested Class می‌تواند به Class Field، Class Property، Class Method و Class Static Methodهای کلاسی که در آن قرار دارد، دسترسی داشته باشد. Nested Class، سایز کلاسی که در آن قرار دارد را افزایش نمی‌دهد. ایجاد یک شیئ از کلاس اصلی به معنی ایجاد یک شیئ از Nested Class نیست.

برای تعریف Nested Class می‌بایست از کلمه‌ی کلیدی type استفاده شود :


type
  TOuterClass = class
   strict private
     myField: Integer;
   public
      type
      TInnerClass = class
      public
         myInnerField: Integer;
         procedure innerProc;
      end;
     procedure outerProc;
  end;


برای پیاده‌سازی متد innerproc باید نام کلاس اصلی(یعنی TOutterClass) و نام Nested Class را بیاورد :

procedure TOuterClass.TInnerClass.innerProc;
begin
   ...
end;


برای دستیابی به اجزاء یک Nested Class یا ایجاد یک شئی از یک Nested Class می‌بایست ابتدا نام کلاس اصلی و سپس نام Nested Class را بیاورید:

var
   x: TOuterClass;
   y: TOuterClass.TInnerClass;

begin
   x := TOuterClass.Create;
   x.outerProc;
   ...
   y := TOuterClass.TInnerClass.Create;
   y.innerProc;
end;



*Class Constant* – ثابتهای درون کلاس
در دلفی 2007، کلاس‌ها دارای قابلیت جدیدی به نام Class Constant شده‌اند. اگر مفهوم Class Var یا Class Method را درک کرده باشید، مفهوم Class Constant برایتان ساده خواهد بود. زمانی‌که یک Class Const را تعریف می‌کنید، این ثابت در اختیار یک شیئ از آن کلاس نخواهد بود بلکه این ثابت را می‌توانید توسط خود کلاس استفاده کنید:

تعریف Class Constant :

type
  TClassWithConstant = class
    public 
      const SomeConst = 'This is a class constant';
  end;

استفاده از Class Constant با ذکر نام کلاس :

procedure TForm1.FormCreate(Sender: TObject);
begin
  ShowMessage(TClassWithConstant.SomeConst);
end;


و اگر Class Const تعریف شده را به صورت زیر به کار ببرید با خطا روبرو خواهید شد:


procedure TForm1.FormCreate(Sender: Tobject);
var
   TestObject: TClassWithConstant;
begin
   TestObject := TClassWithConstant.Create;
   ShowMessage(TestObject.SomeConst);   
end;

----------


## Inprise

DelphiSpeedUp IDE plugin for Delphi 2007

----------


## m-khorsandi

GExperts is a set of tools built to increase the productivity of Delphi and C++‎Builder programmers by adding several features to the IDE.  GExperts is developed as Open Source software we encourage user contributions to the project

GExpert for CodeGear Delphi 2007

----------


## m-khorsandi

*Themed Application*

تمام برنامه‌های VCL به صورت پیش‌فرض دارای Theme هستند. برنامه‌های موجود از قبل، وقتی به محیط دلفی 2007 وارد می‌شوند، بدون Theme هستند، اما خیلی راحت می‌توان با استفاده از منوی Project|Options|Application|Enable Runtime Theme این قابلیت را برای آنها در نظر گرفت. IDE دلفی توسط این قابلیت، یک فایل Manifest را به ریسورس‌های پروژه تزریق می‌کند.



*Refactoring*

Safe Delete
اگر قصد حذف عنصری را دارید، این گزینه کدتان را برای هر استفاده‌ای از این عنصر جستجو می‌کند و اگر از عنصر مربوطه در جایی استفاده نکرده باشید می‌توانید آن را حذف کنید و اگر هم استفاد کرده باشید، لیستی از موارد استفاده در اختیار شما قرار می‌دهد، که می‌توانید در مورد حذف عنصر تصمیم‌گیری کنید.

عنصری که می‌خواهید حذف کنید را انتخاب کنید، از منوی اصلی Refactoring -> Safe Delete یا روی عنصر مورد نظر کلیک راست کنید و از منویی که باز می‌شود Refactoring -> Safe Delete را انتخاب کنید. موقعی می‌توانید از این Refactoring استفاده کنید که مدلی از برنامه‌ی شما توسط Together ساخته شده باشد. به غیر از Code Editor دلفی، همچنین این خاصیت را می‌توانید در Model View یا Diagram View به کار ببرید.


Inline Variable
اگر در متد، Procedure یا Functionیی از یک متغیر موقتی استفاده کرده‌اید که فقط یکبار یک مقدار ساده به آن تخصیص می‌دهید، می‌توانید همه‌ی ارجاعات به آن متغیر را با مقدار مورد نظر جایگزین کنید. این متغیر نباید در طول برنامه مقادیر مختلفی را دریافت کند. متغیر را از درون قسمت begin و end می‌بایست انتخاب کنید و نه در جایی که تعریف شده ست. 
متغیر را انتخاب کنید، از منوی Refactoring -> Inline Variable یا روی متغیر کلیک راست کنید و Refactoring -> Inline Variable را انتخاب کنید. پیغامی با مضمون نام متغیر و تعداد دفعاتی که مورد استفاده قرار گرفته نمایش داده می‌شود. اگر قصد تغییر کد را دارید، دکمه‌ی Ok را فشار دهید، می‌بینید که تعریف متغیر و مقداردهی متغیر حذف می‌شود و در هر جایی که از متغیر استفاده شده، عدد مورد نظر جایگزین می‌شود.

یک مثال ساده :

procedure TForm1.Button3Click(Sender: TObject);
var
  i: integer;
begin
*  i := 10;*

  Caption := IntToStr(i);
  showmessage(IntToStr(i));
end;


کد بالا بعد از استفاده از Inline Variable به شکل زیر تغییر می‌کند :


procedure TForm1.Button3Click(Sender: TObject);
begin
  Caption := IntToStr(*10*);
  showmessage(IntToStr(*10*));
end;

----------


## m-khorsandi

*در حاشیه*

*Compiler Version*
دلفی 2007 یک انتشار  non-breaking هست و برای ادامه‌ی سازگاری با دلفی 2006، از تگ VER180 استفاده می‌کند و بعد VER185، که لزوماً مخصوص اهداف مورد نیاز دلفی 2007 هست، اضافه شد. در واقع می‌توان گفت که تگ‌های مورد استفاده در دلفی 2007 هم VER180  هم VER185 هست. خوب، بر طبق برنامه‌ی CodeGear یک BDS یا CDS (که اختصار CodeGear Studio هست) در سال بعد با نام Highlander تولید می‌شود. در جهت کم کردن زحمت برنامه‌نویسان و تولید کنندگان کامپوننت‌های خارجی به خاطر ارائه‌ی دو نسخه کامل دلفی در کمتر از یک سال، CodeGear تصمیم به انتشار دلفی 2007  به صورت یک نسخه‌ی non-breaking گرفت. نتیجتاً، می‌توانید از کدها و کامپوننت‌هایی که برای  BDS 2006 یا Turbo Delphi 2006 طراحی و کامپایل شده‌اند بدون هیچ کامپایل مجددی استفاده کنید. در دلفی 2008  یا همان Highlander، احتمالاً به دلیل اینکه یک انتشار breaking هست، این تگ به VER190 تبدیل خواهد شد. 

*Breaking and non-breaking release*
اگر بخش Interface یک یونیت مانند تعریف کلاس‌ها یا متدها تغییر کند اصطلاحاً یک تغییر breaking انجام شده و در غیر اینصورت یک تغییر non-breaking صورت گرفته ست. این دو اصطلاح به سازگاری یونیت‌ها از یک نسخه به نسخه‌ی دیگر مربوط هست. دلفی 2007، non-breaking هست، یعنی اینکه فایل‌های dcu از دلفی 2006 به 2007 کار خواهند کرد یعنی قرار هست که جا به جایی از دلفی 2006 به دلفی 2007 به راحتی و بدون مشکل انجام شود.

----------


## Inprise

*Castalia v5.0.75.11 For Delphi با حمایت از دلفی 2007*

http://www.twodesk.com/castalia/whatsnew-v5.html

----------


## m-khorsandi

*موارد جدید در IDE*

به صورت کلی، IDE دلفی خیلی زیبا و سریع شده، برای مثال، سوییچ کردن بین محیط Debug و Desgin در دلفی 2006 کاملاً مشهود هست و می‌توانید این چشمک زدن‌ها را به راحتی ببینید، در صورتیکه در محیط دلفی 2007، این مسئله به حداقل رسیده است.

*New Welcome page*
در دلفی 2007 یک صفحه‌ی خوش‌آمد گویی جدید توسط دنیل "سکورا" ویشنیوسکی ایجاد و جایگزین همین صفحه در دلفی 2006 شده ست. این صفحه، 5 پروژه‌ی آخر، که با آنها کار کرده‌اید را نمایش می‌دهد، اما می‌توانید تعداد پروژه‌هایی که در این صفحه قرار می‌گیرند را خودتان تعیین کنید.

*Tool Palette*
در دلفی 2006، وقتی از فیلترینگ روی Tool Palette استفاده می‌کنید و فرضاً تایپ می‌کنید bu تمام کامپوننتهایی که با bu شروع می‌شوند را برایتان لیست می‌کند. به این دلیل که برای Tool Palette فقط کاراکترهای شروع کامپوننت‌ها مهم هستند. اما در دلفی 2007، این رفتار Tool Palette، بهینه شده ست. وقتی با استفاده از فیلترینگ Tool Palette شروع به جستجوی کامپوننت‌ها می‌کنید، Tool Palette، تمام کامپوننت‌هایی که نامشان شامل کاراکتر تایپ شده باشد را لیست می‌کند.


*Notify on language exceptions*
همیشه برای فعال و غیرفعال کردن خطاها و بازگشت به محیط دلفی از مسیر Tools -> Options -> Debugger Options -> Language Exceptions استفاده می‌کردید، اما حالا کافی‌ست دکمه‌ی Toggle Notify on Language Exceptions به Toolbar دلفی اضافه کنید، تا امکان فعال و غیر فعال کردن خطاهای زمان اجرا در اختیارتان باشد.

*Filer Browse*
یک File Browser جدید و سهل‌الاستفاده نیز به محیط دلفی اضافه شده ست که شبیه به یک Explorer کوچک عمل می‌کند و نیاز به یک Explorer خارج از دلفی یا استفاده‌ از File -> Open را کاهش می‌دهد. و البته dockable هم هست و به صورت شناور هم می‌تواند در هرجایی باشد. ولی از تمام قابلیت‌های Shell بهره نمی‌برد، برای مثال با کلیک راست، تمام گزینه‌های استاندارد در Explorer را در اختیارتان نمی‌گذارد. File Browser در منوی View قرار دارد.

----------


## m-khorsandi

*در حاشیه*

ظاهراً سه-چهار روزی هست که لوگوی جدید CodeGear معرفی شده،
این هم لوگوی جدید CodeGear که  Steve Trefethen معرفی کرده :



به نظرم ارزشش رو داره که سایت CodeGear رو هم ببینید.

----------


## m-khorsandi

Delphi 2007 for Win32 کامپوننتها، کلاس‌ها، متدها و ویژگی‌هایی را فراهم کرده که با ظاهر و رفتار ویندوز ویستا سازگار هستند. با فعال کردن ویژگی GlassFrame و تغییر بعضی از گزینه‌های آن می‌توانید یک GlassFrame سفارشی داشته باشید، به این معنی که لبه‌های کادر مورد نظرتان شفاف خواهد شد. یا اینکه با استفاده از SheetOfGlass تمام کادر را شفاف کنید که در این صورت اشیاء روی آن به سختی دیده می‌شوند مگر اینکه ویژگی DoubleBuffered را تنظیم کنید. خیلی از کنترل‌های موجود در دلفی 2007 از ویژگی Glass پشتیبانی می‌کنند و بعضی‌ها هم پشتیبانی نمی‌کنند.

VCL دلفی 2007 از سه دایالوگ جدید به نام‌های *TFileOpenDialog* و *TFileSaveDialog* و *TTaskDialog* که در ویندوز ویستا قابل استفاده هستند نیز پشتیبانی می‌کند. کامپوننت TTaskDialog خود شامل Progress bar، Hint و دکمه‌های قابل تنظیم هست.

کلاس‌های جدید زیر نیز اضافه شده‌اند :

TCustomFileDialog, TCustomFileOpenDialog, TCustomFileSaveDialog, TCustomTaskDialog, TFavoriteLinkItem, TFavoriteLinkItems, TFavoriteLinkItemsEnumerator, TFileTypeItem, TFileTypeItems, TTaskDialogBaseButtonItem, TTaskDialogButtonItem, TTaskDialogButtons, TTaskDialogButtonsEnumerator, TTaskDialogProgressBar and TTaskDialogRadioButtonItem

کامپوننت TImage با استفاده از کتابخانه‌ی کلاس TGifImage، تصاویر Gif را پشتیبانی می‌کند.

----------


## m-khorsandi

*FastMM*
در مورد مدیر حافظه‌ی جدید دلفی، قبلاً در سایت برنامه‌نویس مطالبی نوشته شده.

مدیر حافظه‌ی جدید دلفی که از زمان دلفی 2005 به کار گرفته شده، علاوه بر استفاده در IDE دلفی در برنامه‌های کامپایل شده‌ی دلفی نیز استفاده می‌شود. وقتی یک پروژه‌ی موجود را با دلفی 2007 باز می‌کنید و آن را دوباره کامپایل می‌کنید، بطور خودکار از مدیر حافظه‌ی جدید دلفی بهره‌مند خواهید شد. مدیر حافظه‌ی جدید دلفی، FastMM 4 نامیده می‌شود و به عنوان یک مدیر پروژه‌ی جدید توسط "پیر لا ریش" که یک برنامه‌نویس دلفی اهل آفریقای جنوبی ست توسعه داده شده است. FastMM 4 مواردی همچون تخصیص حافظه، افزایش سرعت و آزادسازی بیشتر Ram برای استفاده‌ی بعدی را بهینه کرده است( مدیر حافظه‌ی قدیمی دلفی از تکه تکه شدن بیش از اندازه‌ی حافظه رنج می‌برد) . این بیشتر برای برنامه‌های multi-thread صحیح است. FastMM همچنین توانایی انجام بررسی حافظه‌ای بسیار وسیع را در جهت پاکسازی و تمیز کردن موثر حافظه به دلیل استفاده‌ی نادرست از objectهای حذف شده را دارد. این مدیر حافظه همچنین می‌تواند گزارشاتی از اشیا باقی مانده در حافظه فراهم کند که مطمئناً در یافتن Memory Leak به شما کمک خواهند کرد.

در نسخه‌ای که به همراه دلفی منتشر می‌شود ویژگی‌های اصلی وجود دارد اما عملاً تعداد بیشتری از ویژگی‌های پیشرفته‌ی FastMM در نسخه‌ی کامل کتابخانه در دسترس هست و به همین چند مورد که به RTL دلفی اضافه شده، ختم نمی‌شود. به این شکل دلفی ضامن یک سازگاری بهتر با برنامه‌های موجود هست و از ویژگی‌های نیرومند که همه‌ی برنامه‌نویسان نمی‌توانند به آسانی بر آن تسلط پیدا کنند، دوری می‌کند.
همانطور که قبلاً گفتم برای استفاده از مدیر حافظه‌ی جدید دلفی لازم نیست کار خاصی انجام دهید: پروژه‌تان را در دلفی باز کنید و آن را دوباره کامپایل کنید. سورس کامل این مدیر حافظه را می‌توانید از آدرس http://fastmm.sourceforge.net  دریافت کنید. 

FastMM4 به خاطر کیفیت فنی آن از طرف بورلند انتخاب شد، و همینطور به دلیل تست حافظه‌ی موفقی که با پروژه‌ی FastCode داشت.




این متن برگرفته از سایت پروژه‌ی FastCode به آدرس http://fastcode.sourceforge.net  هست که در تاریخ 17 ژانویه 2007 بروز شده است.

*FastCode*
پروژه‌ی FastCode، توابع بسیار بهینه شده‌ای را برای دلفی کاران تهیه کرده ست. این توابع، نسخه‌ی سریعتری از توابع زمان اجرای دلفی(RTL)، توابع VCL و توابع اضافی دیگر هست. می‌توان توابع را با اسمبلر نوشت و از تمام مجموعه دستورات جدید و مدرن MMX, SSE, SSE2, SSE3, SSSE3, 3DNOW, 3DNOW+ استفاده کرد. ما توابع بهینه‌ای را برای همه پروسسورهای جدید و همچنین نسخه‌هایی که در پروسسورهای قدیمی‌تر نیز اجرا خواهند شد، تهیه کرده‌ایم. در این مجموعه‌ی کتابخانه، بیش از 300 تابع به صورت رایگان برای دانلود در دسترس هست.

در تلاش برای رسیدن به بالاترین سطح بهینگی، عده‌ای از برنامه‌نویسان دلفی تعدادی مجموعه تست‌ برای فراخوانی بخشی از توابع RTL تعریف کردند. تقریباً پیاده‌سازی بیشتر توابع RTL توسط Pascal انجام گرفته، حال آنکه توابع فعلی به زبان سطح پائین اسمبلی نوشته شده ست. این مجموعه تست را می‌توانید از آدرس http://fastcode.sourceforge.net/challenge_content دریافت کنید.
فعلاً ابزار محک و تائید برای 61 تابع با بیش از 35.000 خط وجود دارد. این توابع دقیقاً از قابلیت‌های توابع متناظر موجود در  VCL و RTL تبعیت می‌کنند، این برای توابعی ست که مشابه آن به زبان پاسکال از قبل وجود داشته و متناظر با آن با اسمبلر در پروژه‌ی FastCode نوشته شده ست. اما اگر هیچ تناظری در کار نبود، توضیح موجود در تابع قابلیت آن را شرح می‌دهد.

کتابخانه‌ی توابع FastCode و ابزار تائید و محک آن تحت لیسانس MPL 1.1 منتشر می‌شود.
FastCode از زمان Delphi 2005 به دلفی اضافه شده ست و در نسخه‌های بعدی دلفی یعنی دلفی 2006  و دلفی 2007  نیز بیشتر از این پروژه استفاده می‌شود.

مثال زیر مقایسه‌ی تابع UpperCase در دلفی 5 با دلفی 2007 هست :

*Delphi 5*

function UpperCase(const S: string): string;
var
  Ch: Char;
  L: Integer;
  Source, Dest: PChar;
begin
  L := Length(S);
  SetLength(Result, L);
  Source := Pointer(S);
  Dest := Pointer(Result);
  while L <> 0 do
  begin
    Ch := Source^;
    if (Ch >= 'a') and (Ch <= 'z') then Dec(Ch, 32);
    Dest^ := Ch;
    Inc(Source);
    Inc(Dest);
    Dec(L);
  end;
end;



*Delphi 2007*

function UpperCase(const S: string): string;
asm {Size = 134 Bytes}
  push    ebx
  push    edi
  push    esi
  test    eax, eax               {Test for S = NIL}
  mov     esi, eax               {@S}
  mov     edi, edx               {@Result}
  mov     eax, edx               {@Result}
  jz      @@Null                 {S = NIL}
  mov     edx, [esi-4]           {Length(S)}
  test    edx, edx
  je      @@Null                 {Length(S) = 0}
  mov     ebx, edx
  call    system.@LStrSetLength  {Create Result String}
  mov     edi, [edi]             {@Result}
  mov     eax, [esi+ebx-4]       {Convert the Last 4 Characters of String}
  mov     ecx, eax               {4 Original Bytes}
  or      eax, $80808080         {Set High Bit of each Byte}
  mov     edx, eax               {Comments Below apply to each Byte...}
  sub     eax, $7B7B7B7B         {Set High Bit if Original <= Ord('z')}
  xor     edx, ecx               {80h if Original < 128 else 00h}
  or      eax, $80808080         {Set High Bit}
  sub     eax, $66666666         {Set High Bit if Original >= Ord('a')}
  and     eax, edx               {80h if Orig in 'a'..'z' else 00h}
  shr     eax, 2                 {80h > 20h ('a'-'A')}
  sub     ecx, eax               {Clear Bit 5 if Original in 'a'..'z'}
  mov     [edi+ebx-4], ecx
  sub     ebx, 1
  and     ebx, -4
  jmp     @@CheckDone
@@Null:
  pop     esi
  pop     edi
  pop     ebx
  jmp     System.@LStrClr
@@Loop:                          {Loop converting 4 Character per Loop}
  mov     eax, [esi+ebx]
  mov     ecx, eax               {4 Original Bytes}
  or      eax, $80808080         {Set High Bit of each Byte}
  mov     edx, eax               {Comments Below apply to each Byte...}
  sub     eax, $7B7B7B7B         {Set High Bit if Original <= Ord('z')}
  xor     edx, ecx               {80h if Original < 128 else 00h}
  or      eax, $80808080         {Set High Bit}
  sub     eax, $66666666         {Set High Bit if Original >= Ord('a')}
  and     eax, edx               {80h if Orig in 'a'..'z' else 00h}
  shr     eax, 2                 {80h > 20h ('a'-'A')}
  sub     ecx, eax               {Clear Bit 5 if Original in 'a'..'z'}
  mov     [edi+ebx], ecx
@@CheckDone:
  sub     ebx, 4
  jnc     @@Loop
  pop     esi
  pop     edi
  pop     ebx
end;

----------


## Inprise

*VCL:* Hey, WinForms how's it going? *
WinForms:* Oh, being here on Vista is great. VCL, what's up with your Form?
*VCL:* Yeah, that. That's my new SheetOfGlass property, part of my native support for Windows Vista UI in Delphi 2007.
*WinForms:* Ah, so you're specific to Windows Vista. Well, not me.
*VCL:* Well, no. With just one Delphi executable you're good to go on Win98/ME, 2000, XP, 2003 and Vista.
*WinForms:* Just _one_ file?
*VCL:* Ah yeah, what about you?
*WinForms:* Uh, well..., I need the .NET framework 2.0. And that needs IE 5.01. Oh, and Windows Installer 3.0 (except for Windows 98/ME, which requires Windows Installer 2.0 or later). Though Windows Installer 3.1 or later is recommended. Oh, whatever, here's the rest.
*VCL:* Yowza.

----------


## Inprise

http://dev.newswhat.com/amsg/borland.public.delphi.thirdpartytools.general/46751eff$1@newsgroups.borland.com.html

----------


## مهدی کرامتی

آخرین نسخه BDS 2007 شامل Delphi 2007 و C++‎ Builder 2007 ابتیاع شد.

اولین برخورد با نگارش استودیو برام جالب بود. شما میتونید یک Project Group ایجاد کنید که شامل پروژه هایی با زبان های مختلف باشد، آنگاه کل گروه را Build کنید. این قابلیت قبلا فقط در ویژوال استودیو مایکروسافت موجود بود.

----------


## مهدی کرامتی

الان چند ماهی هست که بخاطر پروژه ای که روش کار میکنم دارم با #C و وِیژوال استودیو 2005 کار میکنم. این موقعیت رو پارسال در همین فصل (بهار) هم تجربه کردم. اون موقع تو وقتهای آزاد با خودم فکر میکردم: "چرا بورلند یک IDE درست و حسابی مثل این ویژوال استودیو ایجاد نمیکنه؟ کار کردن با VS.NET 2005 خیلی راحته و کلی باعث صرفه جویی در زمان میشه، بخصوص این قابلیت Float شدن پنجره های ابزارها، ایکاش چنین IDE هم برای محصولات بورلند داشتیم".

خیلی های دیگه هم چنین آروزیی داشتند، حتی به بورلند پیشنهاد دادند که دلفی و بیلدر رو بعنوان یک محصول در قالب Personality برای ویژوال استودیو 2005 ارائه کنه تا امکان استفاده از امکانات محیط فوق برای برنامه نویسان بورلندی نیز فراهم بشه، اما بخاطر ساختار VCL و مشکلات فراوان در تطبیق آن با یک IDE غیر از دلفی این امر میسر نشد.

IDE Framework جدید بورلند (معروف به Galileo) هم تعریفی نداشت، پر از باگ بود، کند و سنگین. بخاطر همین من تا قبل از Delphi 2007 حاضر نشدم به نسخه جدید دلفی مهاجرت کنم.

اما پس از انتشار دلفی 2007 قضیه فرق کرد. IDE تقریبا دیگه Stable شده، قوی شده و همون احساس راحتی که در VS.NET 2005 دارم الان در این IDE جدید CodeGear هم تجربه میکنم، هر چی که اونجا هست تو این IDE جدید دلفی هم هست.

مسئله بعدی که قبل از مهاجرت به دلفی 2007 ذهنم رو مشغول کرده بود بررسی امکان انتقال ابزارهای مورد استفاده ام به این محیط جدید بود. 
اولین تجربه ام در این زمینه با یکی از کامپوننتهایی بود که سورس اش رو نداشتم، و در ضمن این کامپوننت دارای چند IDE Expert بود که بعید میدونستم اونطور که CodeGear قول داده بود بشه در دلفی 2007 ازشون استفاده کرد، چون این ابزارها برای دلفی 2006 کامپایل شده بودند.

با کمال مسرت هر چه داشتم و نداشتم ظرف کمتر از نیم ساعت و به راحتی تمام در دلفی 2007 نصب شد، کامپوننت های دارای سورس، بدون سورس، IDE Expert ها و ... . 

با این که مطمئن بودم با این اوصاف، پروژه های نوشته شده در دلفی 7 ام هم براحتی در دلفی 2007 کامپایل خواهند شد میخواستم حس کنجکاوی ام در این مورد را نیز ارضا کنم، و کردم!  :بامزه: 

من به یک سری افزونه های IDE برای دلفی معتادم، از جمله:ModelMaker Code ExplorerGExpertsDelForEx Code FormatterTeamCoherenceRaize CodeSiteبعضی ها مثل مورد 3 و 5 نسخه ویژه 2007 شان را تا این لحظه منتشر کرده اند، اما نسخه ویژه دلفی 2006 بقیه هم براحتی در دلفی 2007 کار می کنند.

سرعت بالا آمدن IDE بهتر از 2006 شده، اما افزایش سرعت کامپایل خیلی محسوس نیست.


سعی میکنم در صورت امکان، بیشتر از تجربه هایم با این IDE جدید برایتان بنویسم.

----------


## Inprise

این یکی مستقیما" به دلفی 2007 مربوط نیست ولی به حال و هوای همین مبحث مرتبط است :

 My name is Spyros Athanasiadis and I am a Pascal/Delphi fanatic since Turbo 
Pascal 5.0

After I was hired by a large greek company as a "system" guru, my task was 
to migrate a huge vb6 project to C#‎. I was desperate. I had to do something 
to prove that Delphi really rocks and that there is nothing that can not be 
done with it (except drivers). So I made a bet with our CTO that in 2 
months, every single developer in the company will be able to write in 
Delphi or else I had to quit my job. I made some brainstormings with some of 
my colleges and I came up with a quite simple idea ...

Lets print the Object Pascal Language reference (provided with Delphi 6.0 
installation package), make some nice booklets of it and do some sessions. 
And voila! After 2 months and 10-15 sessions in groups using ONLY the PDF 
printout, I won the bet !!!

Now 2 years later we are STILL a delphi-happy company :)

Hey Codegear guys, let's bring back the Object Pascal Language Guide in PDF 
form back.  You won't regret it.

----------


## Inprise

> سرعت بالا آمدن IDE بهتر از 2006 شده


به کمک Distiller و وداع با dotNET crap های IDE که وجودشان الزامی نیست سرعتش خیلی بهتر شده . روی ماشین کار فعلی ام که یک Laptop یک میلیون و دویست هزار تومنی کاملا متوسط ، با دو گیگ حافظه است ، دلفی سریعتر از VS2005 میاد بالا ( من روی VS ام یک سری Wizard و Tool اضافه نصب کرده ام که کمی کندترش کرده . شاید در این شرایط تازه این مقایسه منصفانه باشه چون در هر حال VS مفهومی مانند Design Time Package های دلفی و IDE نداره و همه چیز موقوف به Compile است )

----------


## مهدی کرامتی

DelForExp for Delphi 2007:

http://www.dow.wau.nl/aew/DelForExp.html

----------


## Inprise

http://jedqc.blogspot.com/2007/06/be...available.html

----------


## Inprise

من امروز سه تا از کارهایم که مقیاس یکی شان "خیلی خیلی" بزرگ بود را بطور کامل به Rad Studio 5 منتقل کردم ، BCB Personality ؛ این IDE به کمک Distiller نه تنها به اندازه کافی سریع و Stable هست ، هر چه که من لازم داشتم تا دوباره متقاعد بشم کد بنویسم و مشکلاتی که خیلیها بخاطرش بهم شکایت میکردن رو حل کنم یه جا داره .

تاکید میکنم که برای استفاده از نگارش جدید استودیوی CodeGear حتما" آخرین انتشار را بگیرید ، و حتما" قبل از هر چیز با استفاده از Distiller اضافات غیر ضروری رو حذف کنید . this is the Best Delphi/BCB IDE ever

----------


## Inprise

آخرین نگارش JVCL بطور کامل به Rad Studio 5 سازگار است و بسادگی کلیه Component ها و Expert ها را همزمان در هر دو محیط نصب میکند ؛ اگر از این مجموعه استفاده میکنید نگارش 3.32 اش را نصب کنید .

----------


## Inprise

http://www.cnpack.org/showdetail.php?id=494&lang=en

----------


## Inprise

این امکان خیلی به درد میخوره :
http://memyselfanddelphi.blogspot.co...in-delphi.html

----------

