TAHA
10-02-2009, 06:15 AM
برتري هاي دلفي به ويژوال بيسيك
به نظر من دلفي براي برنامه نويسي ويندوز از هر زبان ديگري بهتر است.
حالا مقايسه اي بين دلفي و ويژوال بيسيك مي كنيم.
ويژوال بيسيك يه جورايي دست تهي است. يعني وابسته به ActiveX ها است. ولي دلفي بسياري از كنترل ها و Component ها را درون خود دارد. مثل OpenDialog و SaveDialog كه درون خود دلفي هستند و نياز به فايل OCX خارجي ندارند ولي در ويژوال بيسيك براي نمايش اين ديالوگ ها حتما بايد از comdlg32.ocx استفاده شود. و در صورتي كه برنامه اي بنويسيد كه از اين ديالوگ ها استفاده كند و اين برنامه را به كسي بدهيد، حتما بايد فايل comdlg32.ocx را كنار برنامه گذاشته و در رجيستري طرف ثبت كنيد. يا مثلا كنترلهاي ديگري مثل ListView, TreeView , MonthView , Slider , ProgressBar , ToolBar , غيره كه در ويژوال بيسيك همه آنها نياز به Activex دارند، در دلفي به صورت دروني وجود دارد.
يعني برنامه اي كه با دلفي مي سازيد، Standalone است يعني به هيچ DLL زمان اجرايي ربط ندارد. در صورتي كه ويژوال بيسيك ۶ به فايل msvbvm60.dll ربط دارد يعني اگر برنامه اي با ويژوال بيسيك ۶ بنويسيد و بخواهيد به كسي بدهيد، بايد حتما اين فايل كه حجمش ۱ و نيم مگ است را كنارش بذارين. ولي با دلفي ممكن است يك فايل exe با حجم 600 كيلوبايت باشد.
البته براي رفع اين مشكل مي تونيد همون طور كه قبلا گفتم، از ويژوال بيسيك 5 استفاده كنيد. يعني برنامه تون رو به وسيله ويژوال بيسيك 5، exe كنيد. چون در اين صورت ديگه به فايل msvbvm60 ربطي پيدا نمي كنه. البته به فايل msvbvm50.dll ربط پيدا مي كنه ولي چون هنگام نصب ويندوز 98، اين فايل نيز خود به خود نصب مي گردد و با توجه به اين كه در اين دوره ديگه هيچكي ويندوز 95 نصب نمي كنه، مي تونين از اين بابت مطمئن باشيد.
برتريهاي دلفي به اينجا خلاصه نمي شود و در مورد كار با APIها واقعا اگر بياين دلفي خودتون مي فهمين كه چقدر اينجا آدم راحته. ويژوال بيسيك كه ديدين همه ش بايد برين توي API Text VIewer و هر چي مي خواين خودتون دستي به برنامه اضافه كنيد كه پدرتون در مي آد. ولي توي دلفي شما اسم هر تابع API رو كه بنويسيد خودش از پيش تعريف شده است يعني Declare ها و Type ها و Constant ها همه شون از قبل وجود دارن فقط شما بايد بگين كه از كدومشون ميخواين استفاده كنين. يعني اسم تابع رو كه بنويسين، پرانتزو كه باز كنين الگوي تابع مياد.
از همه مهمتر، ديگه براي Help API ها حتما لازم نيست برين Help رو از توي MSDN Library بياريد. شما اسم هر تابع API رو كه بنويسيد و روش F1 بزنيد Help اون مياد!
يه برتري ديگه هم هست كه شما توي VB اگه يه شيء داشته باشين و يك سري رويدادها براش تعريف كرده باشيد، اسم شيء رو كه تغيير بدين، همه رويدادهايي كه نوشتيد يه جورايي از دست ميرن يعني ديگه به اون شيء ربط پيدا نمي كنن. مثلا فرض كنيد كه يك دكمه داريد كه اسمش گذاشتين Command1. بعد به اين فكر ميفتين كه اسمشو تغيير بدين به نام cmdClose. اگه اين كارو بكنين، تمام رويدادهاي اين دكمه ديگه به اين دكمه ربطي ندارن. درواقع هنوز به Command1 ربط دارن. يعني شما بايد برين يك Search بكنين و هر جا Command1 ديدين به cmdClose تغيير بدين. ولي توي دلفي اينجوري نيست. شما اسم شيء تون رو هر دفعه كه تغيير بدين تمام رويدادهاش به اسم تغيير داده شده اون شيء ربط پيدا مي كنن. و ديگه لازم نيست برين اين همه دردسر بكشين و ...
برتريهاي ديگري هم وجود دارن كه بعدا باز هم ميگم.
البته اگر تازه مي خواين برنامه نويسي ويندوز رو شروع كنيد اول ويژوال بيسيك خوبه. بعد كه يه كم راه افتاديد، بياين دلفي.
به نظر من دلفي براي برنامه نويسي ويندوز از هر زبان ديگري بهتر است.
حالا مقايسه اي بين دلفي و ويژوال بيسيك مي كنيم.
ويژوال بيسيك يه جورايي دست تهي است. يعني وابسته به ActiveX ها است. ولي دلفي بسياري از كنترل ها و Component ها را درون خود دارد. مثل OpenDialog و SaveDialog كه درون خود دلفي هستند و نياز به فايل OCX خارجي ندارند ولي در ويژوال بيسيك براي نمايش اين ديالوگ ها حتما بايد از comdlg32.ocx استفاده شود. و در صورتي كه برنامه اي بنويسيد كه از اين ديالوگ ها استفاده كند و اين برنامه را به كسي بدهيد، حتما بايد فايل comdlg32.ocx را كنار برنامه گذاشته و در رجيستري طرف ثبت كنيد. يا مثلا كنترلهاي ديگري مثل ListView, TreeView , MonthView , Slider , ProgressBar , ToolBar , غيره كه در ويژوال بيسيك همه آنها نياز به Activex دارند، در دلفي به صورت دروني وجود دارد.
يعني برنامه اي كه با دلفي مي سازيد، Standalone است يعني به هيچ DLL زمان اجرايي ربط ندارد. در صورتي كه ويژوال بيسيك ۶ به فايل msvbvm60.dll ربط دارد يعني اگر برنامه اي با ويژوال بيسيك ۶ بنويسيد و بخواهيد به كسي بدهيد، بايد حتما اين فايل كه حجمش ۱ و نيم مگ است را كنارش بذارين. ولي با دلفي ممكن است يك فايل exe با حجم 600 كيلوبايت باشد.
البته براي رفع اين مشكل مي تونيد همون طور كه قبلا گفتم، از ويژوال بيسيك 5 استفاده كنيد. يعني برنامه تون رو به وسيله ويژوال بيسيك 5، exe كنيد. چون در اين صورت ديگه به فايل msvbvm60 ربطي پيدا نمي كنه. البته به فايل msvbvm50.dll ربط پيدا مي كنه ولي چون هنگام نصب ويندوز 98، اين فايل نيز خود به خود نصب مي گردد و با توجه به اين كه در اين دوره ديگه هيچكي ويندوز 95 نصب نمي كنه، مي تونين از اين بابت مطمئن باشيد.
برتريهاي دلفي به اينجا خلاصه نمي شود و در مورد كار با APIها واقعا اگر بياين دلفي خودتون مي فهمين كه چقدر اينجا آدم راحته. ويژوال بيسيك كه ديدين همه ش بايد برين توي API Text VIewer و هر چي مي خواين خودتون دستي به برنامه اضافه كنيد كه پدرتون در مي آد. ولي توي دلفي شما اسم هر تابع API رو كه بنويسيد خودش از پيش تعريف شده است يعني Declare ها و Type ها و Constant ها همه شون از قبل وجود دارن فقط شما بايد بگين كه از كدومشون ميخواين استفاده كنين. يعني اسم تابع رو كه بنويسين، پرانتزو كه باز كنين الگوي تابع مياد.
از همه مهمتر، ديگه براي Help API ها حتما لازم نيست برين Help رو از توي MSDN Library بياريد. شما اسم هر تابع API رو كه بنويسيد و روش F1 بزنيد Help اون مياد!
يه برتري ديگه هم هست كه شما توي VB اگه يه شيء داشته باشين و يك سري رويدادها براش تعريف كرده باشيد، اسم شيء رو كه تغيير بدين، همه رويدادهايي كه نوشتيد يه جورايي از دست ميرن يعني ديگه به اون شيء ربط پيدا نمي كنن. مثلا فرض كنيد كه يك دكمه داريد كه اسمش گذاشتين Command1. بعد به اين فكر ميفتين كه اسمشو تغيير بدين به نام cmdClose. اگه اين كارو بكنين، تمام رويدادهاي اين دكمه ديگه به اين دكمه ربطي ندارن. درواقع هنوز به Command1 ربط دارن. يعني شما بايد برين يك Search بكنين و هر جا Command1 ديدين به cmdClose تغيير بدين. ولي توي دلفي اينجوري نيست. شما اسم شيء تون رو هر دفعه كه تغيير بدين تمام رويدادهاش به اسم تغيير داده شده اون شيء ربط پيدا مي كنن. و ديگه لازم نيست برين اين همه دردسر بكشين و ...
برتريهاي ديگري هم وجود دارن كه بعدا باز هم ميگم.
البته اگر تازه مي خواين برنامه نويسي ويندوز رو شروع كنيد اول ويژوال بيسيك خوبه. بعد كه يه كم راه افتاديد، بياين دلفي.