# Native Code > برنامه نویسی موبایل >  برنامه نویسی موبایل با دلفی

## mehdi5106

با سلاماز دوستانی که در زمینه برنامه نویسی موبایل با دلفی کار کردند ، خواهش می کنم اطلاعاتشون رو اینجا قرار بدن تا هم من و هم بقیه ازش استفاده کنند و اینکه چه نرم افزارهایی لازم هست و از کجا باید تهیه کنیم.با تشکر

----------


## sasan_vm

سلام
برای Mobile programming دلفی را فراموش کن فقط ++C

----------


## AlirezaBahredar

> سلام
> برای Mobile programming دلفی را فراموش کن فقط ++C


دوست عزیز احتیاجی به فراموش کردن چیزی نداریم.....چون.......
http://dn.codegear.com/article/33066
بورلند کولاک میکند.

----------


## vcldeveloper

> دوست عزیز احتیاجی به فراموش کردن چیزی نداریم.....چون.......
> http://dn.codegear.com/article/33066
> بورلند کولاک میکند.


اون مربوط به ویندوز موبایل هست. احتمالا منظور sasan_vm سیستم های Symbian بود. در هر حال، برای برنامه نویسی موبایل در سایت یک بخش در نظر گرفته شده، همونجا بحث کنید.

----------


## mahdi129

سلام دوستان من برنامه ای را با زبان دلفی برای کامپیوتر شخصی  نوشته ام و می خواهم که در موبایل اجرا کنم کسی می تواند راهنماییم کند که چکار کنم . متشکرم

----------


## Mr.Olympia

راستش من خودم دلفی کار نکردم ولی از اونجایی که شنیدم دلفی شبیه Pascal هست و یه برنامه هم به نام MidletPascal هست که به وسیله اون میتونید فرم ها و برنامه های ساده ای برای موبایل بنویسید و دارای یک Helper بسیار کامل هستش و درون همون کلی مثال و ... برای برنامه نویسی تحت MidletPascal وجود داره و زبانش هم تقریبا شبیه Pascal هست ولی زیاد حرفه ای نیست و به پای خود جاوا نمیرسه البته برای سیستم عامل های تحت جاوا که این روزا دیگه همه گوشی ها جاوا رو ساپورت میکنن




> سلام دوستان من برنامه ای را با زبان دلفی برای کامپیوتر شخصی نوشته ام و می خواهم که در موبایل اجرا کنم کسی می تواند راهنماییم کند که چکار کنم . متشکرم


من میگم همچین چیزی محاله ممکنه چون برنامه ای که شما نوشتید تحت پلت فرم ویندوز هست و کدهاش برای ویندوز آماده شدن شما نمیتونید کدهایی رو که واسه پلت فرم ویندوز نوشتید تحت موبایل اجرا کنید این دو خیلی با هم فرق دارن !!!

----------


## echoes

کسی compact framework برای دلفی رو داره، من رفتم سایتش باید حتما رجیستر شده باشی!!!

----------


## vcldeveloper

> کسی compact framework برای دلفی رو داره، من رفتم سایتش باید حتما رجیستر شده باشی!!!


Compact Framework ایی مخصوص دلفی وجود نداره؛ همون Net Compact Framework. هست که توسط مایکروسافت منتشر میشه و مجانی هست و می تونید از سایت مایکروسافت دانلود کنید.

----------


## echoes

> Compact Framework ایی مخصوص دلفی وجود نداره؛ همون Net Compact Framework. هست که توسط مایکروسافت منتشر میشه و مجانی هست و می تونید از سایت مایکروسافت دانلود کنید.


اگه من بخوام از اون استفاده کنم یابد چیکار کنم؟ در دلفی 2006

----------


## vcldeveloper

> چیکار کنم؟ در دلفی 2006


Delphi for .NET Compact Framework Preview Quickstart Guide
Developing Pocket PC applications with Delphi 2006

----------


## Nima_NF

> سلام دوستان من برنامه ای را با زبان دلفی برای کامپیوتر شخصی نوشته ام و می خواهم که در موبایل اجرا کنم کسی می تواند راهنماییم کند که چکار کنم .





> من میگم همچین چیزی محاله ممکنه چون برنامه ای که شما نوشتید تحت پلت فرم ویندوز هست و کدهاش برای ویندوز آماده شدن شما نمیتونید کدهایی رو که واسه پلت فرم ویندوز نوشتید تحت موبایل اجرا کنید این دو خیلی با هم فرق دارن !!!


بر عکس این کار شدنی است.
اگر برنامه ای که می نویسید ، از تابع ها و امکاناتی استفاده کنید که بین هر دو نوع دات نت یعنی Compact Framework و  Framework مخصوص ویندوز مشترک باشند و پشتیبانی شوند ، برنامه شما قابل کامپایل شدن به هر دو پلتفرم هست . کدهای کامپایل شده چیز هایی متفاوتی هستند ، اما فقط صورت توابع استفاده شده در کدها در ظاهر یکسان هستند.
از MSDN می توانید استفاده کنید تا ببینید که کدام توابع مشترکند. (البته مطلب فوق در مورد pocktet PC ها می باشد)

در هر حال دلفی برای این گونه برنامه نویسی ها فوق العاده ضعیف هست و هنوز یک چیز کامل برای موبایل نیست .بهتر هست ، اگر می خواهید برنامه نویسی موبایل کنید از سایر برنامه نویسی ها استفاده کنید.

----------


## vcldeveloper

> در هر حال دلفی برای این گونه برنامه نویسی ها فوق العاده ضعیف هست و هنوز یک چیز کامل برای موبایل نیست .بهتر هست ، اگر می خواهید برنامه نویسی موبایل کنید از سایر برنامه نویسی ها استفاده کنید.


هر چیزی که Compact Framework ارائه کنه در دلفی هم قابل دسترس هست، پس از این جهت هیچ کمبودی وجود نداره. تنها مورد طراحی ویژوال فرم ها ست که مایکروسافت تمایلی نداره شرکت های دیگه امکان ارائه همچین قابلیتی رو داشته باشند. توسعه دهندگان دلفی هم قبلا بارها اعلام کردند که با شرایط موجود اگه شرکتی بخواد پشتیبانی از طراح فرم گرافیکی برای Compact Framework رو فراهم کنه، باید خودش از پایه همه چی رو بنویسه و نمی تونه از امکانات ارائه شده توسط مایکروسافت استفاده کنه.
در هر حال، بجز طراح گرافیکی فرم، سایر امکانات ارائه شده در Compact Framework در دلفی پشتیبانی میشه.

----------


## Mr.Olympia

> بر عکس این کار شدنی است.
> اگر برنامه ای که می نویسید ، از تابع ها و امکاناتی استفاده کنید که بین هر دو نوع دات نت یعنی Compact Framework و Framework مخصوص ویندوز مشترک باشند و پشتیبانی شوند ، برنامه شما قابل کامپایل شدن به هر دو پلتفرم هست


ببخشید یعنی بعد شما میاید فرمی که توی ویندوز نمایش داده میشه رو تبدیل به فرم موبایل میکنید امکان نداره

----------


## vcldeveloper

> بعد شما میاید فرمی که توی ویندوز نمایش داده میشه رو تبدیل به فرم موبایل میکنید


نه رابط کاربر باید جدا طراحی بشه. کلا تبدیل یک پروژه که قبلا برای ویندوز دسکتاپ نوشته شده به نرم افزار موبایل در تئوری امکان پذیر هست. در عمل همچین کاری اصلا به صرفه و معقول نیست.
عملا باید قبل از شروع پروژه به این نکته که این پروژه باید روی موبایل هم کار کنه، توجه بشه و از همان ابتدا به نکات مربوط به هر دو پلت فرم پرداخته بشه. محدودیت های Compact Framework و پلت فرم Windows Mobile نسبت به Framework کامل دات نت و ویندوز دسکتاپ به اندازه ایی هست که به این راحتی نمیشه یک پروژه فرضی نوشته شده برای دسکتاپ رو به موبایل منتقل کرد، میشه گفت تقریبا محاله. حتی اگر این کار هم انجام بشه، باز هم باید رابط کاربر دوباره طراحی بشه.

----------


## Nima_NF

> ببخشید یعنی بعد شما میاید فرمی که توی ویندوز نمایش داده میشه رو تبدیل به فرم موبایل میکنید امکان نداره


من این کار را قبلا انجام دادم.

به این کار می گویند cross-platform در دات نت، اگر کمی بگرید می بینید که شرکت های زیادی هستند که بازی یا نرم افزاری یکسان را (دقیقا به همان شکل قبلی) برای هر دو سیستم ارائه می کنند و از همین شیوه استفاده می کنند.
شما برای اینکه این کار را انجام دهید ، باید از ابتدا هدف از طراحی ، ساخت برنامه برای دو پلتفرم باشد و همه تفاوت ها را در نظر بگیرید و به پیش روید و بدین شکل به راحتی انجام می شود، نه اینکه یک پروژه بزرگ ساخته شده برای desktop را بخواهید به windows mobile منتقل کنید ، که این طوری کار کمی سخت می شود ولی شدنی است. 

*روش انجام:*
شما باید دو پروژه جداگانه داشته باشید ، یکی برای PocketPC و دیگری برای ویندوز Desktop  و فایل های شما فقط باید در یکی از این پروژه ها ساخته شود و پروژه دیگر باید به صورت خالی طراحی شود و همه فایل های پروژه دیگر را به این پروژه خالی اضافه کنید ، به این شکل هر دو پروژه از فایل های مشترک استفاده می کنند و شما می توانید یکی را با .Net compact framework و دیگری را با Net تحت دسکتاپ کامپایل کنید.
ضمنا در بخش properties  پروژه دسکتاپ به بخش build آن بروید و نام conditional compilation را مثلا DESKTOP  بگذارید و برای پروژه موبایل خود هم نام POCKETPC .
به این ترتیب از طریق پیش پردازنده ها و غیره می توانید کد های منحصر به همان پروژه را بنویسید و آن ها را کامپایل کنید ، مثلا فرم متفاوت برای هر دو و یا نه دقیقا همان فرم را برای هر دو استفاده می کنید:

#if DESKTOP
          //for  example:
          Console.WriteLine("On Desktop!");
#else
          //for  example something else:
           Console.WriteLine("On Device!");
#endif 



بلاگ زیر برای این کار بسیار معروف هست:

http://www.themssforum.com/Compact/Cross-platform
http://www.danielmoth.com/Blog/2004/...lframe_17.html

یک نمونه کوچک هم ساختم که فایل اجرایی ان ها را در اینجا ضمیمه کردم ، یکی برای compact framework v2 و دیگری برای .Net v2  تحت دسکتاپ کامپایل شده است که حجم فایل اجرایی آن ها هم متفاوت است: ( ضمنا روی pocket PC خودم هم تست کردم )

----------


## Mr.Olympia

راستش من تحت دات نت کار نکردم تنها کارم به کار کردن با C#‎ محدود میشه 
از شما خیلی ممنونم که اشتباه منو برطرف کردید ولی همونطوری که آقا نیما (مدیر بخش) اشاره کردن :



> نه اینکه یک پروژه بزرگ ساخته شده برای desktop را بخواهید به windows mobile منتقل کنید


(منم تقریبا منظورم همین بود (که بازم شدنی است))

حالا ما یه حرفی میزنیم رسمش نیست دو تا مدیر با هم بیان کل ما رو بخوابونن (ما که لنگ انداختیم) (شوخی)

میگم مثلا میشه منه نوعی که یه برنامه با ویژوال بیسیک برا ویندوز نوشتم و کمپایل کردم با همون کد ها بیام برنامه رو برای موبایل تغییر بدم و کمپایل کنم ؟؟؟

----------


## Nima_NF

> میگم مثلا میشه منه نوعی که یه برنامه با ویژوال بیسیک برا ویندوز نوشتم و کمپایل کردم با همون کد ها بیام برنامه رو برای موبایل تغییر بدم و کمپایل کنم ؟؟؟


فکر می کنم ، روش کار را در پست قبل به طور کامل ذکر کردم و قابل استفاده برای زبان های تحت دات نت هست (VB.Net و #C و ...  ) ، برای غیر دات نت باید دنبال  ++C یعنی Native باشید که همه سری گوشی های ویندوز موبایل را پشتیبانی می کند و انتشار آن برای هر دو پلتفرم نسبت به سایر زبان ها راحت ترین و قوی ترین است .

کسی که می خواهد چنین کاری انجام دهد باید به خوبی تفاوت های هر دو سیستم را بشناسد تا بتواند قسمت هایی که پشتیبانی نمی شوند را برای PocketPC تغییر دهد و یا حذف  کند و سپس دست به این کار بزند.

----------

