من از دلفی هیچی حالیم نمی شه می خواستم از شما دوستان سؤال کنم بهترنی ide دلفی چیست
و چند تا داریم در باره ی هر کدومشون اطلاعات می خواستم و بازار کار دلفی به نظرتون خوبه ؟ می ارزه یاد بگیرم؟
من از دلفی هیچی حالیم نمی شه می خواستم از شما دوستان سؤال کنم بهترنی ide دلفی چیست
و چند تا داریم در باره ی هر کدومشون اطلاعات می خواستم و بازار کار دلفی به نظرتون خوبه ؟ می ارزه یاد بگیرم؟
بهترین ide برای دلفی, به نظر من xe2 هستش که واقعا امکانات بی نظیری نسبت به نسخه های پیشینش به دست آورده و قابلیت فایرمانکی که به آن اضافه شده است نیز, بسیار مفید است.
توضیحات بیشتر و کامل تر را میتوانید در لینک زیر مشاهده کنید :
http://www.embarcadero.com/products/delphi
در مورد بازار کار هم, من در واقع, اطلاع چندانی ندارم, ولی این را میدانم متاسفانه در حال حاضر, شرکت ها, دنبال کد نویس هستند, نه برنامه نویس.
و اکثرا دنبال سی شارپ کار و ... خیلی چیزای دیگه هستند.
ولی اگر شما بخواهید, احتمالا موفق خواهید شد.
باز من تاکید میکنم که نظر بقیه دوستان را جویا بشوید, چون من در این زمینه تجربه ی خاصی ندارم و ممکن است که اشتباه به عرض رسانده باشم.
با تشکر
من معمولا با دلفی کار میکنم
با #C هم کار کردم امما دلفی رو ترجیح میدم
اما الان شرکتها اکثرا دنبال دات نت کار هستن
به نظر من درسته که اغلب شرکتها به دنبال برنامه نویس دات نت هستند ولی طبق تجربه شخصی خودم برنامه نویسان دلفی از موقعیت شغلی بهتری برخوردار هستند زیرا برنامه نویسان دلفی از برنامه نویسان دات نت کمترد و اگر یک نسبت سرانگشتی بگیریم متوجه می شویم که احتمال پیدا کردن شغل برای دلفی کاران بیشتر است.(البته این فقط نظر شخصی من بود و ممکن است دیگران نظرات متفاوتی داشته باشند)اما الان شرکتها اکثرا دنبال دات نت کار هستن
آقا یه سوال xe2 مگه با سی پلاس پلاس کدنویسی نمی شه؟؟؟ و در کنارش از کامپوننت های دلفی هم می شه استفاده کرد؟؟ چطوریاست ؟؟ آخه من این ide رو در بخش builder هم دیدم؟؟؟
سلام.
آقا سلام مخصوص خدمت شما. ببین الان تو program file من یه پوشه به اسم Embarcadero RAD Studio XE2 هست که توی اون یک فایل exe به همین اسمه که وقتی من اونو اجرا میکنم محیط برنامه نویسی باز میشه و بعد میتونم به دو زبون (یا همون زبان برنامه نویسی) پروژه ایجاد کنم. میتونمآقا یه سوال xe2 مگه با سی پلاس پلاس کدنویسی نمی شه؟؟؟ و در کنارش از کامپوننت های دلفی هم می شه استفاده کرد؟؟ چطوریاست ؟؟ آخه من این ide رو در بخش builder هم دیدم؟؟؟
VCL Forms Application - Delphi
رو از منوی New انتخاب کنم و یا اینکه
VCL Forms Application - C++Builder
رو از همون منو انتخاب کنم. به همین ترتیب پروژه ی Consol و غیره. شما با هر دو زبان می تونید از VCL و توابع و روال ها و کلاس های دلفی استفاده کنید. یونیت های دلفی (همون فایلای .pas) با پسوند .hpp تو پروژه های C++Builder در برنامه include میشن. مثلا وقتی که من یک پروژه ی جدید VCL Form Application - C++Builder رو می سازم کد زیر تو قسمت Unit1.h هست :
//---------------------------------------------------------------------------
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <System.Classes.hpp>
#include <Vcl.Controls.hpp>
#include <Vcl.StdCtrls.hpp>
#include <Vcl.Forms.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
به include ها توجه کن. به همین شکل فایلای دلفی وارد C++Builder میشن.
الان متوجه شدم از این لحاظ که می شه از کلاس ها و ... دلفی در قسمت سی پلاس پلاسش استفاده کرد اما از لحاظ اینکه با کدوم زبان می تونیم قدرتمندتر با بیلدر کار کنیم هنوز سواله برام؟ آیا قدرت Delphi builder XE2 بیشتره؟ یا C++ builder XE2 ؟ ممنون در ضمن اگر کامپوننت درست کنم با ( زبون ) سی پلاس پلاس می شه؟ اصلا طریقه درست کردن کامپوننت درش راحته کسی این کارو کرده یا کامپوننت های سی پلاس پلاسشم موجوده یا فقط کامپوننت های دلفیش موجوده؟
و سوال آخر اینکه درباره ظاهر نرم افزار می شه مثل کیوت زیبا کار کرد یا ظاهر رو دست کاری کرد ؟
در ضمن سوالی جا نمونه ها به همه با شماره پاسخ داده بشه
پلاگین هایی هایی مثل Usefull Object , SQLite یا Silver Burner , SilCam , Explorer Monitor , Grayscale که کار خودم هست و کاربردهای جهانی دارن همگی با دلفی نوشته شدن ، میتونید در موردشون یک جست و جو بکنید .الان متوجه شدم از این لحاظ که می شه از کلاس ها و ... دلفی در قسمت سی پلاس پلاسش استفاده کرد اما از لحاظ اینکه با کدوم زبان می تونیم قدرتمندتر با بیلدر کار کنیم هنوز سواله برام؟
در ضمن SDK بیلدر برای C++ Builder عرضه نشده ، اگر بخوای با C++ Builder برای بیلدر پلاگین بنویسی باید خودت SDK رو ترجمه کنی که البته SDK بیلدر اصلا پیچیده نیست .
آخرین ویرایش به وسیله بهروز عباسی : سه شنبه 29 مرداد 1392 در 14:26 عصر
من فکر کردم منظورتون از بیلدر نرم افزار Multimedia Builder هست ، چون همه جا به بیلدر شناخته میشه ، تا به حال نشنیده بودم C++ Builder رو بیلدر صدا بزنن !
با این حساب گفته های پست قبل من کنسله !
البته اشتباه از شما بوده ؛ ما Delphi builder نداریم ! اسمش Delphi خالی هست ...
تو قدرت تفاوتی ندارن ، فقط دلفی از لحاظ ابزارها و کامپوننت های آماده کاملتر از C++ Builder هست .
ببینید من می خواستم یه نرم افزار سنگین با بانک اطلاعاتی درست کنم برای همین بین دات نت و این کامپایلر مانده ام ممنون کمکی کنید.آیا لازم است دلفی یاد بگیرم یا همین سی پلاس پلاس با کامپوننت های دلفی بس است ...فقط می خواستم فوق العاده حرفه ای شوم. ممنون
++C با کامپوننت دلفی چه صیغه ایه ؟!همین سی پلاس پلاس با کامپوننت های دلفی بس است
در مورد مقایسه Performance که بی شک دلفی خیلی بهتر از زبان های net. عمل میکنه چون کد native واقعی تولید میکنه ، در مورد بانک اطلاعاتی هم دلفی کاملترین مجموعه ابزارها برای ارتباط با بانک اطلاعاتی رو در بین زبان های برنامه نویسی داره ولی در net. خیلی کارها رو ساده تر انجام میده و برنامه نویس رو کمتر درگیر جزئیات میکنه ، در کل اگر من بودم و قصد برنامه نویسی یک پروژه بزرگ تجاری رو داشتم بی شک دلفی رو انتخاب میکردم .
خوب یعنی الان دلفی 8 رو یاد بگیرم و بعد منتظر بمونم تا XE3 هم به بازار بیاد؟
یه بار دیگه بگی بیلدر جفت پا میام تو مانیتور. این فقط اسمشه. من قبلا فکر میکردم که اسمشو گذاشتن C++Builder یعنی اینکه کند تر عمل میکنه و خود سی پلاس پلاس نیست. برای Delphi هم فقط دلفی به کار میره و C++builder یه اسم هست که برای قسمت C++ ، ا RAD Studio گذاشتن.اما از لحاظ اینکه با کدوم زبان می تونیم قدرتمندتر با بیلدر کار کنیم هنوز سواله برام؟
ولی در جواب صحبتتون عرض کنم که فکر میکنم بستگی به توانایی برنامه نویس و تسلط به هر کدوم از زبون ها داره. یعنی تفاوت قدرت اگه بین این دو تا باشه در حدی نیست که مثلا من بخوام تحت تاثیر قرار بگیرم چون برنامه های من در اون حد نیست که بخوام از همه ی قدرت دلفی و یا C++Builder استفاده کنم که بعد بگم کدومشون زود تر کم میاره و ضعیف عمل میکنه. اما چند تا نکته که بهش برخوردم می نویسم و از دوستانی که تجربه دارن و بیشتر کار کردن می خوام که تجربیاتشون رو در مقایسه ی این دو تا بگن : Delphi و C++Builder. و همچنین مطالبی که من می نویسم به دلیل اینکه تجربه ی شخصی هستن و از جای خاص و معتبری نخوندم به درستی و صحتشون نظارت کنید و اشکال نظراتم رو صریحا بگید. ممنون.
1 - ctrl space یا همون code complation تو دلفی سریع تر و بهتر عمل میکنه.
2 - C++ برای استفاده از vcl فایلای دلفی رو استفاده میکنه که تا اون جایی که می دونم دلفی به C++builder وابسه نیست. البته این میتونه یک ضعف باشه و می تونه یک نقطه قوت از این جهت که برنامه های نوشته شده با دلفی قابل استفاده با C++ هستن ولی فایلای نوشته شده با C++ مستقیما با دلفی قابل استفاده نیستن و باید به روش dll و این جور چیزا منتقل بشن.
3 - ویژگی مهمی که C++Builder داره و توجه من رو به خودش جلب کرده اینه که زبونش C++ هست و در عین حال می تونه مثل دلفی از Visual Componnent Library استفاده کنه همچنین از کلاس ها و توابع دلفی. و به موازات استفاده از امکانات دلفی میتونم برنامه های C++ بنویسم و دستوراتم رو با کد های C++ که جای دیگه میبینم مثل کتاب ها هماهنگ کنم و لازم نباشه که برای تطبیق کد ها دستورات و توابع رو معادل یابی (چه عبارتی همین الان ساختمش) کنم. و این خصوصیت برای کسایی که با زبون pascal آشنا نیستن ولی به C++ می تونن برنامه نویسی کنن خیلی می تونه مهم باشه. دلفی ولی به زبان C++.
4 - کلاس هایی که تو دلفی تعریف میشن همشون از TObject باید مشتق بشن و همین امر موجب میشه که کلاس ها یک مقدار سنگین بشه و من در بیشتر موارد تا جایی امکان داشته باشه میرم سراغ record که میشه گفت معادل struct در C++. ضمن اینکه به نظرم میاد struct در C++ بهتر از record دلفی باشه. ولی کلاس های C++ می تونن از نو نوشته بشن بدون اینکه یه چیز مزاحم مثل TObject حتما بگه منم بازی. البته همیشه مزاحم نیست و می تونه خیلی هم خوب باشه. در این مواقع می تونیم در C++ کلاسمون رو از TObject مشتق کنیم. در واقع قدرت انتخاب داریم ولی تو دلفی نه.
5 - مورد دیگه اینکه موقع نوشتن برنامه و خطا یابی، وقتی کد رو تغییر می دید برای دیدن نتیجه ی کد جدید، اگه پروژه با دلفی باشه بدون نیاز به سیو کردن و یا clean کردن و یا بیلد کردن کل پروژه میتونیم اونو ران کنیم و سریع تر نتیجه رو ببینیم ولی تو C++ بعضی وقتا با تغییر در کد فورا نتیجه اعمال نمیشه و حتما باید clean بشه و دوباره ساخته بشه و یا کاملا بیلد بشه و اینکه حتما باید سیو بشه بعد این کارا انجام بشه و اوایل که این رو نمی دونستم خیلی میگشتم تو کد و فکر میکردم که اشکال از کد هست در حالی که کد اصلاح شده بود ولی موقع کامپایل از اطلاعات ساخته شده در کد قبلی استفاده می کرد.
6 - ... زیاد نوشتم ببخشید ادامه نمیدم.
من در حد کار خودم با هر دوشون راحتم و مشکلی ندارم. و همون طور که عرض کردم اسم ها رو درست به کار ببرید.آیا قدرت Delphi builder XE2 بیشتره؟ یا C++ builder XE2 ؟
نوش جان.ممنون
بله اینقدر آسونه که منم درست کردم. ولی در مورد اینکه پلاگین برای کدوم بیشتره و اینکه آیا حتما پلاگیناشون به هم میخورن یانه دوستان دیگه نظر بدن من خیلی با پلاگین و کامپوننت سر و کار ندارم.در ضمن اگر کامپوننت درست کنم با ( زبون ) سی پلاس پلاس می شه؟ اصلا طریقه درست کردن کامپوننت درش راحته کسی این کارو کرده یا کامپوننت های سی پلاس پلاسشم موجوده یا فقط کامپوننت های دلفیش موجوده؟
شدنش میشه ولی باید بلد باشی. اگرم بلد نیستی می شه یاد بگیری ولی برای کار با اون لازم نیست حتما ازین کارها انجام بدی چون کامپوننت و چیز آماده زیاد هست و خودتم می تونی تغییرات بدی. و فایر مانکی هم زیبایی و قدرت و انعطاف گرافیکش خیلی بیشتره که تو ورژن xe2 اضافه شده. اگه تو سمپل هاش نگاه کنید نمونه ای هست که کل یوزر اینترفیس رو یکجا داخل صفحه به شکل سه بعدی حرکت میده و پرسپکتیو بهش میده که در همین حین هم می تونید روی دکمه ها کلیک کنید و کاملا فعال و زنده هست. در مورد QT اطلاعات زیادی ندارم.و سوال آخر اینکه درباره ظاهر نرم افزار می شه مثل کیوت زیبا کار کرد یا ظاهر رو دست کاری کرد ؟
اوه...... خفم کردی بابا! بزار شاممو بخوریم.در ضمن سوالی جا نمونه ها به همه با شماره پاسخ داده بشه
من نفهمیدم ، چیش مزاحمه ؟ بایدی وجود نداره ، تو دلفی هم میتونید کلاس رو از پایه خودتون پیاده کنید ، بدون اینکه کلاس رو از TObject مشتق کنید .4 - کلاس هایی که تو دلفی تعریف میشن همشون از TObject باید مشتق بشن و همین امر موجب میشه که کلاس ها یک مقدار سنگین بشه و من در بیشتر موارد تا جایی امکان داشته باشه میرم سراغ record که میشه گفت معادل struct در C++. ضمن اینکه به نظرم میاد struct در C++ بهتر از record دلفی باشه. ولی کلاس های C++ می تونن از نو نوشته بشن بدون اینکه یه چیز مزاحم مثل TObject حتما بگه منم بازی. البته همیشه مزاحم نیست و می تونه خیلی هم خوب باشه. در این مواقع می تونیم در C++ کلاسمون رو از TObject مشتق کنیم. در واقع قدرت انتخاب داریم ولی تو دلفی نه.
فکر میکنم حافظه ای که اشغال میشه برای هر نمونه بیشتر هست. شایدم دلیلش فشرده نکردن داده های کلاس باشه که امتحان کردم بازم حداقل 4 بایت بیشتر ذخیره میکنه که تو آرایه ها داده های کلاس مثل record پشت سر هم نمیشن. و وجود بعضی متد ها که در TObject هست و نمی خوام تو بعضی کلاس هام باشه. و اینکه متغییر هایی از نوع کلاس تو دلفی به شکل اشاره گر هستن و مثل record نیستن. البته خیلی همیشه مزاحم نیست در بیشتر مواقع کمک دسته.من نفهمیدم ، چیش مزاحمه ؟
چطوری باید این کار رو بکنیم. مگه به طور پیش فرض کلاس رو می نویسیم از TObject مشتق نمیشه؟ و مثلا متد Free و این جور چیزا توش هست که من نمی خوام برای بعضی کلاس هام داشته باشمشون.بایدی وجود نداره ، تو دلفی هم میتونید کلاس رو از پایه خودتون پیاده کنید ، بدون اینکه کلاس رو از TObject مشتق کنید .
بله ، به صورت پیش فرش از TObject مشتق میشه .چطوری باید این کار رو بکنیم. مگه به طور پیش فرض کلاس رو می نویسیم از TObject مشتق نمیشه؟ و مثلا متد Free و این جور چیزا توش هست که من نمی خوام برای بعضی کلاس هام داشته باشمشون.
اگر قصد ارث بری از کلاسی که می نویسید رو ندارید و فقط میخواین به صورت مستقیم ازش استفاده کنید میتونید با همون رکورد پیادش کنید ، مثلا رکورد زیر که براش سازنده و پراپرتی و ... در نظر گرفته شده :
type
TMyRecord = record
type
TInnerColorType = Integer;
var
Red: Integer;
class var
Blue: Integer;
procedure printRed();
constructor Create(val: Integer);
property RedProperty: TInnerColorType read Red write Red;
class property BlueProp: TInnerColorType read Blue write Blue;
end;
ولی اگر قصدتون ارث بری باشه خیر .
ممنون.
خوب، من همین کار رو میکنم البته برای اشیایی که قراره اندازه ی ثابتی داشته باشن و داخلشون داده ای به شکل اشاره گر هم ندارن از record استفاده میکنم ولی کلاس هایی که پویا و انعطاف پذیر باشن و متدهاشون حافظه میگیرن یا آزاد میکنن از class استفاده میکنم.اگر قصد ارث بری از کلاسی که می نویسید رو ندارید و فقط میخواین به صورت مستقیم ازش استفاده کنید میتونید با همون رکورد پیادش کنید ، مثلا رکورد زیر که براش سازنده و پراپرتی و ... در نظر گرفته شده :
type
TMyRecord = record
type
TInnerColorType = Integer;
var
Red: Integer;
class var
Blue: Integer;
procedure printRed();
constructor Create(val: Integer);
property RedProperty: TInnerColorType read Red write Red;
class property BlueProp: TInnerColorType read Blue write Blue;
end;
اینم یک اشکالشه که خدارو شکر برای این مدل اشیا من از ارث بری استفاده نمی کنم. ولی operator ها و دستورات انتصابی برام مهم هستن که تو record بهتر پیاده میشن که جدیدا به جای استفاده از operator تنبلی نمیکنم و با ساخت تابعی به اسم LoadFromOther برای انتصاب (برای کلاس) و تابع Add (هم کلاس هم رکورد) برای جمع و .. و نوشتن اسم تابع در کدها، انتصاب و جمع و تفریق و اینجور چیزا رو انجام میدم بخاطر سرعت اجرا. struct در C++ با کلاس عملکردشون یکی هست درسته؟ بخاطر فرق زیاد record با class در دلفی، وقتی در جاهای مختلف می خوندم که struct با class فرقی نداره فکر می کردم دارن اشتباه میگن. چند تا سوالم دارم که اینجا نمی پرسم موضوع تاپیک کمی متفاوته.ولی اگر قصدتون ارث بری باشه خیر .
سلام
میدونم که این تاپیک کمی قدیمی شده ولی برای آیندگان جالبه که نکته ای را ذکر کنم.
همیشه هم اینطور نیست! به عنوان مثال کتابخانه Midas که در VCL وجود دارد و به شدت در برنامه های مبتنی بر بانکهای اطلاعاتی از آن استفاده می شود با C++ Builder ساخته شده است که کد آن هم به همراه RAD Studio 2010 و نسخه های جدیدتر وجود دارد. از طرفی هم این حرف شما همیشه درست نیستو کلاً به نظر من کسانی که میگن این بهتره یا اون یکی افراد مبتدی هستند و مقایسه اینچنینی اصلاً درست نیست. هر زبان برنامه نویسی نقاط قوت خودش را دارد و دلفی هم به خاطر این عالی است که نقاط قوت بیشتری دارد. در کل در پروژه های سنگین و پیچیده معمولاً از ترکیبی از زبانها استفاده می شود. در کل دلفی هم می تواند به C++ وابسته باشد. مثلاً شما می توانید از Object File های C++ در دلفی استفاده کنید و آنها را به فایل پروژه خود لینک کنید که روش کار در لینک زیر توضیح داده شده است:2 - C++ برای استفاده از vcl فایلای دلفی رو استفاده میکنه که تا اون جایی که می دونم دلفی به C++builder وابسه نیست.
http://www.codeproject.com/Articles/...with-Delphi-X2
این تکنیک واقعاً فوق العاده است و در توسعه پروژه هایی که در دست دارم واقعاً خیلی کمکمان کرده است!
موفق باشید...