سلام
با تشکر از پاسخ کاملتون
یه چندتا سوال اساسی داشتم که خیلی ذهنم رو مشغول کرده :
1. از کجا بفهمیم یه کامپوننت در چه سیستم عاملهایی قابل نصب و استفاده هست ؟؟
2. این کامپوننت های RTTI چه فرقی با کامپوننت های استاندارد دارن ؟
3. اون برگه آخر Object Inspector که اسمش Restricted هست کارش دقیقا چیه ؟ مخصوصا اون لوگو های بالاش که یسری اعداد هم دارن ؟
4. برای اینکه بتونم برا اندروید هم بعدا کامپایل بگیرم کار خاصی لازم نداره یا نکته مهمی رو نباید رعایت کنم؟ و در کل اگر بخوام برنامه ای که مینویسم رو بتونم با حداقل تغییرات تو سیستم عاملهای مختلف ( مخصوصا : ویندوز ، مک ، لینوکس و اندروید ) کامپایل بگیرم چه چیزایی رو باید رعایت کنم و از چه ابزارهایی استفاده کنم و از کدوما استفاده نکنم ؟
5. به نظر شما از چه دیتابیسی استفاده کنم که نیاز به نصب روی کامپیوتر کاربر نهایی رو نداشته باشه و کاملا کراس پلتفرم باشه . ترجیها هم از دستورات اس کیو ال پشتیبانی کنه ؟؟؟؟
پیش پیش از پاسخون صمیمانه تشکر میکنم
سلام
بعضی از سوالاتتون خیلی مشکل بودن و تا به حال بهشون فکر نکرده بودم برا همین ممکنه جواب کاملی براشون نداشته باشم اگه کسی از دوستان اطلاعات بیشتری داشت جواب های منو اصلاح کنه.
1- سوال اولتون از پایه اشتباه است. کامپوننت تو سیستم عامل نصب نمیشه بلکه تو IDE یا همون محیط مجتمع توسعه (مثل دلفی یا لازاروس) نصب میشه و ربطی به سیستم عامل نداره. البته چندان بی ربط هم نیستن
.کامپوننت ها در حقیقت کدها و قسمت های ویژالی هستن که به خاطر استفاده زیاد به این شکل در میان تا راحت تر و سریع تر استفاده بشن. یعضی از کامپوننت ها به واسطه کدهایی که دارن یا قابلیت هایی که در قسمت ویژال خود دارند ممکنه مختص یک سیستم عامل باشن و تو بقیه اونها به درستی کار نکنند. کامپوننت هایی که در کتابخانه LCL لازاروس وجود دارند از نوع مستقل از سکو هستن و مشکلی با سیستم عامل ندارند.(هرچند مواردی دیدم که کامپوننت نمیتونه از همه قابلیت هاش در بعضی از سیستم عامل ها استفاده بکنه). بقیه کامپوننت ها هم معمولا خودشون در سایت سازنده مشخص می کنند که مستقل از سکو هستن یا مختص یک سیستم عامل خاص.
2- این مورد رو تا به حال بهش فکر نکرده بودم و زیاد برخوردی نداشتم. با این حال توضیح ویکی لازاروس در مورد این کامپوننت ها ممکنه کمی کمکتون کنه :
http://wiki.lazarus.freepascal.org/RTTI_controls3-این یکی رو هم دیده بودم ولی کاری به کارش نداشتم. فکر می کنم این برگه محدودیت های اون شی انتخاب شده را برای سیستم عامل های مختلف و به طور کلی بیان میکنه ولی بازم مطمئن نیستم.
4- آندروید قضیش با بقیه سیستم عامل ها خیلی فرق میکنه و نمیشه برنامه رو برای همه و اون با هم طراحی کرد. آندروید محدودیت ها و قابلیت های خودشو داره و با سیستم عامل های دسکتاپ خیلی متفاوته. برای اینکه بتونید برنامه ای که نوشتین تو بقیه سیستم عامل ها با کمترین تغییرات اجرا کنید بهتره تا حد امکان از کامپوننت هایی استفاده کنید که تو همه سیستم عامل ها قابلیت کار داشته باشن. نکته مهم اینجاست که همیشه وقتی یک برنامه برای چند سیستم عامل طراحی میشه دلیل بر این نیست که اونو تو محیطی شبیه به لازاروس که مستقل از سکو هست ساختن و برای اونها تولید کردن. بعضی شرکت های بزرگ محصولاتشون رو برای سیستم عامل های مختلف با الگوریتم و محیط یکسان طراحی می کنند. یعنی هسته برنامه یکی است ولی امکانات و پوسته اون از روش های مختلف تو سیستم عامل های مختلف بدست میاد. به همین دلیل است که برخی برنامه ها نسخه یک سیستم عاملشون خیلی خوب و بی نقص کار میکنه ولی همون تو یک سیستم عامل دیگه مواقعی دچار خطا میشه.
5- من برای این مورد SQLite رو پیشنهاد می کنم. تو استفاده از اون در ویندوز و لینوکس خیلی راحت بودم و برنامه ام با کد مشترک تو هر دو سیستم عامل با این دیتابیس کار میکنه. از دستورات SQL هم پشتیبانی می کنه و نیازی به نصب نداره و مستقل از سکو هستش. البته محدودیت های خودشو داره ولی در مجموع گزینه خیلی مناسبیه.
Firebrid هم شنیدم گزینه خیلی خوبی هستش که همین قابلیت ها رو داره ولی هنوز تجربش نکردم.
موفق باشید.