View Full Version : نوشتن برنامه portable در delphi
hector2000
سه شنبه 05 مهر 1390, 12:06 عصر
با سلام
من قصد دارم يك برنامه مالي كوچك در دلفي بنويسم حالا چند مورد برام پيش امده
-مي خواهم برنامه ام portable باشد و در نسخه هاي مختلف ويندوز اجرا شود
-مشكلي با حروف فارسي نداشته باشد و كلمات را بدرستي اجرا كند
-مي خواهم از بانك اطلاعاتي sqllite استفاده كنم كه بسيار مناسب براي اين كار است
حال مي خواستم بپرسم دوستان چه نسخه اي از دلفي را پيشنهاد مي كنند؟دلفي 7 يا 2010؟
مي خواهم فايل نهايي من حدالمقدور فقط يك فايل exe باشد و در نمايش و تايپ فارسي در ويندوزهاي مختلف مشكلي نداشته باشد و همچنين نيازي نباشد كه براي اجرا شدن برنامه ام نرم افزار خاصي نصب شود
یوسف زالی
سه شنبه 05 مهر 1390, 13:58 عصر
سلام.
جوابها به ترتیب:
1- برنامه کامپایل شده با دلفی در تمام نسخه های ویندوز (3.1 به بالا) اجرا می شه
2- دلفی 7 سر فارسی مشکلاتی داره که با تنظیمات ویندوز و یا با نصب کامپوننت ها رفع می شه. نسخه 2010 مشکلی نداره.
3- منطقا نسخه های بالاتر بهترند
خروجی دلفی در حالت نرمال فقط یک برنامه exe هست. مگر اینکه به عمد از Dll یا Bpl یا ... استفاده کرده باشید.
hector2000
سه شنبه 05 مهر 1390, 14:11 عصر
با سلام و تشكر
ايا منظور شما اين است كه در دلفي 2010 برنامه نوشته شده حتي در ويندوز 98 هم اجرا ميشود؟
چگونه ميتوانيم از sqllite در برنامه هايمان استفاده كنيم؟ايا نمونه كدي در اين زمينه وجود دارد؟استفاده از sqllite نيازمند اينست كه كاربر نهايي در كامپيوتر خود sqllite را نصب كند و يا اينكه نيازي نيست؟ايا باعث افزودن dll در كنار فايل exe ميشود و يا اينكه ميتواند به فايل exe بچسبد؟
ممنونم
Felony
سه شنبه 05 مهر 1390, 15:50 عصر
گونه ميتوانيم از sqllite در برنامه هايمان استفاده كنيم؟ايا نمونه كدي در اين زمينه وجود دارد؟
با استفاده از کامپوننت هایی مثل SQL DAC یا SQL Mem یا SQLite4Delphi یا استفاده از یک Wrapper مثل SQLiteWrap .
استفاده از sqllite نيازمند اينست كه كاربر نهايي در كامپيوتر خود sqllite را نصب كند و يا اينكه نيازي نيست؟ايا باعث افزودن dll در كنار فايل exe ميشود و يا اينكه ميتواند به فايل exe بچسبد؟
باید DLL مربوط به SQLite در سیستم مقصد باشه .
یوسف زالی
سه شنبه 05 مهر 1390, 17:03 عصر
اگر از API های ناموجود در مقصد استفاده کنید ارور خواهید داشت.
چه مستقیم باشه چه دستور یا تابعی از اون استفاده کنه.
hector2000
سه شنبه 05 مهر 1390, 18:15 عصر
با استفاده از کامپوننت هایی مثل SQL DAC یا SQL Mem یا SQLite4Delphi یا استفاده از یک Wrapper مثل SQLiteWrap .
با تشكر
ايا نمونه كدي را ميتوانيد در اين باره قرار بدهيد؟
ايا استفاده از كامپونتهايي كه فرموديد نيز فايلهاي dll اضافي به پروژه اضافه مي كند؟
BORHAN TEC
سه شنبه 05 مهر 1390, 18:40 عصر
ايا منظور شما اين است كه در دلفي 2010 برنامه نوشته شده حتي در ويندوز 98 هم اجرا ميشود؟
توجه داشته باشید، برنامه هایی که با دلفی 2009 و نسخه های جدیدتر نوشته می شوند توانایی اجرا در ویندوزهای قبل از 2000 را ندارند و از طرفی فکر نمی کنم که دیگر نیاز به نوشتن برنامه ای باشد که بتواند آنرا در ویندوزهای قبل از 2000 اجرا کرد چون فکر می کنم که این روزها ویندوز نصب شده در بیش از 99% سیستم ها حداقل XP است.
Felony
چهارشنبه 06 مهر 1390, 05:41 صبح
با تشكر
ايا نمونه كدي را ميتوانيد در اين باره قرار بدهيد؟
ايا استفاده از كامپونتهايي كه فرموديد نيز فايلهاي dll اضافي به پروژه اضافه مي كند؟
متاسفانه وقت نوشتن و قرار دادن نمونه کد ندارم ، استفاده از SQLite به هر صورت مستلزم وجود DLL مربوط به SQLite هست ، استفاده از اون کامپوننت ها هم همینطور .
- همراه همون کامپوننت ها نمونه های زیادی میتونید پیدا کنید .
hector2000
چهارشنبه 06 مهر 1390, 09:39 صبح
توجه داشته باشید، برنامه هایی که با دلفی 2009 و نسخه های جدیدتر نوشته می شوند توانایی اجرا در ویندوزهای قبل از 2000 را ندارند و از طرفی فکر نمی کنم که دیگر نیاز به نوشتن برنامه ای باشد که بتواند آنرا در ویندوزهای قبل از 2000 اجرا کرد چون فکر می کنم که این روزها ویندوز نصب شده در بیش از 99% سیستم ها حداقل XP است.
با تشكر
ايا نسخه هاي پايين تر مثل نسخه 2007 توانايي ساخت برنامه هايي را دارد كه در ويندوز 98 و همچنين در ويندوز 7 اجرا شود؟
ايا در نسخه 2007 مشكل حروف فارسي را داريم؟نياز است كامپونت tnt را نصب كنيم؟يا اينكه نيازي نيست؟
ممنونم
BORHAN TEC
چهارشنبه 06 مهر 1390, 13:41 عصر
ايا نسخه هاي پايين تر مثل نسخه 2007 توانايي ساخت برنامه هايي را دارد كه در ويندوز 98 و همچنين در ويندوز 7 اجرا شود؟
بله، ولی همانطور که گفتم نیازی نیازی نیست که بر روی ویندوزهای قدیمی مثل 98 سرمایه گزاری کنید چون این نسخه ها دیگر حتی توسط مایکروسافت هم پشتیبانی نمی شوند و بهتر است که بر روی ویندوز XP و نسخه های جدیدتر سرمایه گزاری کنید (البته این فقط نظر شخصی من است و شما در انتخابتان مختارید)
ايا در نسخه 2007 مشكل حروف فارسي را داريم؟نياز است كامپونت tnt را نصب كنيم؟يا اينكه نيازي نيست؟
بله با فارسی در دلفی 2007 مشکل خواهید داشت. باید به این نکته توجه داشته باشید که نسخه های 2009 به بعد دلفی بر مبنای یونیکد هستند و نسخه های قدیمی تر بر مبنای یونیکد نیستند.
SAASTN
چهارشنبه 06 مهر 1390, 18:24 عصر
مي خواهم فايل نهايي من حدالمقدور فقط يك فايل exe باشد
یکی از گزینه های شما استفاده از Access هست که نیازی به نصب دیتابیس روی سیستم مقصدر نداره. البته باید ببینید حجم داده تون چقدره چون Access توی حجمهای بالا کارائی پائینی داره و البته نمیدونم روی 98 هم باهاش مشکلی خواهید داشت یا نه.
گزینه دیگتون استفاده از DBISAM (http://www.elevatesoft.com/products?type=delphibcb) هست، این موتور توی کد برنامه کامپایل میشه و نیازی به چیز دیگه ای نداره. البته من با این موتور کار نکردم ولی یکی از همکارام می گفت که عملکرد خیلی بهتری نسبت به Access داره و تو حجم بالای چندصد هزار رکورد هم کارایی مناسبی داره، که تصور می کنم برای یه نرم افزار حسابداری عمومی رقم مناسبیه.
برنامه نوشته شده حتي در ويندوز 98 هم اجرا ميشود؟
ببینید، وقتی از تولید یه نرم افزار قابل حمل صحبت می کنیم به این منظور هست که می خوایم از تمام ظرفیت های بازار استفاده کنیم، خوب حالا باید بازار رو بررسی کنیم و ببینیم از چه بخشهایی تشکیل شده و هر بخش چه از چه حجمی از مشتریا تشکیل شده و برای بدست آوردن او حجم از مشتری ما چه هزینه ای باید بکنیم. واقعیت اینه که اگه امروز یه نرم افزار روی 98 اجرا نشه مشتری عمده ای رو از دست نمیده، بنا بر این پرداختن هر هزینه ای برای اجرای برنامه بر روی 98 هم زیاده. به عنوان مثال من در جریان فروش یه نرم افزار نسبتا عمومی طی مدت 6 سال هستم و چیزی که تو زهنمه تنها 3 مورد درخواست اجرا روی ویندوزهای پائین تر از XP هست. تو شرایط فعلی از سرمایه گذاری برای اجرای برنامتون روی مک نتیجه خیلی بهتری نسبت به چیزی مثل ویندوز98 می گیرید.
اما اگه بازار هدف شما بازار خاص تری هست و شما دید دیگه ای نسبت بهش دارید یه بحث دیگست، توجه داشته باشید قابلت حمل در مورد بازار های خاص خیلی موضوعیت نداره، چون ممکنه شما رو مجبور کنه از تکنولوژی های هم عصر 98 استفاده کنید و باز هم ممکنه که نرم افزار شما دیگه قابلیت اجرا روی سیستم عامل های بالاتر رو پیدا نکنه.
ايا در نسخه 2007 مشكل حروف فارسي را داريم؟نياز است كامپونت tnt را نصب كنيم؟يا اينكه نيازي نيست؟
بله با فارسی در دلفی 2007 مشکل خواهید داشت.
منظور چه جور مشکلی هست؟ اگه منظور فارسی نویسی در ظاهر برنامه و ورود و خروج اطلاعات هست که با یه نصب عادی زبان روی سیستم مقصد انجام میشه. به هر صورت سالیان ساله که نرم افزار های فارسی زبان نوشته میشن و تمام مسائل اونها مشخص شده و تقریبا برای همه این مسائل راه حل های مناسبی ارائه شده. با کمی جستجو تو همین سایت می تونید مشکلات احتمالی رو بر طرف کنید. اما در حال حاظر XE نگارش پایداری هست و از یونیکد هم پشتبانی می کنه که گزینه مناسبی برای استارت یه پروژست، بهتره در کنار قابلیت حمل به نکاتی مثل بروز بودن ابزارها هم فکر کنید و در نهایت با سبک سنگین کردن همه فاکتورها تصمیم گیری کنید.
موفق باشید
hector2000
چهارشنبه 06 مهر 1390, 20:39 عصر
با تشكر از شما دوست عزيز
بانك اطلاعاتي اكسس براي اجرا شدن در سيستم مقصد فكر مي كنم به نصب يك برنامه اي نياز داشته باشد(اسمش را متاسفانه به ياد ندارم) ولي با بررسي هاي بنده sqllite نياز به نصب هيچ برنامه اي در كامپيوتر كلاينت نداره و فقط دو فايل dll به پروژه اضافه مي كند
من اعتقاد دارم بايد برنامه به گونه اي باشد كه كاربر براي اجرا و درست كار كردن ان كار خاصي را وادار نباشد كه انجام دهد (چون اكثر كاربران اطلاعات كمي نسبت به كامپيوتر دارند)
بطور قطع هر برنامه اي كه نوشته شود در ويندوز xp اورجينال داراي مشكل در نمايش حروف فارسي است و كاربر مي بايستي در بخش regional setting ان تيك معروف را بزند حالا خيلي بهتر است كه برنامه اي بدون نياز به ان بخش حروف فارسي را درست نمايش داده و بدون مشكل كار كند.شايد بتوان گفت برنامه هاي portable واقعي برنامه هاي هستند كه تحت داس اجرا مي شوند براي مثال برنامه حسابداري اسان تحت داس است و توسط سي بيلدر نوشته شده و درست است كه تحت داس نوشته شده و لي براي اجرا شدنش به هيچ چيز نياز ندارد.
هدف من نوشتن برنامه اي است كه همانند اينگونه برنامه ها در ويندوز بدون مشكل و يا نيازمندي به كار خاصي اجرا شود
DBISAM مورد خوبيه ولي متاسفانه با يوني كد مشكل داره و شركت سازندش برنامه ElevateDB را پيشنهاد داده كه اين مشكل را ندارد ولي متاسفانه من نتونستم لينك دانلودي ازش پيدا كنم .(متاسفانه قيمتش هم كم نيست و صرف نمي كنه كه ادم بخرتش)كسي از دوستان اين برنامه را دارد؟(ميشه تو پيغام خصوصي لينكشو برام بزاريد؟)
http://www.elevatesoft.com/products
دوستان همچنين اگر لطف كنيد و يك sample از نحوه استفاده از DBISAM قرار بديد ممنون ميشم.چون هيچ مثالي ازش نيست
BORHAN TEC
چهارشنبه 06 مهر 1390, 23:48 عصر
منظور چه جور مشکلی هست؟ اگه منظور فارسی نویسی در ظاهر برنامه و ورود و خروج اطلاعات هست که با یه نصب عادی زبان روی سیستم مقصد انجام میشه.
بله، دقیقاً منظورم همین بود که خود شما توضیحات کاملش رو دادین.
SAASTN
پنج شنبه 07 مهر 1390, 00:16 صبح
بانك اطلاعاتي اكسس براي اجرا شدن در سيستم مقصد فكر مي كنم به نصب يك برنامه اي نياز داشته باشد
اینطور نیست، همه چیزهای لازم با خود ویندوز نصب میشه و حتی نیاز نیست MSOffice روی سیستم مقصد نصب باشه. Access برای برنامه های کوچیک واقعا گزینه خوبیه.
چون اكثر كاربران اطلاعات كمي نسبت به كامپيوتر دارند
به همین دلیله که تمام نرم افزارهای حرفه ای، راهنمای نصب، FAQ، آموزش سریع و ... دارند.
حالا خيلي بهتر است كه برنامه اي بدون نياز به ان بخش حروف فارسي را درست نمايش داده و بدون مشكل كار كند.
قطعا همینطوره. من باز هم میگم که مسئله تنها هزینه و فایده ست. حتی اگر فرض شما رو در portable بودن نرم افزارهای تحت داس بپذیریم، خود شما حاضرین برای رسیدن به قابلیت حمل بیشتر، یه برنامه حسابداری تحت داس بنویسید؟ خوب ممکنه برنامه تحت داس قابلیتی رو اضافه کنه ولی در مقابل خیلی چیز ها رو هم از ما میگیره.
من وقتی دارم یه دمو آماده می کنم و قصد دارم تو یه نمایشگاه توزیعش کنم برام مهمه که در اولین نمایش تمامی قابلیتهای اون دمو به درستی کار کنه، چون اگه اینطور نباشه اون آدم سی دی مو با یه پرتاب سه امتیازی روونه سطل زباله می کنه، پس تو این شرایط ممکنه تن به هر کاری بدم. اما وقتی یه برنامه حتی 10 هزار تومنی نوشتم، پیش خودم می گم اگه کاربرم تا حالا فارسیش رو نصب نکرده باشه حاضره برای اجرای برنامه یه بار سیستمشو resart کنه، تا یه ماه دیگه هم اگه رفیقش همین مشکل براش پیش بیاد یادش نمی مونه که راهنماییش کنه. خوب ممکنه شما بگی مقصود من یه برنامه قابل حمل به معنای حقیقی اونه. یعنی حسابدار برنامه من رو تو یه فلش حمل میکنه و هر جا که برسه ازش استفاده می کنه، و این هم درست نیست که روی هر سیستم جدیدی رسید نصب و restart و ... داشته باشه. این مطلب تا به اینجا پذیرفتس و باز هم میسرفه که ما برای رسیدن به قابلیت حمل بیشتر هزینه کنیم. اما ممکنه مسائل دیگه ای پیش بیان، به عنوان مثال امنیت نرم افزار، خوب ما برای حفاظت از برنامه هامون یا از قفل های سخت افزاری استفاده می کنیم یا قفل های نرم افزاری. هر دوی این ها امکان اجرای بدون دردسر روی سیستم های جدید رو از نرم افزار می گیرن، قفل های سخت افزاری که نیاز به نصب driver دارن و قفل های نرم افزاری عموما یه کد فعال سازی می خوان که از روی مشخصات سخت افزاری سیستم مقصد تولید میشه.
طبق عادت مالوف دارم با زیاده گویی مسیر تاپیک رو از موضوع اصلیش دور می کنم، اینه که قصد ادامه این بحث رو ندارم. فقط می خوام بگم که هدفم به هیچ عنوان منحرف کردن شما از مسیری که درش قرار دارید نیست، اما راستش احساس کردم شما در یک موقعیت انتخاب قرار گرفتید و برای این انتخاب تنها یک ملاک رو دارید میسنجید. همونطور که قبلا هم گفتم بهتره فاکتورهای مختلف رو در یک سطح قرار بدیم و با توجه به اولویت ها و محدودیت هامون به اون فاکتور ها وزن بدیم و در نهایت کوتاهترین مسیری رو انتخاب کنیم از تمام نقاط هدف ما عبور کنه. اگر هم قضاوت بی موردی کردم قبلا عذر می خوام.
hector2000
پنج شنبه 07 مهر 1390, 11:45 صبح
با سلام و تشكر از شما دوست ارزشمندم
گفته هاي شما متين است ولي بگذاريد يك مقدار بيشتر بحث كنيم:
من بموجب طراحي نرم افزار و شناسايي نيازهاي نرم افزاري مدت بسيار زيادي را حجره هاي مختلف بازار و همچنين در شركتهاي دست پايين در داخل كشور و همچنين شركتهاي خارج از كشور مشغول فعاليت بودم و به نتايج خوبي در اين زمينه رسيدم. اكثر افراد خوب بودن برنامه را در ظاهر ،سادگي (در كار كردن)،قابل حمل بودن مي پندارن و مثلا از قابليت جديد زبانهاي برنامه نويسي اطلاع ندارند و دوست هم ندارند كه سر بياورند.براي انها برنامه اي خوب است كه بتواند خواسته هاي انها را بصورت كامل و به شيوه ساده اي بر طرف كند.لازم ميدارم در اينجا به برنامه حسابداري اسان اشاره كنم كه اين برنامه تحت داس است (و چنانچه مطمئنا هر كدام از ما به يك برنامه حسابداري نياز داشته باشيم از ان استفاده نخواهيم كرد ) ولي نمي توانيد تصور كنيد اين برنامه كه به قيمتي تا 200 هزار تومان به فروش مي رسد،چقدر طرفدار دارد.خوب علت چيست؟علت اينست كه 1-كار مصرف كننده(يوزر) را انجام ميدهد (با كمترين امكانات گرافيكي و برنامه نويسي و حتي برنامه فاقد هر گونه بانك اطلاعاتي امروزي است)2-
قابل حمل بودن(portable).اين برنامه در تمامي نسخه هاي ويندوز اجرا ميشود(حتي در داس هم اجرا ميشود)پس تمامي كاربراني كه از سيستم عامل ويندوز استفاده مي كنند را شامل ميشود(شايد خنده دار باشد ولي من بسياري از بازاريان و كسبه و.. را ميشناسم كه از ويندوز 98 استفاده مي كنند)حتي جالب است اين برنامه هيچ مشكلي با حروف فارسي هم ندارد.
طي بررسي هاي بنده برنامه اي ميتواند با اين برنامه و برنامه هاي مشابه رقابت كند كه 1-هم سادگي را در كار كردن داشته باشد 2-به همان گونه و تا حد امكان portable باشد و كاربر بدون كمترين زحمتي بتواند از ان استفاده كند.
متاسفانه علم امروز ما در همه زمينه ها بخصوص در زمينه نرم افزار كامپيوتر از صنعتمان خيلي پيشي گرفته و خودش را با كشورهاي بزرگ دنيا مقايسه مي كند.برنامه نويسان ما پيشاپيش همكارانشان در ايالات متحده پيش مي روند و اصلا توجهي ندارند كه مصرف كننده نهاي شان چقدر اطلاعات دارد و چه مي خواهد.برنامه نويسان ما فقط درصددن تا از جديدترين تكنولوژي ها استفاده كنند كه جلوي بقيه كم نياورند ولي در صورتي كه جامعه انها توقعات ديگري دارد.(توقع انها فقط درست كار كردن برنامه،براوردن خواسته انها،بدون خطا اجرا شدن،خرج گذاشتن كمتر دست انها و مسائلي اين چنيني است)
در زمينه قفل سخت افزاري هم بنده اعتقاد دارم كارهاي بهتري نيز مي توان انجام داد كه در صورت نياز اشاره خواهم كرد)
خوب اجازه بدهيد بر گرديم به بحثمان:
دوستان من برنامه DBISAM vcl و همچنين DBISAM ADD را نصب كرد.شركت ان گفته كه اين برنامه يوني كد را ساپورت نمي كند.ايا با استفاده از كامپونت tnt اين مشكل مرتفع ميشود؟
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.