-
سلام ;)
قصد دارم یکم اصلاحات تو این پست ایجاد کنم. دوستان اگه در این رابطه انتقاد یا پیشنهادی دارند مطرح کنند سعی می کنم اشکالات را اصلاح کنم.
لازاروس Lazarus
(http://shahriary.staffcms.um.ac.ir/imagesm/1064/stories/lazarus/lazarus-ide.png)
اول : لازاروس چیه ؟
پروژه لازاروس در سال 1999 توسط سه نفر (Cliff Baeseman - Shane Miller - Michael A. Hess) آغاز شد، که هر سه آنها در حل پروژه Megido تلاش کرده بودند. پروژه لازاروس در ناامیدی آغاز شد ولی در طول سالها توسط توسعه دهندگان و هواداران رشد کرد.
لازاروس یک IDE شبیه به دلفی و مستقل از سکو است که از پاسکال آزاد استفاده می کند. همچنین شامل LCL است که کم و بیش با VLC دلفی سازگار است. پاسکال آزاد کامپایلری با مجوز GPL است که بر روی لینوکس،ویندوز، OS/2 ،مک و .... قابل اجرا است. پاسکال آزاد طراحی شده تا بتواند Syntax دلفی که شی گرا است را کامپایل و درک کند. لازاروس قطعه پاژل گم شده ای است که به شما اجازه توسعه دلفی گونه برنامه را در تمام سیستم عامل ها می دهد.
بر خلاف جاوا که تلاش می کند تا یک بار بنویسد و همه جا اجرا کند، لازاروس و پاسکال آزاد تلاش می کند تا یک بار بنویسید و در هر جا کامپایل کنید. چونکه دقیقا همان کامپایلر بر روی تمام سیستم عامل های فوق در دسترس است به این معنی که شما نیازی به هر نوشتنی برای تولید محصولات مشابه در سیستم عامل های مختلف ندارید.
میتونید توضیحات بیشتری را در لینک زیر مطالعه کنید
http://lazarus.freepascal.org/index.php?page=about (http://lazarus.freepascal.org/index.php?page=about)
تصاویر محیط لازاروس در سیستم عامل های مختلف
http://wiki.lazarus.freepascal.org/Screenshots (http://wiki.lazarus.freepascal.org/Screenshots)
دوم : چطور نصب کنبم؟
همونطور که میدونید لازاروس در اغلب سیستم عامل ها قابل اجرا است. به همین علت نسخه های مختلفی سازگار با سیستم عامل مورد نظر تولید و منتشر شده که ممکنه از یک یا چند بخش برای نصب تشکیل شده باشه.
در نسخه های مخصوص ویندوزی هر دو ویرایش ۳۲ و ۶۴ بیتی منتشر شده و فقط کافیه فایل نصبی را اجرا و عمل همیشگی در ویندوز را (همون Next و Next و Next و ...) را انجام بدید تا روی سیستم شما نصب بشه.
در توزیع های گنو/لینوکسی هم می توانید از مرکز برنامه های توزیع مورد نظرتون اون رو دریافت و نصب کنید. البته این نسخه از نسخه نهایی روز قدیمی تر است ولی اگر کاربر تازه کار هستید اصراری به آخرین ویرایش نداشته باشید (دردسرش کمتره)
همچنین می تونید با دانلود و نصب دستی بسته های لازروس آخرین ویرایش (ارائه شده توسط تیم توسعه دهنده لازاروس) رو داشته باشید.
برای نسخه های Deb و RPM در گنو/لینوکس باید ۳ بسته دانلود و نصب بشن
۱- کامپایلر پاسکال آزاد
۲- سوروس کامپایلر پاسکال آزاد
۳- لازاروس
این سه بسته با توجه به نسخه ارائه شده و نوع معماری سیستم نام های متفاوتی خواهند داشت، مثلا در سیستم من که از منیت ۶۴ بیتی استفاده می کنم این بسته ها باید نصب شوند :
fpc_2.6.4-140420_amd64.deb
fpc-src_2.6.4-140420_amd64.deb
lazarus_1.2.4-0_amd64.deb
در زیر لینک آموزش تصویری نصب لازاروس در دبیان را که قبلا از اون استفاده می کردم میتونید ببینید. برای سیستم خودتون فقط کافیه نام بسته ها را با بسته آخرین ویرایش عوض کنید.
لینک : http://www.aparat.com/v/vLNG0 (http://www.aparat.com/v/vLNG0)
سوم : از کجا دانلود کنیم؟
لینک زیر آخرین ویرایش های لازاروس را با توجه به سیستم عامل و معماری سیستم به شما می دهد.
http://lazarus.freepascal.org/index.php?page=downloads (http://lazarus.freepascal.org/index.php?page=downloads)
در حال حاضر آخرین ویرایش لازاروس ۱.۲.۴ به همراه کامپایلر ویرایش ۲.۶.۴ می باشد.
چهارم : از کجا کمک بگیریم؟
لازاروس فروم خیلی خوبی داره و اگه بتونید مشکلتون رو به انگلیسی توش مطرح کنید حتما جواب هایی مناسب دریافت می کنید. با این حال منم اگه جواب سوالی رو بدونم حتما پاسخ اون رو براتون خواهم گفت.
در ضمن برای کسانی که تازه می خوان شروع کنن یک کتاب راحت و ساده رو معرفی می کنم که با مطالعه اون دستورات اولیه و قواعد استفاده از اونها رو میتونید یاد بگیرید
لینک http://bayanbox.ir/id/8587011971051098841?info (http://bayanbox.ir/id/8587011971051098841?info)
خودم فصل اولش رو تا این زمان ترجمه کردم
لینک ترجمه فصل اول http://bayanbox.ir/id/7004172254064634441?info (http://bayanbox.ir/id/7004172254064634441?info)
به زودی بر می گردم و این بخش رو کامل تر می کنم.
یا حق
-
سلام
خیلی زود برگشتم .
برای نصب لازاروس ۲ فایل لازمه که دانلود بشن. البته به شرطی که نخواهید از روی مخازن نصب کنید. من با اوبونتو ۱۲.۰۴ برای نصب از مخازن ویرایش ۰.۹.۳۰.۲ امکان نصب داشت در حالی که این نسخه قدیمی هستش و از FPC 2.4.4 استفاده می کنه . در حال حاضر آخرین نسخه لازاروس 0.9.30.4 هست که از FPC 2.6.0 بهره می برد.
(FPC مخفف کامپایلر پاسکال رایگان هست)
http://sourceforge.net/projects/lazarus/files
(البته بعضی وقتا امکان دانلود برای همه از سایت sourceforge.net وجود نداره و به خاطر تحریم نمیزاره دانلود کنیم که من حتما اونا رو براتون یه جای دیگه آپلود می کنم تا بتونید دانلود کنید)
ویرایش های مختلف تو لینک بالا وجود داره که میتونید بسته به نوع سیستم عامل خودتون اون نسخه ای که مناسب هست رو دانلود کنید.
بعد از دانلود
فایل fpc-2.6.0-1.i386.deb.tar را از حالت فشرده خارج کنید و سپس ترمینال را باز کرده به پوشه اون برید و دستور زیر رو اجرا کنید تا مرحله اول نصب انجام بشه.
sudo dpkg -i *.deb
بعد فایل lazarus-0.9.30.4.i386.deb.tar رو از حالت فشرده خارج کنید و مثل مرحله قبل با استفاده از ترمینال به مسیر اون رفته و دستور زیر رو دوباره اجرا کنید
sudo dpkg -i *.deb
اگر مراحل بالا بدون اشکال نصب بشن لازاروس روی سیستم شما قابل دسترس خواهد بود
محیط لازاروس 0.9.30.4 در اوبونتو 12.04
(http://shahriary.staffcms.um.ac.ir/imagesm/1064/stories/screenshot%20from%202012-05-07%201250282.png)
یا حق
-
سلام
میخوام اینبار یک کامپوننت معرفی کنم که تو لازاروس نصب میشه و برای کار با انواع پایگاه های داده استفاده میشه. البته لازاروس به طور پیشفرض ابزارهایی برای اتصال و انجام کارهای مربوط به بانک های اطلاعاتی داره ولی کار کردن با اونها یکم مشکله و برای کسایی که میخوان به انواع پایگاه داده های مختلف (مثل mysql - oracle- firebrid-sqllite-postgrysql) متصل بشن این کامپوننت خیلی مفیده .
ZEOS Access
(http://wiki.freepascal.org/images/2/25/Zeos_Components.png)
همونطور که در بالا مشاهده می کنید از چندین کامپوننت تشکیل شده و برای دانلود میتوانید از لینک زیر آخرین ویرایش اونو دانلود کنید
http://zeoslib.svn.sourceforge.net (http://zeoslib.svn.sourceforge.net)
بعد از باز کردن صفحه بر روی Download GNU tarball کلیک کرده و دانلود شروع خواهد شد.
بعد از دانلود لازاروس را باز کنید و از منوی Package گزینه ی Open Package File را بزنید و سپس به پوشه trunk بعد Packages بعد lazarus بعد zcomponent را باز کنید و در نهایت آن را کامپیال کرده و بعد بر روی install کلیک کنید تا لازاروس دوباره ساخته شود
-
سلام
بعد از نصب لازاروس تو اوبونتو و ساخت اولین پروژه وقتی در دیباگر قصد خروج از برنامه را داشته باشید یه پیام خطا مشاهده می کنید و بستن برانمه دچار اختلال میشه (البته وقتی از طریق لازاروس و دیباگر اون را اجرا کنید) .
برای اینکه این پیام خطا دیگه مزاحم نشه و بستن برنامه به روال معمول انجام بشه این Exception را به قصمت دیباگر اون باید اضافه کنید.
به منوی Envaroment و سپس Option بروید و از پنجره جدید باز شده قسمت Language Exception از زیر گزینه های Debugger را انتخاب کنید و سپس EnterfaceCertical را به گزینه های این قسمت اضافه کنید.
http://shahriary.staffcms.um.ac.ir/imagesm/1064/stories/lazarus/screenshot%20from%202012-05-28%20083133.png (http://shahriary.staffcms.um.ac.ir/imagesm/1064/stories/lazarus/screenshot%20from%202012-05-28%20083133.png)
حالا هنگام بسته شدن برنامه دیگر پیام خطایی ظاهر نمیشه. :D
یا حق
-
بعد از مدتها نسخه 1.0 در ویرایش RC1 و دیروز در نسخه RC2 منتشر شد.
(http://delphi887.persiangig.com/image/lazarus1.0rc2.png)
برای دانلود به لینک زیر مراجعه کنید و نسخه هماهنگ با سیستم عامل خود را دانلود کنید
http://sourceforge.net/projects/lazarus/files (http://sourceforge.net/projects/lazarus/files)
-
انتظارها بلاخره به پایان رسید \\:D/ \\:D/ \\:D/
نسخه نهایی Lazarus 1.0 منتشر شد .
برای دانلود به آدرس http://sourceforge.net/projects/lazarus/files/ (http://sourceforge.net/projects/lazarus/files/) مراجعه نمایید.
-
یک نکته :
از اونجایی که کامپایلر پاسکال همراه لازاروس به طور پیشفرض داده های دیباگ را به فایل اجرایی الحاق می کنه حجم فایل های اجرایی ممکن است خیلی بیشتر از مقدار کدی باشه که تو برنامه نوشته شده .
هرچند که طبق گفته wiki این حجم به نسبت پیچیدگی برنامه در ادامه کمتر از برنامه های مشابه که با ++C نوشته شده است خواهد شد .
(http://wiki.freepascal.org/images/d/de/Lazarus_vs_cpp.png)
برای اینکه این اطلاعات اضافه تو فایل اجرایی قرار نگیره کارهای زیر رو باید یکبار برای تنضیمات کامپایلر لازاروس انجام بدید :
Project|Compiler Options|Code|Smart Linkable (-CX) -> Checked
Project|Compiler Options|Linking|Debugging| Uncheck all except
Project|Compiler Options|Linking|Debugging|Strip Symbols From Executable (-Xs) -> Checked
Project|Compiler Options|Linking|Link Style|Link Smart (-XX) -> Checked
با انجام این تنظیمات حجم فایل نهایی کمتر از حالت قبل خواهد شد.
برای اطلاعات بیشتر میتوانید اطلاعات Wiki زیر را مطالعه نمایید
http://wiki.freepascal.org/Lazarus_Faq (http://wiki.freepascal.org/Lazarus_Faq)
-
یه سوال ؟
آیا لازاروس برا اندروید هم کامپیایل میکنه؟
-
یه سوال ؟
آیا لازاروس برا اندروید هم کامپیایل میکنه؟
من دقیقا از نحوه برنامه نویسی اون برای اندروید خبر ندارم و تا حالا روش دقیق نشدم ولی شنیدم که یک کارایی میکنه تو این زمینه
این لینکها رو مطالعه بفرمایید امیدوارم کمک کنه .
http://wiki.freepascal.org/Android_Programming (http://wiki.freepascal.org/Android_Programming)
http://wiki.lazarus.freepascal.org/Custom_Drawn_Interface/Android (http://wiki.lazarus.freepascal.org/Custom_Drawn_Interface/Android)
-
یه سوال ؟
آیا لازاروس برا اندروید هم کامپیایل میکنه؟
والا برای این پلتفرمهای موبایلی هیچی بهتر از SDK رسمی خودش نیست. مثلا برای iOS هیچوقت نمیتونید برنامه هایی در حد برنامه های نوشته شده با x-code بنویسید .
-
والا برای این پلتفرمهای موبایلی هیچی بهتر از SDK رسمی خودش نیست. مثلا برای iOS هیچوقت نمیتونید برنامه هایی در حد برنامه های نوشته شده با x-code بنویسید .
حق با شماست. ;) هیچی مثل محیط اصلی و زبان مادری یک سیستم نمیشه.
ولی این لازمش اینه که یک برنامه نویس تو پلتفرم های زیادی مهارت پیدا کنه و اگه بخواد تو هر زمینه ای فعالیت کنه بره و زبان و IDE مخصوص اون رو یاد بگیره که این کار خیلی وقت گیر و باعث کم شدن کیفیت کارش میشه چون تجربه ای که تو چند سال برای یک زبان و محیط مخصوص اون فرا گرفته رو نمیتونه تو یک محیط جدید و زبان جدید سریع یاد بگیره .
برای همین اکثر IDE های برنامه نویسی معمولا از چندین زبان برنامه نویسی پشتیبانی می کنند.
لازاروس هم بی نیاز از SDK مخصوص اندروید برای برنامه نویسی نیست. در اصل از همون سیستم تو محیط خودش استفاده می کنه.
تو لینک های بالا که گذاشته بودم گام به گام مراحل رو با لینک های دانلود برنامه های مورد نیاز توضیح داده بود ( در گام اول باید Android SDK و Android NDK رو دانلود و نصب کنید.)
-
سلام
دوباره برگشتم. ;D این مدت سرم خیلی شلوغ بود و نمیتونستم این پست رو به روز کنم.
در حال حاضر دارم یک برنامه برای ذخیره و مدیریت پرونده های کلینیک های مشاوره مینویسم.
(http://delphi887.persiangig.com/image/myprogram.png)
چون وقت های بیکاری توسعه اش میدم خیلی کند پیش میره و به خاطر کارم چندان نمیتونم سریع کد نویسی کنم.
بگذریم :)
الان میخوام یک کامپوننت معرفی کنم که تو لازاروس هست و شباهت بسیار زیادی به quickreport توی دلفی داره
Fortes Report
دانلود http://sourceforge.net/projects/fortesreport (http://sourceforge.net/projects/fortesreport)
(http://sourceforge.net/projects/fortesreport/screenshots/56648)
نصبش خیلی راحته و مشکل خاصی نداره و کار کردن با اون مثل quickreport هستش ولی هنوز کامل نیست و بعضی جاها باگ داره.
فکر می کنم برزیل داره اونو توسعه میده .آدرس سایت سازنده : http://www.fortesreport.com.br (http://www.fortesreport.com.br)
-
دستت دردنکنه. مرسی. خیلی عالی هستن.
-
دستت دردنکنه. مرسی. خیلی عالی هستن.
خواهش می کنم آقا سلمان ;) امیدوارم مطالب مفید باشن
-
چه خوبه! آفرین. ادامه بده ;)
-
چه خوبه! آفرین. ادامه بده ;)
ممنون دانیال جان ;)
یک نکته اینه که من تو خونه سیستمم ویندوزه (البته اوبونتو هم دارم ولی اونجا بقیه زیاد به اون کاری ندارن :( ) برای برنامه نویسی کد های برنامه را تو هردو سیستم عامل به طور پایاپای ادامه میدم و من همون پروژه رو تو محل کار با لینوکس و تو خونه با ویندوز توسعه میدم. اینجوری اگه مشکلی تو یک قسمت با سیستم عامل دیگه وجود داشته باشه سریع تر متوجه میشم و در عین حال برنامه برای هر دو سیستم عامل آماده میشه.
برای ادامه کار میخام wiki لازاروس و اون قسمتی که کدهای نمونه و کامپوننت های رایگان رو معرفی کرده براتون بزارم.
http://wiki.lazarus.freepascal.org/Components_and_Code_examples (http://wiki.lazarus.freepascal.org/Components_and_Code_examples)
تو این wiki میتونید برای هر کاری کامپوننت پیدا کنید از گرافیک گرفته تا پایگاه داده و نکته مهمش اینه که همشون رایگانند.
البته شاید امکانات اونها به کامپوننت های پیشرفته بقیه محیط های توسعه نرسه ولی کار رو راه میندازن و نیازی به کرک و سریال ندارن :D .
-
نسخه ۱.۰.۲ لازاروس منتشر شده.
لینک زیر جزئیات اصلاحات انجام شده و مشکلات رفع شده تو این نسخه رو نشون میده.
http://wiki.lazarus.freepascal.org/Lazarus_1.0_fixes_branch#Fixes_for_1.0.2_.28Merged.29 (http://wiki.lazarus.freepascal.org/Lazarus_1.0_fixes_branch#Fixes_for_1.0.2_.28Merged.29)
خوشبختانه سرعت توسعه این IDE خیلی خوب شده و از گذشته خیلی سریع تر جلو میره و باگ های اون رفع میشه.
نسخه ۳۲ بیتی ویندوزی اون تو ۶ روز ۶۵۶۳ بار تا الان دانلود شده و بیشترین دانلود هم از روسیه و چین بوده.
منبع : http://sourceforge.net/projects/lazarus/files/Lazarus%20Windows%2032%20bits/stats/timeline (http://sourceforge.net/projects/lazarus/files/Lazarus%20Windows%2032%20bits/stats/timeline)
فکر می کنم چون نسخه لینوکسی اغلب از روی مخازن نصب میشه آمار دانلود نسخه لینوکسی اون زیاد نیست.
-
زبان دلفی مثل سی و سی پلاس میمونه یا کلا دستور زبانش فرق داره ؟
-
زبان دلفی مثل سی و سی پلاس میمونه یا کلا دستور زبانش فرق داره ؟
دلفی با C یا ++C فرق میکنه . این IDE هم از کامپایلر رایگان پاسکال شی گرا استفاده می کنه.برای همین شباهت زیادی به دلفی داره.
-
سلام.
تاپیک خیلی جالبه.منم مثل شما دلفی کار میکردم (تجربه خوبی دارم) ولی الان کنار گذاشتم ولی دوس دارم کار کنم.
lazarus رو هم یکبار نصب کردم.چند تا سوال داشتم.
1-برنامه های نوشته شده تو دلفی رو میشه تو lazarus کامپایل کرد؟
2-برنامه های نوشته شده تو lazarus توی ویندوز هم قابل اجراست یا نه؟
3-فک کنم چند تا سورس بذاری هم بتونه کمک کنه تا تمایل بیشتری ایجاد بشه؟
با تشکر
-
سلام :)
1- بله لازاروس مبدل پروژه های دلفی به خودشو داره ولی اینکار رو زیاد توصیه نمی کنم. معمولا برنامه های نوشته شده تو دلفی از کامپوننت های زیادی استفاده می کنند و اگه اونها تو لازاروس نباشن بازکردن و کامپایل برنامه دچار مشکل میشه.
کامپوننت های رایگان جایگزین برای همه کاری تو لازاروس پیدا میشه پس بهتره برنامه از ابتدا داخل لازاروس تولید و توسعه داده بشه عوض اینکه با کلی خطا اینجا کامپایل کنید.
2- برنامه های لازاروس تو ویندوز و گنو لینوکس و مکینتاش به راحتی و در هر نسخه ای قابل اجرا هستن. (فکر می کنم یک کارهایی هم برای آندروید شده)
3- چشم. البته نمیدونم از کجا شرو کنم ولی حتما اینکار رو هم می کنم. ;)
همونطور که قبلا هم گفته بودم الان دارم رو یه پروژه برا مدیریت مراکز روان شناسی کار می کنم که اگه بلاخره تموم بشه قصد دارم به صورت متن باز(با شرایط خاص) و رایگان اونو عرضه کنم. :) :)
-
خیلی عالی شد.شما اگه توی LinkedIn عضو هستید پیغام بدین تا با هم بیشتر آشنا بشیم.
چشم. البته نمیدونم از کجا شرو کنم ولی حتما اینکار رو هم می کنم.
همونطور که قبلا هم گفته بودم الان دارم رو یه پروژه برا مدیریت مراکز روان شناسی کار می کنم که اگه بلاخره تموم بشه قصد دارم به صورت متن باز(با شرایط خاص) و رایگان اونو عرضه کنم.
در اولین فرصت سعی میکنم lazarus رو نصب کنم.روش اتصال به پایه داده فک کنم برا شروع خوب باشه.البته هر جور خودتون راحت ترین بهتره.
-
خیلی عالی شد.شما اگه توی LinkedIn عضو هستید پیغام بدین تا با هم بیشتر آشنا بشیم
Linkedin چی هست؟ من تا حالا نرفتم.
من تو این پروژه از پایگاه داده mysql استفاده ی کنم چون بعدا برای تهیه سیستم تحت وب کارم با php و mysql خیلی راحت میشه. البته چون قبلا از ms sql اسفاده می کردم یکم مشکل برام تو نوشتن store procedure پیش اومده بود که الان حل شدن.
تو لازاروس از کامپوننت Zeos برای اتصال به پایگاه داده استفاده می کنم. تقریبا شبیه به db exprers یا ado تو دلفی هستش ولی میتونه به انواع مختلفی پایگاه کانکت بشه مثل oracle,MySQL,sqlite,PostgreSQL,ms sql, و .... :)
خیلی زود برمی گردم ;)
-
خیلی عالی شد.شما اگه توی LinkedIn عضو هستید پیغام بدین تا با هم بیشتر آشنا بشیم
Linkedin چی هست؟ من تا حالا نرفتم.
http://hinightsun.blogfa.com/post/196 (http://hinightsun.blogfa.com/post/196)
اطلاعات خیلی خویی دارید.
-
من زیاد با این شبکه های اجتماعی حال نمی کنم همین فروم ها رو بیشتر ترجیح می دم :D
با این حال جالب بود عضو شدم.
بریم سراغ برنامه نویسی خودمون.
برای اتصال به پایگاه باید تو کامپوننت zeos به غیر اطلاعات معمول نام کاربر و کلمه عبور و آدرس سرور و پورت و ... نوع پروتکل ارتباطی رو هم مشخص کنید که من چون از mysql استفاده کردم اونو روی mysql-5 قرار میدم و هر پایگاهی نوع خودشو داره اینجا.
البته بعد از انجام این کار باید درایور اون پایگاه هم رو سیستم سرویس گیرنده نصب شده باشه مثلا اگه از mysql استفاده می کنید باید تو ویندوز فایل libmysql.dll تو شاخه system32 وجود داشته باشه و یا اگه از لینوکس استفاده می کنید libmysqlclient-dev باید نصب شده باشه.(البته بعضی استثناها هم هستن که به صورت embded تو سیستم وجود دارند و به راحتی کار می کنند)
بعد این کار با دادن اطلاعات معمول می تونید به پایگاه متصل بشید.
برای اینکار یک فرم از نوع Data Module ایجاد کنید و روی اون یک شئ zeos Connection قرار بدید و تنظیمات اونو انجام بدید
(http://shahriary.staffcms.um.ac.ir/imagesm/1064/My_Pic/zeos.png)
یک نکته خیلی مهم یادم رفت :P
تو mysql برای اینکه اطلاعات فارسی به درستی وارد و نمایش داده بشه باید روی zeos connection قسمت clientcodepage رو در حالت utf8 قرار بدید و یا در properties کانکشن عبارت codepage=utf8 رو وارد کنید.
-
سلام
Lazarus توی ابونتو 12.4 رو نصب کردم.
توی پست قبلی یه خورده گنگ توضیح دادین حدس میزنم احتمالا وقتون گرفتس.
من اگه بخوام محیط Lazarus رو طوری تنظیم کنم که مثل محیط دلفی بشه کدوم قسمت برم.مثلا یه فرم اضافه میکنم بعد رو منو کلیک میکنم Alt+Tab رو چند بار میزنم بیاد.یکم از این جهت خسته کنندس.
اگه در آینده وقت کردین یه نمونه کد بزارید.
-
سلام
ببخشید کم سر میزیم به این پست :-? زندگی تو این دوران خیلی سخت شده و آدم به همه کاراش نمیرسه :D
در مورد فرم های برنامه و سوئیچ کردن بین اونها تو لینوکس باید بگم با ویندوز یکم فرق میکنه.
در محیط ویندوز لازاروس به عنوان یک برنامه شناخته میشه و فرم های داخل اون اشیائ داخلی برنامه لازاوس هستن ولی تو لینوکس اینطور نیست و هر فرم تو تسک بار جداگونه دیده میشه. مثلا تصویر زیر محیط لازاروس تو KDE که رو سیستم خودم هست رو نشون میده.
http://delphi887.persiangig.com/image/Lazarus_KDE.png (http://delphi887.persiangig.com/image/Lazarus_KDE.png)
همینطور تصویر زیر هم محیط لازاروس تو یونیتی اوبونتو هستش
http://delphi887.persiangig.com/image/lazarus1.0rc2.png (http://delphi887.persiangig.com/image/lazarus1.0rc2.png)
اگه تو این تصویر ها دقت کنید میبینید که چه فرمهای باز برنامه در حال ویرایش و چه فرمهای خود لازاروس تو تسک بار دیده میشن و تازه تو یونیتی یکم کار مشکل تر میشه چون هنگام سوئیچ بین برنامه ها لازاروس کلی فرم داره و کاربر یکم گیج میشه.
من توصیه می کنم وقت برنامه نویسی زیاد برنامه دیگه باز نکنی و بیشتر حواست به برنامه خودت باشه و برای سوئیچ بین فرمهای برنامه از محیط کد نویسی استفاده کن. به این صورت که با کلید F12 میتونید بین فرم و کد تغییر وضعیت بدید. محیط کدنویسی رو که فرمهای کد نیوسی تو اونها هستن بیار و بعد از تب بالا فرمهای باز نشون داده شده اند فرم مورد نظرتو انتخاب کن و دوباره با کلید F12 فرم رو ظاهر کن.
امیدوارم منظورتو درست فهمیده باشم :D
برای نمونه کد هم نمیدونم چیو باید بزارم.
یکسری دستورات که تو همه زبون های برنامه نویسی تقریبا مشترکند مثل حلقه های تکرار و شرط ها و ....
فقط میمونه بعضی نکات خاص که مخصوص هر زبان هست و همچنین برخی تکنیک های برنامه نویسی که میشه به صورت الگوریتم در آورد و تو همه زبونها ازش استفاده کرد.
حالا اگه من بیام و تمام کد یک فرم رو بزارم خیلی طولانی و پیچیده میشه و خواننده هم ممکنه زده بشه.
من بیشتر سعی می کنم اون چیزهایی که بیشتر ممکنه بدرد بخورند رو بزارم یا اینکه شما بگید کجا مشکل دارید تا من اگه میتونستم راهنماییتون کنم. ;)
:KS :KS :KS
حالا دوباره یک نکته دیگه برای برنامه نویسی لازاروس رو میگم که خیلی بدردم خورده.
پیدا کردن نوع سیستم عامل و نوع CPU سیستم مشتری :
{%i %FPCTARGETCPU$} : برای پیدا کردن نوع CPU
{%i %FPCTARGETOS$} : برای پیدا کردن نوع سیستم عامل
با این دو خط کد کامپایلر نوع پردازنده و نوع سیستم عامل رو به برنامه شما میده .(به صورت رشته ای اونها رو برمیگردونه)
اینکه در یک برنامه مستقل از سکو بفهمید برنامه شما تو چه سیستم عامل و معماری در حال اجرا هستش خیلی مهمه. شاید تو محیط های برنامه نویسی ویندوزی یا لینوکسی چندان پیدا کردن اینها مهم نباشه چون برنامه تو محیط دیگری اجرا نمیشه ولی زمانه که شما برنامه رو در حالت مستقل از سکو برنامه نویسی می کنید باید بفهمید برنامه شما تو چه محیط و معماری اجرا میشه چون بعضی نکات باید نسبت به سیستم مشتری و نوع محیط اون تغییر کنن.(تقریبا شبیه به برنامه های تحت وب که نوع مرورگری که با اون برنامه باز میشه براشون مهمه حتی اندازه صفحه مانیتور)
-
سلام
با تشکر از صبر و حوصله شما
نشون میده.
http://www.persiangig.com/va/img/in/png.gif
همینطور تصویر زیر هم محیط لازاروس تو یونیتی اوبونتو هستش
http://www.persiangig.com/va/img/in/png.gif
اگه تو این تصویر ها دقت کنید میبینید
برا من عکس باز نشد فک کنم لینک ها رو دوباره بررسی کنید
امیدوارم منظورتو درست فهمیده باشم
درست اشاره کردین همون مطلبی که اشاره کردین منظورم بود.
برای نمونه کد هم نمیدونم چیو باید بزارم.
یکسری دستورات که تو همه زبون های برنامه نویسی تقریبا مشترکند مثل حلقه های تکرار و شرط ها و ....
فقط میمونه بعضی نکات خاص که مخصوص هر زبان هست و همچنین برخی تکنیک های برنامه نویسی که میشه به صورت الگوریتم در آورد و تو همه زبونها ازش استفاده کرد.
حالا اگه من بیام و تمام کد یک فرم رو بزارم خیلی طولانی و پیچیده میشه و خواننده هم ممکنه زده بشه.
من بیشتر سعی می کنم اون چیزهایی که بیشتر ممکنه بدرد بخورند رو بزارم یا اینکه شما بگید کجا مشکل دارید تا من اگه میتونستم راهنماییتون کنم.
من در قدم اول هدفم اتصال صحیح به پایگاه داده به کمک کامپوننت های اصلی (استاندارد) که کارهایی نظیر ثبت ،درج ،حذف و واکشی از پایگاه داده رو انجام بدم نه کامپوننت های فرعی .بیشتر دنبال یه مثال کم حجم و ساده میگردم.
مثلا در حالت صحیح در دلفی با ADOQuery وصل میشیم و دستوراتمون رو اجرا میکنیم.dotnet دیتا ماژول محسوب میشه.
(http://setp113.persiangig.com/Program/AdoQuery.jpg)
حالا دوباره یک نکته دیگه برای برنامه نویسی لازاروس رو میگم که خیلی بدردم خورده.
پیدا کردن نوع سیستم عامل و نوع CPU سیستم مشتری :
{%i %FPCTARGETCPU$} : برای پیدا کردن نوع CPU
{%i %FPCTARGETOS$} : برای پیدا کردن نوع سیستم عامل
با این دو خط کد کامپایلر نوع پردازنده و نوع سیستم عامل رو به برنامه شما میده .(به صورت رشته ای اونها رو برمیگردونه)
اینکه در یک برنامه مستقل از سکو بفهمید برنامه شما تو چه سیستم عامل و معماری در حال اجرا هستش خیلی مهمه. شاید تو محیط های برنامه نویسی ویندوزی یا لینوکسی چندان پیدا کردن اینها مهم نباشه چون برنامه تو محیط دیگری اجرا نمیشه ولی زمانه که شما برنامه رو در حالت مستقل از سکو برنامه نویسی می کنید باید بفهمید برنامه شما تو چه محیط و معماری اجرا میشه چون بعضی نکات باید نسبت به سیستم مشتری و نوع محیط اون تغییر کنن.(تقریبا شبیه به برنامه های تحت وب که نوع مرورگری که با اون برنامه باز میشه براشون مهمه حتی اندازه صفحه مانیتور)
نکات مفیدی بودن.
شما هر وقت فرصت داشتین به سوالات جواب بدین ، کارهای خودتون مهمتره.
با تشکر
-
سلام
ببخشید لینک عکسهای پست قبلیم مشکل داشتن اصلاحشون کردم.
مثالی که گذاشته بودید خیلی خوب بود =D> یک تابع قدیمی که خیلی کاربردیه و من فراموشش کرده بودم رو دوباره به یادم آورد (Quotedstr) .
من از چهارتا کوتیشن استفاده می کردم به جای این تابع :oops: :biggrin:
منم یک نمونه از فرمهایی که الان دارم کد نویسی می کنم رو گذاشتم .
(http://delphi887.persiangig.com/image/code.png)
در مورد نحوه اتصال به پایگاه داده تو لازاروس باید بگم که تقریبا شبیه همون دلفی هستش فقط اینجا از zeos به جای ado.net استفاده می کنیم.
من تو برنامه هایی که می نویسم سعی می کنم تمام موارد استفاده شده تو پروژه متن باز و رایگان باشن از پایگاه داده گرفته تا کامپوننت های استفاده شده تو پروژه و حتی فونت (freefarsi) .
برای انجام کارهای مختلف با پایگاه داده چند روش وجود داره که یکی از اونها نوشتن کد SQL و یا تولید اون تو یک شئی query و بعد به نسبت نوع دستورات اجرا یا باز کردن اون query هستش .(تو مثال دلفی شما هم دقیقا دیده میشه)
روش دیگه استفاده از stored procedure هستش که پردازش های سنگین رو به سرور انتقال میده و ایستگاه کاری نیازی به پردازش قوی روی حجم زیادی از داده ها رو نداره. این روش خیلی بهتره ولی محدودیت هایی داره و همیشه قابلیت اجرا رو نداره. نمونش تو تصویری که من گذاشتم می خواستم یک کاربر جدید ایجاد کنم که نمیشه این دستورات رو به صورت stored procedure اجرا کرد.
stored procedure ها به صورت کد های SQL روی سرور ذخیره می شن و در زمان اجرا فقط پارامترها ورودی برای اونها ارسال میشه و عملیات پردازش داده های پایگاه داده روی سرور انجام میشه و اگه نیاز باشه پاسخ برای ایستگاه ارسال میشه .
-
سلام
مثالی که گذاشته بودید خیلی خوب بود یک تابع قدیمی که خیلی کاربردیه و من فراموشش کرده بودم رو دوباره به یادم آورد (Quotedstr) .
من از چهارتا کوتیشن استفاده می کردم به جای این تابع
4 کوتیشن رو تا حالا ندیده بودم.
منم یک نمونه از فرمهایی که الان دارم کد نویسی می کنم رو گذاشتم .
معماری برنامه نویستون خوبه.
در مورد نحوه اتصال به پایگاه داده تو لازاروس باید بگم که تقریبا شبیه همون دلفی هستش فقط اینجا از zeos به جای ado.net استفاده می کنیم.
ای کاش بعد از پایان کارتون یه مثال جم و جور بیان میکردین.ما که منتطر می مونیم.
من تو برنامه هایی که می نویسم سعی می کنم تمام موارد استفاده شده تو پروژه متن باز و رایگان باشن از پایگاه داده گرفته تا کامپوننت های استفاده شده تو پروژه و حتی فونت (freefarsi) .
اطمینان کار بالا میره
برای انجام کارهای مختلف با پایگاه داده چند روش وجود داره که یکی از اونها نوشتن کد SQL و یا تولید اون تو یک شئی query و بعد به نسبت نوع دستورات اجرا یا باز کردن اون query هستش .(تو مثال دلفی شما هم دقیقا دیده میشه)
روش دیگه استفاده از stored procedure هستش که پردازش های سنگین رو به سرور انتقال میده و ایستگاه کاری نیازی به پردازش قوی روی حجم زیادی از داده ها رو نداره. این روش خیلی بهتره ولی محدودیت هایی داره و همیشه قابلیت اجرا رو نداره. نمونش تو تصویری که من گذاشتم می خواستم یک کاربر جدید ایجاد کنم که نمیشه این دستورات رو به صورت stored procedure اجرا کرد.
stored procedure ها به صورت کد های SQL روی سرور ذخیره می شن و در زمان اجرا فقط پارامترها ورودی برای اونها ارسال میشه و عملیات پردازش داده های پایگاه داده روی سرور انجام میشه و اگه نیاز باشه پاسخ برای ایستگاه ارسال میشه .
این صحبت ها نشون از تجربه کاریتون داره مشخص دلفی رو پیوسته ادامه دادین.
من تا قبل از این دلفی رو کنار گذاشته بودم با پست شما و عکس هایی که از لازاروس گذاشتین میخوام حتما ادامه بدم.
خیلی جالب بودن.تشکر
-
ممنونم ولی اینقدر ها هم که شما میگید حرفه ای نشدم ::)
چشم سعی می کنم یه برنامه کاربردی کوچیک برای ارتباط و انجام کارهای معمول با پایگاه داده بنویسم و آپلود کنم. ;)
خوشحال می شم شما هم تجربیاتتون رو به اشتراک بزارید. (خودتونو هیچوقت دست کم نگیرید :) )
همینجور نکات کوچیکه که باعث میشه برنامه با حجم کم و کارایی بالا ایجاد بشه و بعضی وقتا از دست برنامه نویس خارج میشه و فراموش میشند.
-
ما هم تمرین میکنیم سطحمون رو افزایش یدیم.
-
خیلی ممنون :) .
من این آموزشها رو دنبال میکنم البته خود لازاروس هم مستندات بسیار قدرتمندی داره (یک بار مستنداتش رو حتی سرسری بخونید کلی ازش دستتون میاد).
متاسفانه دلفی توی ویندوز منو زده کرده بود بخاطر همین سراغ لازاروس نیومدم ولی الان دوباره به سمت زبان پاسکال و لازاروس اومدم :).
-
خیلی ممنون :) .
من این آموزشها رو دنبال میکنم البته خود لازاروس هم مستندات بسیار قدرتمندی داره (یک بار مستنداتش رو حتی سرسری بخونید کلی ازش دستتون میاد).
متاسفانه دلفی توی ویندوز منو زده کرده بود بخاطر همین سراغ لازاروس نیومدم ولی الان دوباره به سمت زبان پاسکال و لازاروس اومدم :).
خیلی خوشحالم که شما هم به این سمت متمایل شدید :D
هرچی استفاده کننده و کاربرای این IDE بیشتر بشه مطمئنا توسعه اون سریع تر پیش میره و کامپوننت های بیشتری برای اون تولید میشه و میتونه با IDE های دیگه مثل netbeans و Eclips رقابت بکنه :) .
البته من هم مثل شما دارم یاد میگیرم و هر وقت چیز تازه ای پیدا می کنم یا تکنیک جدیدی یاد میگیرم اینجا میزارم تا هم برا خودم همیشه ذخیره بشه و هم بقیه بتونن استفاده کنند و به این سمت جذب بشن.
البته لازاروس هنوز باگ و ایراداتی داره ولی امروز خیلی بهتر شده از دیروز .
موفق باشید
-
سلام دوستان
توی این مدت یکم با لازاروس ور رفتم احساس می کنم یه کم باگ داره و یه کم اذیت میکنه.به هر حال برای برنامه نویسی توی ابونتو خوبه و بهتر هم خواهد شد.
خیلی ممنون :) .
من این آموزشها رو دنبال میکنم البته خود لازاروس هم مستندات بسیار قدرتمندی داره (یک بار مستنداتش رو حتی سرسری بخونید کلی ازش دستتون میاد).
با تشکر از مشارکت شما.بدون توجه به امتیاز + و - سعی کنید شرکت کنید چون دلیل بر باسوادی و بی سوادی کسی نیست اون چیزی که اهمیت داره محتویات پست هاست.
در مورد مستندات هم موافقم ولی اگر کسی بتونه نقش لیدر رو بازی کنه پیشرفت و سرعت کاری ما خیلی بهبود پیدا میکنه.
متاسفانه دلفی توی ویندوز منو زده کرده بود بخاطر همین سراغ لازاروس نیومدم ولی الان دوباره به سمت زبان پاسکال و لازاروس اومدم
شاید لازم باشه این نکته رو بگم که همه متوجه قدرت دلفی بشن:
Microsoft UK was recently hiring Delphi developers for their Skype communication product.
;)
به Delphi887:
اگر ممکنه در مورد فایل های لازارس یکم توضیح بدین (خیلی کوتاه)؟فایل اصلی کدوم پسوند رو داره؟ (تا در وقتتون صرفه جویی بشه)
و اینکه اگه برنامه ای با لازاروس توی ابونتو نوشته بشه توی ابونتو چه جوری اجرا میشه فک کنم فایل exe نداریم.؟
با تشکر
-
توی این مدت یکم با لازاروس ور رفتم احساس می کنم یه کم باگ داره و یه کم اذیت میکنه.
سلام
چه مشکلی برات پیش اومده؟ کجا باگ داره؟ (ممکنه بعضی قسمت ها هنوز کامل نباشن ولی ویرایش 1.02 خیلی خوبه و من هنوز به باگ بر نخوردم)
اگر ممکنه در مورد فایل های لازارس یکم توضیح بدین (خیلی کوتاه)؟فایل اصلی کدوم پسوند رو داره؟ (تا در وقتتون صرفه جویی بشه)
و اینکه اگه برنامه ای با لازاروس توی ابونتو نوشته بشه توی ابونتو چه جوری اجرا میشه فک کنم فایل exe نداریم.؟
در مورد فایل های لازاروس اونی که پسوند lpi داره فایل اصلی پروژه هستش(البته تو برنامه های Application )
فایل های lfm اطلاعات فرم ها و pas کد مربوط به اونها رو نگهداری می کنند (یه عالمه فایل دیگه هم هست)
اگه اطلاعات کامل تری خواستی این لینکو مطالعه کن : http://wiki.lazarus.freepascal.org/File_extensions (http://wiki.lazarus.freepascal.org/File_extensions)
در مورد گنو/لینوکس حق با شماست . من خودم هم هنوز تو محیط گنو/لینوکس زیاد حرفه ای نشدم ولی لازاروس برای این محیط بعد از کامپایل فایلی اجرایی هم نام پروژه تولید میکنه که تو ابونتو قابل اجرا هستش.
البته فایل های اجرایی تو وینذوز و گنو/لینوکس یکم با هم فرق دارند و خاصیت های متفاوتی دارند . مثلا تو ویندوز من به فایل اجرییم یک آیکون نسبت میدم که تو همه جاها و ویندوز ها با اون آیکون دیده میشه ولی تو گنو/لینوکس آیکن ها از جنس png هستن و به همن راحتی به فایل اجرایی نمی چسبند.
یا وقتی فایل اجرایی تو ویندوز کامپایل و تولید میشه میتونید اگه نیاز به چیز خاصی نداشته باشه تو یک سیستم دیگه اجراش کنی ولی تو گنو/لینوکس من فایل اجرایی که تو همین محیط تولید شده رو نتونستم رو یک سیستم دیگه اجرا کنم تا زمانی که اونجا دوباره کامپایلش کردم.
اینها معنیشون اینه که نمیشه همون فرضیات ویندوز و تو گنو/لینوکس پیاده کرد و باید بیشتر در مورد فایل های اجرایی تو گنو لینوکس اطلاعات کسب کنم .
یا حق
-
مرسی. کلی استفاده بردم از این بحث :)
-
سلام
مرسی. کلی استفاده بردم از این بحث :)
نظر لطف شماست.
چه مشکلی برات پیش اومده؟ کجا باگ داره؟ (ممکنه بعضی قسمت ها هنوز کامل نباشن ولی ویرایش 1.02 خیلی خوبه و من هنوز به باگ بر نخوردم)
مثلا توی بخش تنظیمات که میرم و بعضی گزینه های مربوطه رو تغییر میدم کادر مربوطه ظاهر میشه و بعد که میخوام تایید یا لغو کنم اصلا تایید یا لغو نمیشه (بعضی مواقع میشه).
یا جدیدا یه خطای عجیب میده.بعد از هر بار اجرا یک فرم ساده یه پیغام عجیب میداد.برا همین خواستم عکس بگیرم که فرصت نشد بذارمش.
http://wiki.lazarus.freepascal.org/File_extensions (http://wiki.lazarus.freepascal.org/File_extensions)
لینک جالبی بود.
با تشکر
-
دوستان کامپایلر ترمینالی لازاروس یعنی fpc هم خیلی قدرتمند هست. اگر سری به osdev.org بزنید میبینید که باهاش سیستم عامل هم کد زدند و به مرحله بهره برداری رسوندند :o
-
سلام دوباره
مثلا اینجا
(http://setp113.persiangig.com/Lazarus/ME_Error.jpg)
هر وقت خودم برنامه تازه اجرا میکنم این پیغام میاد.مثل اجرای یک فرم ساده وقتی اجرا رو stop میزنم متوقف میشه.
یا مثلا یه برنامه ساده از اینترنت گرفتم و میخوام اجراش کنم (همون مسیر وارد کردن پروژه) این پیغام رو میده.در حالتی که خودم برنامه طراحی کنم *حالت قبلی* این پیغام نمیاد.
(http://setp113.persiangig.com/Lazarus/RunP_Local-Project.jpg)
اینم هم مسیری که گفته برم(تو عکس قبل)
(http://setp113.persiangig.com/Lazarus/Local_window.jpg)
شاید دلایل خاصی نداشته باشن ولی دارم سعی میکنم که نسخه ویندوزش رو بگیرم شاید هم لازاروس رو ماشین مجازی ببرم.
راستی 2 تا فرم رو چه جوری یوزیز uses میزنن،هر چه گشتم ندیدم ](*,)
سپاس
-
سلام
برای اون مشکل اولت قبلا تو پست های گذشته توضیح داده بودم
سلام
بعد از نصب لازاروس تو اوبونتو و ساخت اولین پروژه وقتی در دیباگر قصد خروج از برنامه را داشته باشید یه پیام خطا مشاهده می کنید و بستن برانمه دچار اختلال میشه (البته وقتی از طریق لازاروس و دیباگر اون را اجرا کنید) .
برای اینکه این پیام خطا دیگه مزاحم نشه و بستن برنامه به روال معمول انجام بشه این Exception را به قصمت دیباگر اون باید اضافه کنید.
به منوی Envaroment و سپس Option بروید و از پنجره جدید باز شده قسمت Language Exception از زیر گزینه های Debugger را انتخاب کنید و سپس EnterfaceCertical را به گزینه های این قسمت اضافه کنید.
http://shahriary.staffcms.um.ac.ir/imagesm/1064/stories/lazarus/screenshot%20from%202012-05-28%20083133.png (http://shahriary.staffcms.um.ac.ir/imagesm/1064/stories/lazarus/screenshot%20from%202012-05-28%20083133.png)
حالا هنگام بسته شدن برنامه دیگر پیام خطایی ظاهر نمیشه. :D
یا حق
بهت توصیه می کنم برنامه رو با گزینه Build all کامپایل کن و بعد به محل پروژه برو و بعد فایل اجرایی اونو اجرا کن تا نتیجه رو ببینی.البته اگه می خواهی هر یک خط کد رو همون لحظه کامپایل و نتیجه رو ببینی همین روش سریع تره ولی من سعی می کنم چنتا کار رو با هم انجام بدم و بعد پروژه رو کامل کامپایل می کنم و میرم فایل اجرایی اونو اجرا می کنم تا نتیجه رو ببینم.
در مورد اون خطای دوم من درست نفهمیدم می خواستی چیکار کنی؟ اگه سورس برنامه رو از اینترنت گرفتی که نیازی نیست بری تو پارامتر های اجرا و فقط اونو باز کن و کامپایل کن.(فایل lpi رو باز کن و بعد اگه سوالی پرسید open project رو بزن)
اگه مورد چیز دیگه ایه من متوجه نشدم.
برای استفاده از لازاروس تو ویندوز هم مشکلی نیست اتفاقا من خودم برنامه هام رو سعی می کنم تو هر دو سیستم عامل به جلو ببرم تا تو هر دو بدون مشکل توسعه پیدا کنن. یه مقداری لازاروس تو unity اذیت میکنه که این مشکلات تو KDE یا ویندوز کمتره.
برای استفاده از یک فرم تو دیگری کافیه تو قسمت uses او فرم اسم unit فرم دیگه رو بزنی. فقط مراقب باش که حالت حلقه ایجاد نشه. لازاروس برخلاق دلفی نمیزاره دوتا فرم همدیگه را uses کنند.
-
دوستان کامپایلر ترمینالی لازاروس یعنی fpc هم خیلی قدرتمند هست. اگر سری به osdev.org بزنید میبینید که باهاش سیستم عامل هم کد زدند و به مرحله بهره برداری رسوندند :o
سایت جالبی بود.
ممنون ;)
-
سلام
برای اون مشکل اولت قبلا تو پست های گذشته توضیح داده بودم
فک کنم باید از اول دوباره پست ها رو مرور کنم.تشکر
برای استفاده از لازاروس تو ویندوز هم مشکلی نیست اتفاقا من خودم برنامه هام رو سعی می کنم تو هر دو سیستم عامل به جلو ببرم تا تو هر دو بدون مشکل توسعه پیدا کنن. یه مقداری لازاروس تو unity اذیت میکنه که این مشکلات تو KDE یا ویندوز کمتره.
توی ویندوز هم دانلود کردم و واقعا جالب بود.
من از unity استفاده میکنم و شاید این مسئله تاثیر گذار باشه،فعلا که مجبورم با همین سر کنم.
برای استفاده از یک فرم تو دیگری کافیه تو قسمت uses او فرم اسم unit فرم دیگه رو بزنی. فقط مراقب باش که حالت حلقه ایجاد نشه. لازاروس برخلاق دلفی نمیزاره دوتا فرم همدیگه را uses کنند.
راستی فرم اصلی رو چه جوری باید به برنامه معرفی کنیم؟مثلا چندتا فرم داریم وقصد داریم یکی رو اصلی یا main در نظر بگیریم؟
نکته مفیدی بود.
تشکر ویژه
-
دوستان محترم اگر موافقید چنین تاپیکی در مورد گامباس ۲ و ۳ نیز ایجاد کنیم و در مورد اون زبان هم بحث کنیم :) .
-
راستی فرم اصلی رو چه جوری باید به برنامه معرفی کنیم؟مثلا چندتا فرم داریم وقصد داریم یکی رو اصلی یا main در نظر بگیریم؟
فرم اصلی پروژه در اصل اولین فرم تو قسمت فرم های پروژه هست. شما هر کدوم رو که اول قرار بدید اون به عنوان فرم اصلی در نظر گرفته میشه.
برای این کار از منوی view گزینه project option را انتخواب کنید و سپس از لیست سمت چپ forms را انتخواب کنید. فرم ها در لازاروس در دو حالت auto-create یا available هستند که در حالت اول فرمها در زمان اجرا ایجاد میشن و بعد از خروج برنامه از بین میرند ولی در حالت دوم دستور ساخته شدن(create) و از بین رفتن(free) فرم توسط برنامه نویس داده میشه.
-
دوستان محترم اگر موافقید چنین تاپیکی در مورد گامباس ۲ و ۳ نیز ایجاد کنیم و در مورد اون زبان هم بحث کنیم :) .
خوشحال میشم. البته به عنوان یک خواننده چون من هیچی از گامباس نمیدونم. :D
-
سلام
من دوباره پست ها رو خوندم ومطالب یادآوری شد.
برای کار با اینترنت و شبکه در لازاروس از کدوم کامپوننت ها استفاده میکنن؟(فک کنم توی دلفی Indy بود)
-
سلام
بله حق با شماست ولی من زیاد با indy کار نکردم. بیشتر با پایگاه های اطلاعاتی آشنا هستم.
یادمه بیشترین کاری که اون وقتا با indy کردم ساختن یه برنامه چت بود که تو دوتا سیستم به صورت متنی میشد پیام فرستاد یا دریافت کرد.
تو لازاروس هم indy وجود داره .
http://indy4lazarus.sourceforge.net/ (http://indy4lazarus.sourceforge.net/)
البته فکر می کنم کامپوننت های دیگه ای هم جایگزین اونها باشه . یه سایتی قبلا خوندم که کامپوننت ها رو تو دلفی و لازاروس مقایشه کرده بود الان یادم نیست اگه پیداش کردم حتما میزارم برات.
موفق باشی ;)
-
سلام
برای اتصال با پایگاه داده (در اینجا My sql) کدوم کامپوننت ها رو باید روی فرم DBGrid قرار بدم؟
من فایل zeoslib.tar.gz رو دانلود کردم (در حین باز شدن خطا داد) برای اتصال پایگاه داده لازمه؟
تشکر از لطف شما
-
سلام
اون نسخه که تو صفحه اول قرار دادم ۷ هست و هنوز به حالت stable نرسیده.
میتونید ویرایش ۶.۷ رو از لینک زیر دانلود کنید
http://sourceforge.net/projects/zeoslib/files/Zeos%20Database%20Objects/snapshots/ (http://sourceforge.net/projects/zeoslib/files/Zeos%20Database%20Objects/snapshots/)
یا به لینک زیر مراجعه کنید
http://zeosdownload.firmos.at/downloads/snapshots (http://zeosdownload.firmos.at/downloads/snapshots)
(http://wiki.freepascal.org/images/2/25/Zeos_Components.png)
ویرایش های زیادی تو این لینک هست از testing تا stable . فایل zip رو دانلود کن و بعد از حالت فشرده خارج کنید و از منوی package گزینه open pakage file رو انتخاب کن بعد به پوشه لازاروس تو فایلهای zeos برو و فایل zcomponent.lpk رو باز کن و بعد compile رو بزن اگه پیام خطا نداد گزینه install و در نهایت rebuild lazarus رو بزن بعد از چند دقیقه لازاروس باز می شود و این کامپوننت رو تو ابزار ها خواهی داشت.
تو لینک زیر اطلاعاتی از نحوه نصب این کامپوننت و چنتا مثال میتونی ببینی
http://wiki.freepascal.org/Zeos_tutorial (http://wiki.freepascal.org/Zeos_tutorial)
برای اتصال باید یک شئ zconnection و یک شئ tabale یا query روی فرمت قرار بدی. تنظیمات connection رو باید انجام بدید و بعد میتونید به پایگاه متصل بشید.(تو شکل زیر میبینید)
باید clientcodepage رو در حالت utf8 بزارید و نام پایگاه رو در قسمت database و پورت(برای mysql) رو ۳۳۰۶ و پروتکول رو در حالت mysql-5 قرار بدید و سپس نام کاربری و کلمه عبور رو در قسمت های user و password وارد کنید.
(http://shahriary.staffcms.um.ac.ir/imagesm/1064/My_Pic/zeos.png)
اگه همه این تنظیمات درست باشه و سرور mysql هم در دسترس باشه وقتی گزینه connected رو به حالت true قرار بدید نباید پیام خطایی بده و به همین حالت بمونه یعنی شما به پایگاه داده وصل شدید :D .
در قدم بعدی شئ table رو قسمت connection رو روی zconnection که روی فرم گذاشتید قرار بدید و نام جدولی از پایگاه که اطلاعات اون رو می خواهید در قسمت table name تنظیم کنید و سپس گزینه active اون رو روی حالت true قرار بدید.
بعد از قسمت ابزارهای data access یک شئ data source روی شئ قرار بدید و گزینه data set اون رو نام شئ جدولی که روی فرم گذاشته اید تنظیم کنید و در آخر یک شئ dbgrid از قسمت data contorol روی فرم قرار بدید و قسمت datasource اونو به نام datasource که روی فرم هست تنظیم کنید.
اینجوری اطلاعات جدول باید توی اون dbgrid نشون داده بشه.
ببخشید طولانی شد سعی کردم ساده توضیح بدم تا اگه کسی آشنا نباشه هم بتونه استفاده کنه.
یا حق
-
سلام
با تشکر
بسیار مفید بودن .
1- فایل ZEOSLIB_STABLE_REV922.zip رو از لینک دوم دانلود کردم و متاسفانه در حین کامپایل خطا داد؟این خطای زیر رو توی بخش Messages نشون میده:
G:\programming\Lazrus_P\DataBase\ZEOSLIB_STABLE_REV922\src\core\ZClasses.pas(90,22) Error: No matching implementation for interface method "IUnknown.QueryInterface(constref TGuid,out <Formal type>):LongInt; StdCall;" found
که توی zclass روی خط
TContainedObject = class(TAggregatedObject, IInterface)
رنگی (های لایت)میشه؟
نصب هم نشد؟ شما تا حالا برخورد داشتین؟
2- مثل دلفی برای اتصال به پایگاه داده query نمی نویسیم؟ (منظورم همون کدنویسی در فرمیه که DbGrid داره)
من کد نویسیش رو دوس دارم؟
3- تفاوت اتصال به پایگاه داده با کامپوننت zcomponent و در حالتی که از کامپوننت هایی مثل
SQLTransaction
SQLQuery
IBConnection
Datasource
استفاده میکنیم در چیه؟
سپاس فراوان بابت صبرو حوصله ای به خرج میدین.
-
سلام
1- فایل ZEOSLIB_STABLE_REV922.zip رو از لینک دوم دانلود کردم و متاسفانه در حین کامپایل خطا داد؟این خطای زیر رو توی بخش Messages نشون میده:
G:\programming\Lazrus_P\DataBase\ZEOSLIB_STABLE_REV922\src\core\ZClasses.pas(90,22) Error: No matching implementation for interface method "IUnknown.QueryInterface(constref TGuid,out <Formal type>):LongInt; StdCall;" found
که توی zclass روی خط
TContainedObject = class(TAggregatedObject, IInterface)
رنگی (های لایت)میشه؟
نصب هم نشد؟ شما تا حالا برخورد داشتین؟
آره منم همچین خطاهایی دیده بودم. بهتره از اون لینکی که از sourceforge دادم دانلود کنید این لینک دوم زیاد توصیه نمیشه.ممکنه همچین خطاهایی بده(باید تو فایل zclass.pas یه تغیراتی بدید که درست بشه- راستش من یکبار تو اینترنت کدش رو پیدا کردم ولی الان خاطرم نیست)
از همون لینک اول preview-ZEOSDBO-6.6.7-stable رو دانلود کنید بدون خطا کامپایل و نصب میشه.(ویرایش ۷ رو اگه خواستی باید trunk رو دانلود و نصب کنی )
2- مثل دلفی برای اتصال به پایگاه داده query نمی نویسیم؟ (منظورم همون کدنویسی در فرمیه که DbGrid داره)
من کد نویسیش رو دوس دارم؟
منظورتون رو درست متوجه نمیشم.برای گرفتن اطلاعات مثل دلفی ۲ راه ساده اینه که یا از شئ table استفاده کنید که کد نویسی sql نمیخواد و یا از Query که باید تو sql code اون کدی که می خواهید رو بنویسید مثل select * from ...
اگه منظورتون محیط کدنویسی برای پایگاه داده هستش که اینجا نمیشه باید mysql workbench رو نصب کنید و تو محیط اون کدنویسی پایگاه داده رو انجام بدید . بعد میتونید کدهای تولیدی رو توی شئ Query کپی کنید یا با یک دستور اونو از پایگاه فراخوانی کنید.
3- تفاوت اتصال به پایگاه داده با کامپوننت zcomponent و در حالتی که از کامپوننت هایی مثل
SQLTransaction
SQLQuery
IBConnection
Datasource
استفاده میکنیم در چیه؟
راستش رو بگم کار کردن با اونها به راحتی zcomponent نیست و کد نویسی مشکل تری دارن برا همین نرفتم سراغشون و چیز زیادی در موردشون نمیدونم. هدفم اتصال به پایگاه داده بود که با zcomponent به هدفم رسیدم .
-
راستی فراموش کردم ازت تشکر کنم.
چند وقت پیش سوالی از indy تو دلفی ازم پرسیدی که رفتم سراغ خاطرات گذشته. :)
به چنتا نتیجه جدید دست پیدا کردم \\:D/
خیلی وقته بچه های فروم از نبود یک دانلود منجیر گرفیکی تو گنو/لینوکس شکایت های زیادی می کردن.(چیزی شبیه IDM )
من ۲ تا شئ جدید برای لازاروس پیدا کردم که فکر کنم بشه یاهاشون یک برنامه دانلودر گرفیکی درست کرد.
http://curlpas.sourceforge.net/curlpas/index.html (http://curlpas.sourceforge.net/curlpas/index.html)
http://synapse.ararat.cz/doku.php (http://synapse.ararat.cz/doku.php)
از این وتا لینک دوم سایت بهتری هستش و هنوز هم داره توسعه پیدا میکنه. دانلود کردم و نصبش کردم و دارم سعی می کنم بفهمم دانلودر ها چطور کار می کنن و چه روندی رو طی می کنند.
تا الان به نتایج جالبی رسیدم. ;D هنوز خیلی مونده به یک دانلودر ساده برسم ولی شاید یک روزی تونستم یک دانلودر گرافیکی خوب برای کاربرای گنو/لینوکس بنویسم.
الان تنها مشکلم وقته و فرصت تحقیق و بررسی و تست و کدنویسی . 8)
یا حق
-
سلام
با تشکر از لطفتون
کارهایی که گفتین رو امتحان میکنم تا ببینم چی میشه.
راستی فراموش کردم ازت تشکر کنم.
ما باید از شما تشکر کنیم.
موفق باشید.
-
سلام
منظورتون رو درست متوجه نمیشم.برای گرفتن اطلاعات مثل دلفی ۲ راه ساده اینه که یا از شئ table استفاده کنید که کد نویسی sql نمیخواد و یا از Query که باید تو sql code اون کدی که می خواهید رو بنویسید مثل select * from ...
اگه منظورتون محیط کدنویسی برای پایگاه داده هستش که اینجا نمیشه باید mysql workbench رو نصب کنید و تو محیط اون کدنویسی پایگاه داده رو انجام بدید . بعد میتونید کدهای تولیدی رو توی شئ Query کپی کنید یا با یک دستور اونو از پایگاه فراخوانی کنید.
ببینید منظورم اینه که من بخوام مثل شما توی اون عکسی که قرار دادین کد نویسی کنم.مثل حالت عادی در دلفی (که خودم نمونش رو گذاشتم)؟
یا از Query که باید تو sql code اون کدی که می خواهید رو بنویسید مثل select * from ...
منظورم این جور کد نویسیه.یعنی برای نمایش اطلاعات در dbgrid کدنویسی انجام بدم.
تشکر
-
سلام
آره منم همچین خطاهایی دیده بودم. بهتره از اون لینکی که از sourceforge دادم دانلود کنید این لینک دوم زیاد توصیه نمیشه.ممکنه همچین خطاهایی بده(باید تو فایل zclass.pas یه تغیراتی بدید که درست بشه- راستش من یکبار تو اینترنت کدش رو پیدا کردم ولی الان خاطرم نیست)
از همون لینک اول preview-ZEOSDBO-6.6.7-stable رو دانلود کنید بدون خطا کامپایل و نصب میشه.(ویرایش ۷ رو اگه خواستی باید trunk رو دانلود و نصب کنی )
من از اون پست قبلی تا الان (ساعت تقریبا 10) دارم میگردم و هیچ راه حلی برای این خطا نبوده.جز یک خطا از همین نوع که بصورت باگ توسط یکی از کاربراشون (فروم لازاروس) رپورت شده و راه حلی براش نبوده؟ شما چه جوری تونستید نصبش کنید؟ (جز فروم لازاروس منبع خوبه دیگه ای من ندیدم و همشون به همین ختم میشن)
این preview-ZEOSDBO-6.6.7-stable , ZEOSDBO-6.6.6-stable ،ZEOSLIB_STABLE_REV922 رو دانلود کردم.تو همه همین خطا رو میده؟
قضیه trunk چیه دیگه؟
-
سلام
اون خطا چیز خاصی نبود.
از همون لینک اول preview-ZEOSDBO-6.6.7-stable رو دانلود کنید بدون خطا کامپایل و نصب میشه.
باید ورژن جدید یعنی 7 نصب میشد قدیمی ها خطا میدن !نسخه قدیم جواب نمیده کدی هم نمیخواد.
-
باید ورژن جدید یعنی 7 نصب میشد قدیمی ها خطا میدن !نسخه قدیم جواب نمیده کدی هم نمیخواد.
سلام
خوشحالم موفق شدی ;) من چون قبلا از نسخه 6.6.7 تو لازاروس 9.30.4 استفاده می کردم فکر می کردم باید جواب بده ;D
نسخه 7 رو از کدوم لینک گرفتی؟ trunk ؟
میدونی فکر می کنم trunk نسخه ای هست که توسعه دهنده ها از اون استفاده می کنند و باگ های اون نسخه رو رفع می کنند و وقتی به یه حد خوبی رسید به عنوان نسخه بعد منتشر میشه.
برای کد نویسی همه اون کارهایی که تو پست قبل گفتم میتونید تو محیط کدنویسی انجام بدید و توی اشیا چیزی رو تنظیم نکنید و از طریق کدنویسی خاصیت های اونها رو مقدار دهی کنی و بعد ازشون استفاده کنی.
مثلا شیء zconnection برای اتصال خاصیت hostname,port,user,password,database,codepage رو از طریق کدنویسی مقدار میدید
zconnection1.hostname:='localhost';
و الی آخر و بعد خاصیت connected اون رو به حالت true تغییر بدید تا اتصال انجام بشه.
راستی فراموش نکنی برای mysql اگه پایگاه رو سیستم خودت نیست باید mysql-client-dev رو سیستم از طریق مخازن نصب باشه تا بتونه به پایگاه متصل بشه
موفق باشی :)
-
سلام
با تشکر از لطف شما.
نسخه 7 رو از کدوم لینک گرفتی؟ trunk ؟
ZEOSDBO-7.0.1-beta
مشکل پکیج جدید اینه که بعد از هر خاموش و روشن شدن کامپیوتر حذف میشه و پایداریش در همین حد شده.مجبورم نسخه های دیکه رو هم نصب کنم.ببینم چی میشه.
حجمش حدود 2 مگابایت بود.
از اینجا گرفتم:
http://zeos.firmos.at/portal.php (http://zeos.firmos.at/portal.php)
تو تاپیک اولش در مورد همون ورژن های جدید نوشته و لینک داده.
فعلا لازاروس رو توی ویندوز دارم کار میکنم تا با محیطش بیشتر آشنا بشم بعد میرم روی اوبونتو.درایوری که گفتین توی ویندوز libmysql.dll رو هم نصب کردم. Zconnection دیگه خطا نمیده.
به جای شئی table یه TZquery (اگه اسمش درست باشه) گذاشتم دارم کد مینویسم تقریبا مثه همون دلفیه.فعلا با این شئی به خطا برخورد کردم.
mysql workbench رو هم نصب کردم خیلی جالب بود.یه اتصال به دیتابیس ساختم.
سپاس
-
سلام
سلام
تشکر
تا اینجا که داره خوب پیش میره :)
یه سوال فنی؟
من اگه بخوام query های دیتابیس رو اجرا کنم مثل شما تو مثالی که گذاشتین از کدوم کامپوننت باید استفاده کنم؟ TZquery یا ZUpdateSQL1 ؟
فک کنم TZquery محدودیت داره و میگه دستوررات sql رو باید در ستون properties توی بخش SQL (روش کلیک میکنیم کادر باز میشه و میتونیم دستور نویسیم) بنویسیم، ولی من میخوام توی فرم دستور بنویسم مثلا توی oncreate فرم؟
ZQuery1.SQL.Clear;
ZQuery1.SQL.Add('SELECT * FROM amahi.persian');
ZQuery1.ExecSQL;
مثلا دستور اس کیو ال بالا اجرا نمیشه اما هر وقت همین دستور اس کیو ال رو توی بخش SQL کامپوننت TZquery کپی کنم کار میکنه؟
نمی دونم درست منظورم رو بیان کردم یا نه؟
سپاس
-
من اگه بخوام query های دیتابیس رو اجرا کنم مثل شما تو مثالی که گذاشتین از کدوم کامپوننت باید استفاده کنم؟ TZquery یا ZUpdateSQL1 ؟
ZQuery1.SQL.Clear;
ZQuery1.SQL.Add('SELECT * FROM amahi.persian');
ZQuery1.ExecSQL;
مثلا دستور اس کیو ال بالا اجرا نمیشه اما هر وقت همین دستور اس کیو ال رو توی بخش SQL کامپوننت TZquery کپی کنم کار میکنه؟
سلام
دستورات sql در دوحالت خروجی می دن
اولین نوع خروجی یک جدول است که دستور sql که شما نوشته اید از آن نوع هست و باید با دستور زیر اطلاعات رو فراخوانی کنید
ZQuery1.Open;
حالت دوم نوعی دستورات هست که اطلاعات پایگاه داده را تغییر می دهد و خروجی ندارد یا به صورت تابع خروجی خود را بر می گردانند این دستورات باید با ExecSQL اجرا شوند. (مثل stored prosedure ها )
اگه خوب متوجه نشدی بگو تا بیشتر توضیح بدم :)
موفق باشی ;)
-
سلام
تشکر
خوب اگر بیشتر توضیح بدید بحث کاملتر میشه.ولی هنوز به جواب نرسیدم.
اولین نوع خروجی یک جدول است که دستور sql که شما نوشته اید از آن نوع هست و باید با دستور زیر اطلاعات رو فراخوانی کنید
من با همین دستور ZQuery1.Open; هم امتحان کردم ولی به جواب نرسیدم.باز هم خطای sql query is empty رو میده. مشکل من تو همین قسمت همینه شده؟
حالت دوم نوعی دستورات هست که اطلاعات پایگاه داده را تغییر می دهد و خروجی ندارد یا به صورت تابع خروجی خود را بر می گردانند این دستورات باید با ExecSQL اجرا شوند. (مثل stored prosedure ها )
در مورد stored prosedure من تجربه ای ندارم ولی اگه توضیح بدین فک کنم خیلی خوب بشه.
بخصوص اگه نمونه کدی مثال بزنید
سپاس
-
سلام
من با همین دستور ZQuery1.Open; هم امتحان کردم ولی به جواب نرسیدم.باز هم خطای sql query is empty رو میده. مشکل من تو همین قسمت همینه شده؟
پس شاید اصلا دستور sql شما خروجی نداره ??? اول برو تو mysql workbench دستور sql رو بزن و ببین خروجی داره یا نه!
در مورد stored prosedure من تجربه ای ندارم ولی اگه توضیح بدین فک کنم خیلی خوب بشه.
بخصوص اگه نمونه کدی مثال بزنید
چشم یک مثال با کد برای procedure های mysql بزودی اینجا میزارم. ;)
-
سلام
پس شاید اصلا دستور sql شما خروجی نداره اول برو تو mysql workbench دستور sql رو بزن و ببین خروجی داره یا نه!
تو پست قبلی اشاره کردم که اگه کد رو توی Sql کامپوننت Tzquery کپی کنم جواب میگیرم اما با کد نویسی نه؟خرروجی داره.
باز هم میگردم و امتحان کنم ببینم چی میشه.
(نمایش ساده اطلاعات)
http://pastebin.com/AY0pau8B (http://pastebin.com/AY0pau8B)
*****************************************************************************
پست رو ویرایش کردم چون بخش اتصال حل شد (بخش اول). :D ;) تشکر از راهنمایی
در واقع در onCreate فرم باید این کد اضافه بشه:
zq.SQL.clear;
zq.SQL.add:='SELECT * FROM persian';
zq.open;
بخش دوم مونده -procedure ،اگه مثالی بیارید کامل میشه.البته باید ثبت و حذف و ویرایش رو هم تست کنم ببینم چه کدی نیاز دارن.
تشکر از شما :)
-
(نمایش ساده اطلاعات)
http://pastebin.com/AY0pau8B (http://pastebin.com/AY0pau8B)
*****************************************************************************
پست رو ویرایش کردم چون بخش اتصال حل شد (بخش اول). :D ;) تشکر از راهنمایی
در واقع در onCreate فرم باید این کد اضافه بشه:
zq.SQL.clear;
zq.SQL.add:='SELECT * FROM persian';
zq.open;
سلام
تو لینکی که گذاشته بودید کد ها رو دیدم.
شما چرا قبل از قرار دادن کد sql تو query اونو active کردید؟؟؟؟
اینجوری query نمیتونه کد sql رو اجرا کنه. باید اول query رو close کنید (اگه open شده ولی محض احتیاط close بشه بهتره) بعد کد sql رو پاک کنید و بعد کد sql جدید رو داخل اون قرار بدید و حالا اگه خواستید active کنید یا open کنید یا exesql کنید.
zq.close;
zq.sql.clear;
zq.SQL.Text:='SELECT * FROM persian';
zq.open; یا zq.active:=true یا zq.ExecSQL;
قرار دادن این کدها توی فرم create باعث میشه همون ابتدا که فرم در حال ساخت است اجرا بشن و اطلاعات نمایش داده بشه و تا زمانی که برنامه باز هست اطلاعات داخل query به روز نمیشه. اگه اونها رو تو form.show قرار بدید و فرم اصلی برنامه نباشه بدون خارج شدن از برنامه و با بستن فرم و باز کردن مجدد اون اطلاعات فرم به روز میشه.
برای درج و ویرایش و حذف اطلاعات از این query استفاده نکنید خیلی بهتره.
برای این کار از دستورات sql تو یک query دیگه استفاده کنید.
-
برای ایجاد یک stored procedure در MYSQL باید اول کد ایجاد اونو تو پایگاه داده بنویسید و در حقیقت اون رو در پایگاه داده قرار بدید و از طریق برنامه اون procedure رو فراخونی کنید.
procedure ها بیشتر برای انجام عملیات روی داده ها و دستکاری اونها در پایگاه داده استفاده می شن.مثلا ویرایش یا درج یا حذف یا پردزاش و .....
یک مثال کوچک برای ایجاد یک procedure جهت درج اطلاعات در یک جدول.
USE `database`;
DROP procedure IF EXISTS `insert_p`;
CREATE PROCEDURE `database`.`insert_p` (IN `p_name` varchar(15),IN `p_family` varchar(20),IN `p_telephon` varchar(15),IN `p_mobile` varchar(11))
BEGIN
INSERT INTO table1 (`name`,family,telephon,mobile)
VALUES (p_name,p_family,p_telephon,p_mobile);
END
با اجرای این کد در پایگاه داده mysql و داخل database یک procedure با نام insert_p ایجاد می شود که با گرفتن ۴ ورودی نام و نام خانوادگی و تلفن و موبایل آنها را داخل جدول table1 درج می کند.
برای امتحان آن در mysql workbench این کد را وارد کنید و اجرا نمایید .
CALL database.insert_p('amir','shahriary','0511999999','09159999999');
با این کار باید یک سطر در جدول با اطلاعات وارد شده درج گردد.
برای استفاده از این procedure در lazarus ۲ راه وجود دارد.
یکی اینکه کد شبیه به کد بالا را در یک query ایجاد کنید و سپس query را EXEsql کنید (نه open) .
راه دوم باید از طریق پارامتر ها این کد را در query ایجاد کنید (تو پست بعد توضیح میدم ;) )
یا حق
-
سلام
(نمایش ساده اطلاعات)
http://pastebin.com/AY0pau8B (http://pastebin.com/AY0pau8B)
*****************************************************************************
پست رو ویرایش کردم چون بخش اتصال حل شد (بخش اول). :D ;) تشکر از راهنمایی
در واقع در onCreate فرم باید این کد اضافه بشه:
zq.SQL.clear;
zq.SQL.add:='SELECT * FROM persian';
zq.open;
سلام
تو لینکی که گذاشته بودید کد ها رو دیدم.
شما چرا قبل از قرار دادن کد sql تو query اونو active کردید؟؟؟؟
اینجوری query نمیتونه کد sql رو اجرا کنه. باید اول query رو close کنید (اگه open شده ولی محض احتیاط close بشه بهتره) بعد کد sql رو پاک کنید و بعد کد sql جدید رو داخل اون قرار بدید و حالا اگه خواستید active کنید یا open کنید یا exesql کنید.
zq.close;
zq.sql.clear;
zq.SQL.Text:='SELECT * FROM persian';
zq.open; یا zq.active:=true یا zq.ExecSQL;
قرار دادن این کدها توی فرم create باعث میشه همون ابتدا که فرم در حال ساخت است اجرا بشن و اطلاعات نمایش داده بشه و تا زمانی که برنامه باز هست اطلاعات داخل query به روز نمیشه. اگه اونها رو تو form.show قرار بدید و فرم اصلی برنامه نباشه بدون خارج شدن از برنامه و با بستن فرم و باز کردن مجدد اون اطلاعات فرم به روز میشه.
برای درج و ویرایش و حذف اطلاعات از این query استفاده نکنید خیلی بهتره.
برای این کار از دستورات sql تو یک query دیگه استفاده کنید.
تشکر
منم تصحیح کردم ولی یادم رفت کد رو کامل بذارم...همین طور بود که شما میگید.تشکر
ZQuery1.SQL.Clear;
ZQuery1.SQL.Add('select * from s');
ZQuery1.Open;
ZQuery1.Active:=true;
بایت پست stored procedure خیلی ممنون.
منم تست میکنم و تا پست بعدی منتظر میمونم تا کامل تر بشن.
تشکر مفید بودن
-
سلام
:D
اینجا چرا فقط فیلد نام رو توی ' ' قرار دادین ؟ ! در حالی که varchar به جز اون داریم.
INSERT INTO table1 (`name`,family,telephon,mobile)
کد شما خطا میده (نام دیتابیس و اطلاعات لازم رو وارد میکنم)
syntax error,...,expecting ';'
VALUES (p_name,p_family,p_telephon,p_mobile);
END
من این کد رو زدم و تایید کرد:(بدون خطا اجرا شد)
DELIMITER //
USE `amahi`;
//
CREATE PROCEDURE `amahi`.`insert_p` (IN `p_id` int(10),IN `p_name`
varchar(20),IN `p_family` varchar(30))
BEGIN
INSERT INTO persian(id,name,family)
VALUES (p_id,p_name,p_family);
END //
سوال:
1- برای فارسی نویسی باید utf رو به پراسجر معرفی کنیم؟ توی call بالا که فارسی به جای انگلیسی مینویسیم خطا میده.
2-
من این کد رو به فرم اضافه کردم:
ZQuery2.sql.Clear;
ZQuery2.sql.Add('call `amahi`.`insert_p`('8520010','samad','jalali');');
ZQuery2.ExecSQL;
ولی میگه:
unit1.pas(46,45) Fatal: Syntax error, ")" expected but "ordinal const" found
اگر ' ' هر فیلد رو بردارم و اجرا کنم میگه فیلد samad نداریم؟ (مقدار فیلد name محسوب میشه)
به این صورت:
ZQuery2.sql.Clear;
ZQuery2.sql.Add('call `amahi`.`insert_p`(852055010,samad,jalali);');
ZQuery2.ExecSQL;
نظر شما در این موارد چیه ؟
:) سپاس
-
سلام
:)
اینجا چرا فقط فیلد نام رو توی ' ' قرار دادین ؟ ! در حالی که varchar به جز اون داریم.
INSERT INTO table1 (`name`,family,telephon,mobile)
فیلد نام رو تو '' قرار ندادم اون `` هستش . (علامت ~ کنار عدد ۱)
کلمه name تو mysql و sql یک کلمه تعریف شده هستش و بهتره برای اشتباه نشدن تو `` قرار بگیره (نه '').
سوال:
1- برای فارسی نویسی باید utf رو به پراسجر معرفی کنیم؟ توی call بالا که فارسی به جای انگلیسی مینویسیم خطا میده.
نیازی به utf نیست . همین که در زمان connect شدن روی connection خودتون codepage رو در حالت utf8 قرار بدید درست عمل میکنه.
۲-من این کد رو به فرم اضافه کردم:
ZQuery2.sql.Clear;
ZQuery2.sql.Add('call `amahi`.`insert_p`('8520010','samad','jalali');');
ZQuery2.ExecSQL;
پارامتر های ورودی تابع رو اشتباه وارد کردید.
خط اول و سوم که مشکلی ندارن ولی خط وسط که کد sql رو ساختین یک مقدار اشتباه داره.
باید اینجوری باشه .
ZQuery2.sql.Add('call `amahi`.`insert_p`(8520010,')+QuotedStr('samad')+','+QuotedStr('jalali')+');');
-
سلام. ورودم رو به انجمن های اوبونتو خیر مقدم عرض میکنم. امیدوارم لحظه های خوبی رو اینجا سپری کنم. من زیاد اینکاره نیستم ولی خب گویا باید توی ترویج علم یه سهم کوچولیی داشته باشیم. منم به لازاروس علاقه مند هستم و دیگه تمام پروژه هام رو با اون مینویسم. الانم اومدم اینجا تا چیزایی که بلدم رو به اشتراک بذارم ولی خب الان نمیتونم. فردا امتحان زیست دارم :) دوباره میام...
-
سلام. ورودم رو به انجمن های اوبونتو خیر مقدم عرض میکنم. امیدوارم لحظه های خوبی رو اینجا سپری کنم. من زیاد اینکاره نیستم ولی خب گویا باید توی ترویج علم یه سهم کوچولیی داشته باشیم. منم به لازاروس علاقه مند هستم و دیگه تمام پروژه هام رو با اون مینویسم. الانم اومدم اینجا تا چیزایی که بلدم رو به اشتراک بذارم ولی خب الان نمیتونم. فردا امتحان زیست دارم :) دوباره میام...
سلام
خیلی خوش اومدی ;)
راستی گفتی امتحان زیست؟ ??? ببخشید فضولی نباشه شما مگه کلاس چندی؟ چی می خونی؟
-
سلام. ورودم رو به انجمن های اوبونتو خیر مقدم عرض میکنم. امیدوارم لحظه های خوبی رو اینجا سپری کنم. من زیاد اینکاره نیستم ولی خب گویا باید توی ترویج علم یه سهم کوچولیی داشته باشیم. منم به لازاروس علاقه مند هستم و دیگه تمام پروژه هام رو با اون مینویسم. الانم اومدم اینجا تا چیزایی که بلدم رو به اشتراک بذارم ولی خب الان نمیتونم. فردا امتحان زیست دارم :) دوباره میام...
سلام
خیلی خوش اومدی ;)
راستی گفتی امتحان زیست؟ ??? ببخشید فضولی نباشه شما مگه کلاس چندی؟ چی می خونی؟
واو \\:D/ کلاس اول هستم. چی میخونی نداره دیگه. توی کلاس اول که همه عمومی میخونن 8)
-
کلاس اول هستم.
آفرین :o خیلی نسبت به سنت جلو هستی. برنامه نویسی کار آسونی نیست و بیشتر جوووونا تو سن شما ترجیح میدن با سیستمشون بازی کنن تا بشینن و برنامه بنویسن اونم بدون آموزش قبلی یا اجبار کلاس درس ! ;)
موفق باشی
-
@ Delphi887
سلام
من امتحان کردم ولی باز هم این خطا میده.فک کنم لازم باشه یه بار دیگه نگاش کنیم؟
وقتی کد زیر رو میزنیم :
ZQuery2.sql.Add('call `amahi`.`insert_p`(8520010,')+QuotedStr('samad')+','+QuotedStr('jalali')+');');
این خطا رو میده:
unit1.pas(46,104) Error: Illegal expression
unit1.pas(46,12) Error: Incompatible types: got "LongInt" expected "AnsiString"
unit1.pas(46,104) Fatal: Syntax error, ";" expected but ")" found
خطای اول به آخرین ' گیر میده.
خطای بعدی اخره .ZQuery2 نشون میده.
مثل خطال اول به همون گیر میده.
شاید یه
');
انتها اضافه باشه؟
-
راحت ترین کار اینه که قبل از اینکه query رو اجرا کنی متن sql اونو نشون بدی بعد ببین درست ایجاد شده یا نه.
یعنی خط ZQuery2.ExecSQL; رو غیر فعال کن و بجاش بنویس showmessage(ZQuery2.sql.text); و وقتی متن sql رو نشون داد باید یه چیزی شبیه به اونی که تو workbench برای درج جدول زدی ساخته باشه. اگه جایی , یا ; یا پانتز کم و زیاد بود اصلاحش کن و دوباره امتحان کن .
;)
-
راحت ترین کار اینه که قبل از اینکه query رو اجرا کنی متن sql اونو نشون بدی بعد ببین درست ایجاد شده یا نه.
یعنی خط ZQuery2.ExecSQL; رو غیر فعال کن و بجاش بنویس showmessage(ZQuery2.sql.text); و وقتی متن sql رو نشون داد باید یه چیزی شبیه به اونی که تو workbench برای درج جدول زدی ساخته باشه. اگه جایی , یا ; یا پانتز کم و زیاد بود اصلاحش کن و دوباره امتحان کن .
;)
موضوع اصلا این نیست. اروری که میزنه توی کامپایل کردن هست. اصلا به مرحله ای نمیرسه که بخوای از ShowMessage استفاده کنی! مشکلش اینه که اون پرانتزا یکم قاطی شدن. تابع قبل از اینکه کامل تموم بشه اشتباهی بسته شده و در آخر دوباره بسته شده.
من فکر کنم درستش کردم:
ZQuery1.sql.Add('call `amahi`.`insert_p`(8520010,'+QuotedStr('samad')+','+QuotedStr('jalali')+');');
-
راحت ترین کار اینه که قبل از اینکه query رو اجرا کنی متن sql اونو نشون بدی بعد ببین درست ایجاد شده یا نه.
یعنی خط ZQuery2.ExecSQL; رو غیر فعال کن و بجاش بنویس showmessage(ZQuery2.sql.text); و وقتی متن sql رو نشون داد باید یه چیزی شبیه به اونی که تو workbench برای درج جدول زدی ساخته باشه. اگه جایی , یا ; یا پانتز کم و زیاد بود اصلاحش کن و دوباره امتحان کن .
;)
موضوع اصلا این نیست. اروری که میزنه توی کامپایل کردن هست. اصلا به مرحله ای نمیرسه که بخوای از ShowMessage استفاده کنی! مشکلش اینه که اون پرانتزا یکم قاطی شدن. تابع قبل از اینکه کامل تموم بشه اشتباهی بسته شده و در آخر دوباره بسته شده.
من فکر کنم درستش کردم:
ZQuery1.sql.Add('call `amahi`.`insert_p`(8520010,'+QuotedStr('samad')+','+QuotedStr('jalali')+');');
افرین :)
حواب داد.
ظاهرا با سن کمت کارهای خوبی انجام میدی. ;) :D
فک کنم لازم بشه از اول بشینم برنامه نویسی رو مرور کنم.
@ Delphi887
showmessage(ZQuery2.sql.text);
دستور جالبی بود.
پس در این صورت برای دریافت ورودی نام از فرم به این صورت باید اجرا کنیم:
ZQuery2.sql.Add('call `amahi`.`insert_p`(908520010,'+QuotedStr(Edit1.Text)+','+QuotedStr('jalali')+');');
محتوای Edit1.Text رو میگیره و میفرسته به SP ما و خروجی رو بر ثبت میکنه.
-
سلام
پس در این صورت برای دریافت ورودی نام از فرم به این صورت باید اجرا کنیم:
ZQuery2.sql.Add('call `amahi`.`insert_p`(908520010,'+QuotedStr(Edit1.Text)+','+QuotedStr('jalali')+');');
محتوای Edit1.Text رو میگیره و میفرسته به SP ما و خروجی رو بر ثبت میکنه.
آفرین ;)
این یک راه استفاده از stored procedure ها هست. یعنی شما متن رو ایجاد کنی و به جای پارامتر های ورودی مقدار متغیرهایی که کاربر وارد کرده رو بزارید.
این راه خیلی راحت و مفیده ولی همیشه نمیشه اینجوری به procedure ها پارامتر ها رو ارسال کرد و بعضی وقتا کار خیلی سخت میشه.(مثلا برای درج تصویر در جدول)
روش دوم که قبلا هم گفتم استفاده از param توی query هستش.
شما همون متن رو که لازم دارید توی خاصیت sql مینویسی ولی قبل از هر متقیر یک : میزاری. اینجوری مشخص می کنی که عبارت بعدی یک متغیر است که باید مقدار دهی بشه.
call `amahi`.`insert_p` (:id,:name,:family');
بعد اگه قسمت param رو نگاه کنی ۳ تا متقیر توش اومده که دقیقا همون نامهای نوشته شده تو query با : است.
تو این مرحله باید نوع پارامتر از نظر ورودی یا خروجی رو تعریف کنی و بعد نوع پارامتر از نظر نوع عددی یا رشته ای یا ...
بعد که همه پارامتر های ورودی رو تنظیم کردی تو کد اینجوری بهشون مقدار میدی :
ZQuery2.ParamByName('id').AsInteger:=strtoint(Edit1.Text);
ZQuery2.ParamByName('name').AsString:=Edit2.Text;
ZQuery2.ParamByName('family').AsString:=Edit3.Text;
ZQuery2.ExecSQL;
یا حق :)
-
سلام دوستان
بسیار عالی و مفید ;) 8)
با کمک این هم امتحان میکنم تا نتیجه رو ببینم.
چند سوال برام پیش اومده:
1- من کمی گشتم ولی نتونستم Data Module رو پیدا کنم؟می خواستم یکی بسازم
2- type فیلد عکس (برای ذخیره سازی عکس) در پایگاه داده باید از چه نوعی باشه ؟ (رشته یا ...)
3- حالا برای ذخیره سازی عکس به کمک پارام به همین صورت باید عمل کنیم؟
4-یک سوال قدیمی:
تفاوت Quotedstr با اون روشی که شما گفتین (استفاده از 4 کوتیشن '''' ) در چیه؟
تشکر :)
-
1- من کمی گشتم ولی نتونستم Data Module رو پیدا کنم؟می خواستم یکی بسازم
باید گزینه file و بعد New ... رو بزنید و از پنجره باز شده قسمت Module میتونید Data Module رو پیدا کنید
2- type فیلد عکس (برای ذخیره سازی عکس) در پایگاه داده باید از چه نوعی باشه ؟ (رشته یا ...)
برای تصویر باید نوع اون رو در حالت Blob قرار بدید
3- حالا برای ذخیره سازی عکس به کمک پارام به همین صورت باید عمل کنیم؟
تقریبا بله ولی برای اینکه تصویر را از طریق پارامترها ارسال کنید یکم تغییرات باید تو کدها معمول بدید
4-یک سوال قدیمی:
تفاوت Quotedstr با اون روشی که شما گفتین (استفاده از 4 کوتیشن '''' ) در چیه؟
راستش نمیدونم ولی استفاده از تابع یا حالتی که من استفاده می کردم در نتیجه تفاوتی نداره . :)
-
سلام :)
این قضیه ذهنم رو مشغول کرده.
برای کار با عکس ها (بخصوص برای پایگاه داده) از کدوم ابزار باید استفاده بشه؟ عکس رو لود کنیم و دسترسی داشته باشیم.
تشکر
-
سلام دوستان
من کدش رو پیدا کردم:
procedure TForm1.dbsaveimage(mfilename, mfldname: String);
var
ms : TMemoryStream ;
begin
ms := TMemoryStream.Create ;
ms.LoadFromFile( mfilename ) ;
ms.Position := 0 ;
ZQuery1.SQL.Clear ;
ZQuery1.SQL.Add( 'insert into imagelist ( cimage ) values ( :cimage )' ) ;
ZQuery1.Params.Items[ 0 ].LoadFromStream( ms, ftBlob ) ;
ZQuery1.ExecSQL ;
ms.Free
کدش رو پیدا کردم -تو سایت اصلی-این بخش ایتم صفر منظورش همون فیلد اول نیست؟اولین پارام؟
ارسال پارام روش مناسب تری هست؟
SP ها چطور میشه جایی دخیره کرد؟ این قابلیت وجود داره.
من هنوز با ارسال پارام به نتیجه نرسیدم وخطا میده.دوباره امتحان میکنم ببینم به کجا میرسم.
سپاس :)
-
سلام
آفرین =D> =D>
جوینده یابنده است :)
این بخش ایتم صفر منظورش همون فیلد اول نیست؟اولین پارام؟
بله درسته شما میتونید پامتر ها رو با نامشون یا به ترتیب index فراخونی کنید. هر دو روش یکیه .
ارسال پارام روش مناسب تری هست؟
دقیق نمیدونم ولی این روش اصولی تر هستش و میشه تمام نوع داده هایی رو به پایگاه ارسال کرد در حالی که روش معمول محدودیت هایی دارید .
SP ها چطور میشه جایی دخیره کرد؟ این قابلیت وجود داره.
منظورتون چیه؟ SP ها تو پایگاه داده ذخیره میشن و میتونید اونجا کدشون رو ببینید. اگه از Mysql Workbench استفاده می کنید میتونید توی Routines اون SP رو پیدا کنید. البته تو ویندوز برنامه های بیتشری برای کار با Mysql پیدا میشه که معمولا باید کرک بشن ولی امکانات قابل توجهی دارن.
میتونید از PHPMyadmin هم استفاده کنید. باید apache روی سیستمتون نصب کنید و همینطور PHP بعد با phpmyadmin هم میتونید روی پایگاه داده کار کنید.(هرچند برناه تحت وب چندان به خوبی برنامه های معمولی و با سرعت بالا و امکانات اونها نیستن)
موفق باشید
-
دوباره سلام
یادم رفت یه خبر دیگه رو هم بدم. ;D
دیروز ویرایش ۱.۰۴ لازاروس هم منتشر شد.
تو لینک زیر باگ هایی که در ویرایش قبلی بوده و توی اون رفع شده میتونید ببینید.
http://wiki.lazarus.freepascal.org/Lazarus_1.0_fixes_branch#Fixes_for_1.0.4_.28Merged.29 (http://wiki.lazarus.freepascal.org/Lazarus_1.0_fixes_branch#Fixes_for_1.0.4_.28Merged.29)
یا حق
-
سلام
:)
دوباره سلام
یادم رفت یه خبر دیگه رو هم بدم. ;D
دیروز ویرایش ۱.۰۴ لازاروس هم منتشر شد.
تو لینک زیر باگ هایی که در ویرایش قبلی بوده و توی اون رفع شده میتونید ببینید.
http://wiki.lazarus.freepascal.org/Lazarus_1.0_fixes_branch#Fixes_for_1.0.4_.28Merged.29 (http://wiki.lazarus.freepascal.org/Lazarus_1.0_fixes_branch#Fixes_for_1.0.4_.28Merged.29)
یا حق
خبر خیلی خوبی بود واینکه باگ های زیادی هم رفع شد.
پس کد ذخیره سازی که گذاشتم درست هست.
سلام
آفرین =D> =D>
جوینده یابنده است :)
منظورتون چیه؟ SP ها تو پایگاه داده ذخیره میشن و میتونید اونجا کدشون رو ببینید. اگه از Mysql Workbench استفاده می کنید میتونید توی Routines اون SP رو پیدا کنید. البته تو ویندوز برنامه های بیتشری برای کار با Mysql پیدا میشه که معمولا باید کرک بشن ولی امکانات قابل توجهی دارن.
میتونید از PHPMyadmin هم استفاده کنید. باید apache روی سیستمتون نصب کنید و همینطور PHP بعد با phpmyadmin هم میتونید روی پایگاه داده کار کنید.(هرچند برناه تحت وب چندان به خوبی برنامه های معمولی و با سرعت بالا و امکانات اونها نیستن)
موفق باشید
تشکر.
ولی من جایی خوندم Phpmyadmin قابلیت اجرای SP ها رو نداره.
-
سلام
پس کد ذخیره سازی که گذاشتم درست هست.
بله تقریبا روش همینه.
ولی من جایی خوندم Phpmyadmin قابلیت اجرای SP ها رو نداره.
شاید اینطور که شما میگید باشه . من تا الان نرفتم با phpmyadmin یک sp ایجاد یا مشاهده کنم فقط می دونستم تحت وب با MySQL کار میکنه و ساختن جدول رو هم دیده بودم. اگه بتونه query اجرا کنه میتونه SP هم بسازه ولی من خودم تا الان تست نکردم.
با این حال اگه خواستی تو ویندوز با MySQL کار کنی برنامه Navicat for MySQL رو پیدا کن و نصب کن واقعا خیلی کار رو راحت کرده و محیط نوشتن query توش خیلی امکانات خوبی داره. تو گنو/لینوکس نتونستم برنامه جالبی پیدا کنم.غیر workbench شاید 2 یا 3 تا برنامه بیشتر نباشه که با mysql کار میکنند و امکانات خیلی محدودی دارن.
-
سلام
با تشکر از لطف شما
توی تعریف routine ها در workbench تفاوت خاصی بین function و procedure وجود داره؟
تفات in و out در چیه؟موقع تعریف procedure.
سپاس :)
-
توی تعریف routine ها در workbench تفاوت خاصی بین function و procedure وجود داره؟
تفات in و out در چیه؟موقع تعریف procedure.
سلام
تفاوت function و procedure مربوط به workbench نمیشه. این دو نوع در SQL و خاصیت های دستوری اون گنجانده شده اند و به یک برنامه خاص وابسته نیستند.
function ها توابعی هستند که فقط یک مقدار عددی را در خروجی خود دارند و مثل همه توابع SQL فراخوانی می شوند. برای ارسال خروجی در Function باید از دستور RETURN استفاده شود.
procedure ها توابعی هستند که چندین خروجی می توانند داشته باشند و برای فراخوانی نیاز به استفاده از دستور Call دارند.در تعریف پارمتر های توابع در procedure سه کلمه IN و OUT و INOUT استفاده می شود که ورودی یا خروجی یا ورودی/خروجی بودن پارامتر را مشخص می کند.
یا حق
-
سلام
با تشکر از لطف شما
احساس میکنم دریافت ورودی عددی-Int و رشته ای -String با دلفی متفاوتر هست.من وقتی عددی توی TEdit1 یا رشته ای در Tedit2 قرار میدم برنامه اونها رو null در نظر میگیره.
مثل اینه تابع StrToInt برای ورودی عددی بیهودس.
-
سلام
با تشکر از لطف شما
احساس میکنم دریافت ورودی عددی-Int و رشته ای -String با دلفی متفاوتر هست.من وقتی عددی توی TEdit1 یا رشته ای در Tedit2 قرار میدم برنامه اونها رو null در نظر میگیره.
مثل اینه تابع StrToInt برای ورودی عددی بیهودس.
سلام
من درست متوجه منظورتون نشدم ولی من تا الان همچین مشکلی نداشتم و هم رشته ای و هم عددی استفاده کردم و تابع strtoint هم زیاد استفاده می کردم و درست کار میکرد. هرچند الان تو برنامه های جدید دیدم که از تابع strtoint64 استفاده میشه و متغیر های int هم از نوع ۶۴ بیتی تعریف میشن تا برنامه تو سیستم های 64 بیتی هم به خوبی کار کنه.
-
سلام
برای من نال به پایگاه داده میفرسته.هم عدد و هم رشته.
هر وقت داده ها رو میفرستم null ثبت میکنه و بعدش هم این خطا رو میده:
Can not open a Resultset
با تابع strtoint64 هم امتحان می کنم.
تشکر
تشکر
-
برای من نال به پایگاه داده میفرسته.هم عدد و هم رشته.
هر وقت داده ها رو میفرستم null ثبت میکنه و بعدش هم این خطا رو میده:
سلام
میشه دوباره طریقه ارسال پارامتر های خود به پایگاه داده رو بگید؟
-
سلام
3 تا TEdit رو روی فرم گذاشنم که به ترتیب برای id- عدد ،name- رشته نام ،family-رشته نام خانوادگی استفاده میشه.
اتصال به پایگاه داده هم که بدون خطا انجام میشه.
برای ثبت اطلاعات هم یک دکمه گذاشتم و کد های زیر رو اضافه کردم:
ZQuery2.Active:=true;
ZQuery2.Params.Items[0].AsInteger:=StrToInt(Edit1.Text);
ZQuery2.Params.Items[1].AsString:=Edit2.Text;
ZQuery2.Params.Items[2].AsString:=Edit3.Text;
ZQuery2.ExecSQL;
بجز کامپوننت های اتصال به پایگاه داده فقط یک ZQuery2 اضافه کردم و توی خاصیت SQLش هم این رو قرار دادم:
call `amahi`.`insert_p`(:id,:name,:family);
3 تا پارامتر رو هم می بینم.
پایگاه داده Amahi که جدول persian رو داره.با 3 فیلد id-name-family .
اگه اطلاعات دیگه ای هم لازم بود بگید تا بذارم.
تشکر
-
ZQuery2.Active:=true;
سلام
این خط رو غیر فعال کنید و دوباره امتحان کنید.
شما قبل اینکه به پارامترها مقدار بدید query رو فعال کردید. اینجوری پارامترها خالی ارسال میشن. Active یه جورایی همون کار EXEcSql رو انجام میده.
-
سلام
بسیار عالی =D> =D>
جواب داد و اطلاعات رو ثبت کرد.
فقط مشکل دیگه نمایش اطلاعات فارسیه که ؟؟؟ نشون میده ولی داده های انگلیسی رو درست نشون میده.
توی clientcodepage مقدار utf8 رو گذاشتم و تعریف دیتابیس هم همین طور:utf8_persian_ci
ولی همچنان این مشکل وجود دارد.
سپاس
-
فقط مشکل دیگه نمایش اطلاعات فارسیه که ؟؟؟ نشون میده ولی داده های انگلیسی رو درست نشون میده.
توی clientcodepage مقدار utf8 رو گذاشتم و تعریف دیتابیس هم همین طور:utf8_persian_ci
ولی همچنان این مشکل وجود دارد.
نباید همچین مشکلی باشه اگه این کارها رو انجام بدین.
مشکل فارسی تو کدوم قسمته؟ تو برنامه شما یا تو پایگاه فارسی ذخیره نمیشه؟
با workbench هم اطلاعات پایگاه داده که فارسی هستن درست نمایش داده نمیشه؟
-
سلام
وقتی دستی اطلاعات فارسی وارد میکنم توی PHPMyAdmin فارسی صحیح وارد میشه و تو لازاروس صحیح هم نشون داده میشه.
ولی وقتی با لازاروس فارسی میفرستم سمت دیتابیس هم در phpmyadmin و هم WorkBench ؟؟؟ ذخیره میشه و نشون داده میشه.
سپاس
-
خب یک کار دیگه انجام بدید.
قسمت codepage رو خالی بگذارید و بعد برید قسمت peropertis و اونو باز کنید و سپس توی اون اینو تایپ کنید.
codepage=utf8
ببینید درست میشه یا نه ;)
-
سلام
تشکر
ولی متاسفانه باز هم جواب نداد و به همون صورت ؟؟؟ نشون داده میشه.تایپش هم MyISAM گذاشتم.
راهی به ذهنم نمیرسه.
این PreprepareSQL رو هم اونجا دیدم چه نقشی داره؟
-
ولی متاسفانه باز هم جواب نداد و به همون صورت ؟؟؟ نشون داده میشه.تایپش هم MyISAM گذاشتم.
راهی به ذهنم نمیرسه.
این PreprepareSQL رو هم اونجا دیدم چه نقشی داره؟
نمیدونم چرا همچینه ؟ تو سیستم من که هم Windows و هم گنو/لینوکس فارسی هم درست ذخیره میشه و هم نمایش داده مشه.
با اون گزینه هم من تاحالا کار نکردم. راستش نمی دونم به چه کاری میاد.
راستی چرا پایگاه داده از نوع myisam هست؟ باید Inodb باشه. هرچند مربوط به فارسی نمیشه ولی فکر می کنم inodb بهتره از myisam .
-
سلام
با Inodb هم امتحان کردم و جواب نداد.
فیلد ها رو باید از چه نوع type قرار بدم.عدد رو نشون میده اما رشته های فارسی رو نه؟
-
من فیلدهای رشته ای رو varchar میزارم و با فارسی هم مشکلی نداشتم.
شما تو ویندوز داری امتحان می کنی یا تو گنو/لینوکس؟
-
سلام
من توی ویندوز دارم امتحان میکنم.
توی جدول دیگه هم امتحان کردم ولی باز هم همون جوریه.
در اینده نزدیک میخوام برنامه ها رو روی ابونتو بنویسیم.نکته خاصی در مورد گنو/لینوکس ابونتو برای کار با لازاروس وجود داره؟
-
من توی ویندوز دارم امتحان میکنم.
پس حتما اون قسمت که تو کنترل پنل مربوط به زبان هست و برای برنامه های Unicode هست رو روی Farsi تنظیم کرده اید ؟
در این صورت نباید مشکلی توی فارسی وارد کردن رشته ها از طریق برنامه تو پایگاه داده داشته باشه.
-
سلام
یونی کد که درست تنظیم شده.
گفتم وقتی که اطلاعات رو دستی وارد دیتابیس میکنم اطلاعات فارسی، صحیح نشون داده میشه (هم در لازاروس هم پایگاه داده)
فقط میمونه اطلاعاتی که لازاروس به پایگاه داده میفرسته که به صورت ؟؟؟ نشون داده میشه پس تقریبا میشه نتیجه بگیریم که لازاروس نمیتونه درست اطلاعات فارسی رو بفرسته و هر چی هست بین لازاروس و پایگاه دادس.
من ویندوز 64 بیت با لازاروس دارم و میخوام منتقلش کنم به ابونتو.
توی گوگل مقداری جستجو میکنم ببینم عیب از کجا پیدا میشه.
تشکر
-
اون قسمت که تو کنترل پنل مربوط به زبان هست و برای برنامه های Unicode هست
اتفاقا برعکس!
اون قسمت برای چیزای غیر استاندارده که یونیکد رو رعایت نکردن! اصطلاحا Non Unicode و شما نوع انکودینگ نون یونیکد رو روی فارسی قرار میدین! ;)
(http://dl.ma3x.ir/non-unicode.PNG)
-
اتفاقا برعکس!
اون قسمت برای چیزای غیر استاندارده که یونیکد رو رعایت نکردن! اصطلاحا Non Unicode و شما نوع انکودینگ نون یونیکد رو روی فارسی قرار میدین! ;)
(http://dl.ma3x.ir/non-unicode.PNG)
بله حق با شماست منظور من همون قسمت بود.
پس تقریبا میشه نتیجه بگیریم که لازاروس نمیتونه درست اطلاعات فارسی رو بفرسته و هر چی هست بین لازاروس و پایگاه دادس.
والا من تو ویندوز (البته XP) و گو/لینوکس با لازروس هم فارسی میفرستم و هم فارسی می خونم. غیر اون قسمت توی connection که codepage=utf8 کار دیگه ای انجام ندادم.
-
سلام
خیلی وقت بود این پست رو به روز نکرده بودم.
مشغله های شخصی و کاری فرصت نفس کشیدن هم نمیزارن چه برسه به ....
بگذریم ;)
این چند وقت درگیر کار با یک شئ جدید بودم.
Synapse
http://synapse.ararat.cz/doku.php (http://synapse.ararat.cz/doku.php)
این شئ چیزی شبیه به indyهست (ارتباطات تحت شبکه) ولی برخلاف اون نیازی به نصب تو lazarus نداره و با یک دستور ساده uses و دادن آدرس فایل های کتابخونه اون به کامپایلر پاسکال لازاروس میتونید از اشیای اون استفاده کنید.( البته non-visual هستن)
من بیشتر می خواستم با شیوه دریافت فایل از طریق اینترنت و نوشتن دانلودر ها آشنا بشم.
البته مستندات اون خیلی مختصره و مثال های زیادی از اون وجود نداره ولی تونستم با راهنمایی هایی که از ۲تا از دوستان برنامه نویسم تو برزیل( https://github.com/silvioprog (https://github.com/silvioprog) ) و یک نفر دیگه تو سودان( http://code-sd.com/eng/ (http://code-sd.com/eng/) ) کارم رو ادامه بدم.(اگه مشکلی تو lazarus داشتید بهشون ایمیل بزنید اگه بتونن و فرصت داشته باشن حتما کمک میکنن ;))
هنوز خیلی مونده تا برنامه بدون اشکالی از کار در بیاد ولی دارم همه تلاشمو میکنم تا هرطور شده یک دانلودر بنویسم.
http://shahriary.staffcms.um.ac.ir/imagesm/1064/My_Pic/my_downloader.jpg (http://shahriary.staffcms.um.ac.ir/imagesm/1064/My_Pic/my_downloader.jpg)
یا حق
-
سلام
نسخه پایدار کامپوننت Zeos منتشر شد. zeosdbo-7.0.3-stable
(http://wiki.freepascal.org/images/2/25/Zeos_Components.png)
برای دانلود به آدرس زیر مراجعه کنید.
http://sourceforge.net/projects/zeoslib/files/Zeos%20Database%20Objects/zeosdbo-7.0.3-stable/ (http://sourceforge.net/projects/zeoslib/files/Zeos%20Database%20Objects/zeosdbo-7.0.3-stable/)
-------
دوستان برای به روز زسانی این کامپوننت یکم دست نگهدارید. :( مشکلاتی با زبان فارسی و UTF8 داره که توصیه می کنم فعلا همون نسخه 7 بتا رو استفاده کنید 8)
-
سلام
مشکل Zeos 7.03-stable که گفته بودم پیدا شد و در نسخه 7.04 اصلاح شد.
اگه میخواهید از نسخه 7.03 استفاده کنید باید فایل ZAbstractRODataset.pas را پیدا کنید و آن را باز کنید و سپس به حدود خط ۱۷۵۷ برید و این دستور را پیدا کنید
Fields[i].Size := ResultSet.GetMetadata.GetColumnDisplaySize(I+1);
و اون رو با این دستور جابه جا کنید تا مشکل برطرف بشه سپس ذخیره کنید و دوباره کامپایل نمایید.
Fields[i].DisplayWidth := ResultSet.GetMetadata.GetColumnDisplaySize(I+1);
یا حق ;)
-
سلام
مدتیه که Raspberry Pi سر و صدای زیادی به پا کرده و بحث اول تبدیل شده توی این فرم هم مطالبی در موردش گفته شده.
Raspberry Pi چیست؟
The Raspberry Pi is a credit-card-sized single-board computer. It has been developed in the UK by the Raspberry Pi Foundation with the intention of stimulating the teaching of basic computer science in schools. Raspberry Pis are also used for multiple other purposes that are as different as media servers, robotics and control engineering
Raspbian چیست؟
Raspbian یک سیستم عامل رایگان بر پایه دبیان است که برای سخت افزار Raspberry Pi طراحی شده است (یعنی سیستم عامل استاندارد پیشنهاد شده جهت اجرا رو ی سخت افزار Raspberry Pi ) اگر چه Raspbian بیشتر از یک سیستم عامل خالص (سیستم عاملی که بسته های اضافی ندارد) است زیرا دارای 35000 بسته و نرم افزار از پیش کامپال شده است به همراه یک فرمت مناسب است که به راحتی نصب میشود و جهت بهترین عملکرد برای استفاده از Raspberry Pi بهینه سازی شده.
(http://www.raspbian.org/static/common/raspbian_logo.png)
اطلاعات بیشتر: http://www.raspbian.org/ (http://www.raspbian.org/)
در این پست به نحوه نصب برنامه لازاروس (زبان Object Pascal) بروی سیستم عامل Raspbian می پردازیم.
برای این کار در محیط Raspbian یک ترمینال باز میکنیم و دستورات زیر را اجرا میکنیم.
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install fpc
sudo apt-get install lazarus
فرایند نصب یک نسخه از نرم افزار لازاروس رو بر روی Raspberry Pi نصب میکند و در حدود 30 دقیقه طول خواهد کشید.پس از نصب برای اجرای لازاروس به بخش Programming از منوی استارت LXDE مراجعه کنید.
اطلاعات بیشتر:
http://wiki.freepascal.org/Lazarus_on_Raspberry_Pi (http://wiki.freepascal.org/Lazarus_on_Raspberry_Pi)
-
سلام
مدتیه که Raspberry Pi سر و صدای زیادی به پا کرده و بحث اول تبدیل شده توی این فرم هم مطالبی در موردش گفته شده.
Raspberry Pi چیست؟
The Raspberry Pi is a credit-card-sized single-board computer. It has been developed in the UK by the Raspberry Pi Foundation with the intention of stimulating the teaching of basic computer science in schools. Raspberry Pis are also used for multiple other purposes that are as different as media servers, robotics and control engineering
Raspbian چیست؟
Raspbian یک سیستم عامل رایگان بر پایه دبیان است که برای سخت افزار Raspberry Pi طراحی شده است (یعنی سیستم عامل استاندارد پیشنهاد شده جهت اجرا رو ی سخت افزار Raspberry Pi ) اگر چه Raspbian بیشتر از یک سیستم عامل خالص (سیستم عاملی که بسته های اضافی ندارد) است زیرا دارای 35000 بسته و نرم افزار از پیش کامپال شده است به همراه یک فرمت مناسب است که به راحتی نصب میشود و جهت بهترین عملکرد برای استفاده از Raspberry Pi بهینه سازی شده.
(http://www.raspbian.org/static/common/raspbian_logo.png)
اطلاعات بیشتر: http://www.raspbian.org/ (http://www.raspbian.org/)
در این پست به نحوه نصب برنامه لازاروس (زبان Object Pascal) بروی سیستم عامل Raspbian می پردازیم.
برای این کار در محیط Raspbian یک ترمینال باز میکنیم و دستورات زیر را اجرا میکنیم.
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install fpc
sudo apt-get install lazarus
فرایند نصب یک نسخه از نرم افزار لازاروس رو بر روی Raspberry Pi نصب میکند و در حدود 30 دقیقه طول خواهد کشید.پس از نصب برای اجرای لازاروس به بخش Programming از منوی استارت LXDE مراجعه کنید.
اطلاعات بیشتر:
http://wiki.freepascal.org/Lazarus_on_Raspberry_Pi (http://wiki.freepascal.org/Lazarus_on_Raspberry_Pi)
سلام ;)
مطلب جالبی بود :)
فکر می کنم تو زمینه ارتباط برنامه و سخت افزار خاص این مورد بیشتر بکار میاد. درسته ؟
-
سلام ;)
مطلب جالبی بود :)
فکر می کنم تو زمینه ارتباط برنامه و سخت افزار خاص این مورد بیشتر بکار میاد. درسته ؟
سلام مهندس :) :D
دقیقا همین طوره.در واقع با این کار نشون دادن Raspberry Pi کاربردهای وسیعی داره و داره (در آینده) به مینی کامپیوتر جیبی (از نظر خودم) تبدیل میشه. ;)
-
سلام ;)
مطلب جالبی بود :)
فکر می کنم تو زمینه ارتباط برنامه و سخت افزار خاص این مورد بیشتر بکار میاد. درسته ؟
سلام مهندس :) :D
دقیقا همین طوره.در واقع با این کار نشون دادن Raspberry Pi کاربردهای وسیعی داره و داره (در آینده) به مینی کامپیوتر جیبی (از نظر خودم) تبدیل میشه. ;)
سلام مهندس ;D
راستی این سخت افزار Raspberry Pi چیه؟ منظور سخت افزار خاص رو نمی فهمم! یعنی CPU خاص خودشو داره؟ بر اساس چه معماری کار میکنه؟برای برنامه نویسی محدودیت هایی نداره؟
ممنون ;)
-
سلام
بابا مهندس :)
سلام مهندس ;D
راستی این سخت افزار Raspberry Pi چیه؟ منظور سخت افزار خاص رو نمی فهمم! یعنی CPU خاص خودشو داره؟ بر اساس چه معماری کار میکنه؟برای برنامه نویسی محدودیت هایی نداره؟
ممنون ;)
برای یادآوری بد نیست بگوییم که Raspberry Pi که به اندازه یک فلش مموری است، دارای یک پردازنده 700 مگاهرتزی ARM به همراه ۲۵۶ مگابایت رم بوده و از روی یک کارت SD که نسخه ای از لینوکس فدورا را روی خود دارد، بوت می شود
اینجا اطلاعات بیشتری داده شده:
http://narenji.ir/4126 (http://narenji.ir/4126)
و
http://narenji.ir/category/%D8%A8%D8%B1%DA%86%D8%B3%D8%A8-%D9%87%D8%A7/raspberry-pi (http://narenji.ir/category/%D8%A8%D8%B1%DA%86%D8%B3%D8%A8-%D9%87%D8%A7/raspberry-pi)
;)
برای برنامه نویسی هم این طور که خودشون ادعا کردن با سیستم عامل Raspbian به راحتی میشه برنامه نویسی کرد (نمونش همین لازاروس بود که دیدیم)
فقط مشکل اصلیش کمبود Ram هست که فک کنم جدیدا به 512 مگ ارتقاءش دادن.
در ضمن علاوه بر Raspbian میشه FREEBSD و NETBSD رو هم روش سوار کرد.
اینم برا شما مهندس: ;)
(http://wiki.freepascal.org/images/thumb/8/87/Lazarus_on_Raspberry_Pi.jpg/450px-Lazarus_on_Raspberry_Pi.jpg)
Lazarus on Raspberry Pi
همچین آینده دار به نظر میرسه.
-
سلام :)
یک برنامه مفیدی یافتم که برای طراحی و ترسیم الگوریتم ها و نقشه شبکه و ترسیم UML و خیلی چیزای دیگه به کار میاد و واقعا تو خیلی موارد پیچیده و درک الگوریتم برنامه هام و پیدا کردن مسیر مناسب خیلی بهم کمک کرد.
Dia
http://dia-installer.de (http://dia-installer.de)
اگه برنامه نویسی می کنید و قصد دارید کارتون روی اصول باشه و مستندات خوبی داشته باشه این برنامه خیلی مفید خواهد بود. (البته اگه نخواهید سراغ برنامه های ویندوزی مثل Visio برید ;D )
-
سلام
جالب بود،برای لینوکس هم بود. http://dia-installer.de/download/linux.html (http://dia-installer.de/download/linux.html)
-
نسخه جدید لازاروس منتشر شد . :)
Lazarus 1.0.6
دانلود : http://sourceforge.net/projects/lazarus (http://sourceforge.net/projects/lazarus)
تغییرات : http://wiki.lazarus.freepascal.org/Lazarus_1.0_fixes_branch#Fixes_for_1.0.6_.28Merged.29 (http://wiki.lazarus.freepascal.org/Lazarus_1.0_fixes_branch#Fixes_for_1.0.6_.28Merged.29)
-
بسیار عالی مهندس ;)
خبر خوبی بود ،همیشه خوش خبر باشی :D :) ;)
-
سلام
۸ صفحه پست های جالب شما دوستان خوب را خوندم و یه جورایی قوت قلب بود !
من بیش از ۱۰ ساله که با دلفی کار کردم و خیلی برنامه تجاری باهاش نوشتم ، الان زورکی یک هفته میشه که توی ویندوز لاگین نکردم و دارم از Ubuntu استفاده میکنم ! چند ماهی هم جسته و گریخته سعی کردم با محیطش و کلا لینوکس آشنا بشم و شاید الان ۶ ماهی هست در کناز ویندوز ۷ نصبه ! راستش تصمیم گرفتم استفاده از نرم افزار های crack را به کلی کناز بگذارم و این کار برای من که این همه مدت از dream weaver تا delphi و از photoshop و عیره استفاده کردم خیلی سخته و نمیشه به این راحتی کلا جابجا شد اما مطمئن هستم سال دیگه همین موقع به شدت پیشرفت کرده باشم !
حالا از این ها که بگذرم من عاشق زبان پاسکال هستم و هیچ زبانی برای من شیرینی اون را نداره ! حتما Lazarus را نصب میکنم و اگه بتونم توی این تاپیک یا یک تاپیک اختصاصی به دوستان کمک میکنم. اما به نظر من الان بزرگترین مشکل اینه که استفاده کنندگان از لینوکس در بین کاربران عمومی کامپیوتر یه چیزی توی مایه های شوخی هستش و وقتی اطرافیان خودم به من برای تصمیم استفاده از لینوکس میخندند دیگه وای به حال کسانی که با همون windows آبکی هم نمیتونستند کار کنند !
امیدوازم روزی بیاد که این پست را ویرایش کنم و بگم امروز لینوکس توی ایران سروری میکنه ! البته آروزی بزرگی نیست چون من تا این لحظه برای هر کاری تونستم جایگزین پیدا کنم.
-
سلام
سلام دوست من خیلی خوش اومدی ;)
الان زورکی یک هفته میشه که توی ویندوز لاگین نکردم و دارم از Ubuntu استفاده میکنم ! چند ماهی هم جسته و گریخته سعی کردم با محیطش و کلا لینوکس آشنا بشم و شاید الان ۶ ماهی هست در کناز ویندوز ۷ نصبه ! راستش تصمیم گرفتم استفاده از نرم افزار های crack را به کلی کناز بگذارم و این کار برای من که این همه مدت از dream weaver تا delphi و از photoshop و عیره استفاده کردم خیلی سخته و نمیشه به این راحتی کلا جابجا شد اما مطمئن هستم سال دیگه همین موقع به شدت پیشرفت کرده باشم !
خیلی خوبه که به گنو/لینوکس مهاجرت کردید و ورودتون رو به دنیای متن باز دوباره خوش آمد میگم. خیلی عجله نکنید برای مهاجرت به گنو/لینوکس چون ممکنه یکم براتون سخت باشه و دوباره برگردید به سیستم قبلیتون. خوشبختانه گنو/لینوکس همه نیازها رو میتونه جوابگو باشه فقط کمی زمان میبره تا خوب مسلط بشید.
حالا از این ها که بگذرم من عاشق زبان پاسکال هستم و هیچ زبانی برای من شیرینی اون را نداره ! حتما Lazarus را نصب میکنم و اگه بتونم توی این تاپیک یا یک تاپیک اختصاصی به دوستان کمک میکنم. اما به نظر من الان بزرگترین مشکل اینه که استفاده کنندگان از لینوکس در بین کاربران عمومی کامپیوتر یه چیزی توی مایه های شوخی هستش و وقتی اطرافیان خودم به من برای تصمیم استفاده از لینوکس میخندند دیگه وای به حال کسانی که با همون windows آبکی هم نمیتونستند کار کنند !
منم عاشق زبان پاسکالم :D
من اینطور فکر نمی کنم.کاربران عمومی هم زیادن که وقتی گنو/لینوکس و امکانات و سرعتشو میبینن خیلی علاقه مند میشن که به این سمت بیان. اتفاقا اونهایی که هنوز با ویندوز خوب نمیتونن کار کنن و معتاد اون نشدن خیلی راحت تر میتونن گنو/لینوکس رو قبول کنن
امیدوازم روزی بیاد که این پست را ویرایش کنم و بگم امروز لینوکس توی ایران سروری میکنه ! البته آروزی بزرگی نیست چون من تا این لحظه برای هر کاری تونستم جایگزین پیدا کنم.
منم امیدوارم و زیاد اینرو دور نمیبینم ;)
یا حق
-
سلام. امیدوارم من رو یادتون باشه. نمیدونم چرا این اواخر انقدر تنبل شدم. توی چند صفحه قبل گفته بودم که تمایل دارم اینجا فعالیت کنم ولی نمیدونم چرا نشد. من هم مثل خیلی از دوستان روی ویندوز داشتم با دلفی کار میکردم و از دنیای گنو/لینوکس غافل بودم تا اینکه یه روز متوجه شدم که برنامه هایی که من مینویسم، اگه رایگان باشن، حتما لازمه توی بقیه سیستم عامل ها اجرا بشن! همینطور که سرچ میکردم چطور دلفی رو روی لینوکس نصب کنم :)) به لازاروس برخوردم و الان مدت زیادیه که دلفی رو کنار گذاشتم. ولی هنوز واسم سواله، وقتی که نرم افزارهای رایگان به این خوبی کار میکنن چرا بیشتر مردم با ماکروسافت ویژوال استدیو کار میکنن؟ وقتی که اوبونتو تمام نیازهای یک کاربر رو برطرف میکنه چرا بیشتر مردم هنوز از ویندوز استفاده میکنن؟ (البته با عرض پوزش خودم هم الان با ویندوز بوت شدم :D)
دوست دارم اینجا دوستان بیشتری فعالیت بکنن و سوالات بیشتری بپرسن. منم سعی میکنم مرتب به این تاپیک سر بزنم و توی امر پاسخگویی همکاری بکنم. راستی اینجا کسی از دوستان پروژه متن بازی نداره؟ دوست دارم پروژه های نوشته شده با لازاروس توسط دیگران رو ببینم!
راستی برادر شهریاری، یه سوال متفرقه و بی ربط داشتم. توی امضاتون عکسی از اسپید تست محل کارتون رو گذاشتید که واقعا هر کسی رو متحیر میکنه. شما مگه کجا کار میکنید؟ ارائه همچین سرعتی فکر میکنم با ADSL غیر ممکن باشه، در محل کار شما اینترنت نکنه با فیبر نوری ارائه میشه؟ :D واقعاً تعجب کردم.
-
سلام
علیک سلام :) بله شما رو خاطرم هست
یه روز متوجه شدم که برنامه هایی که من مینویسم، اگه رایگان باشن، حتما لازمه توی بقیه سیستم عامل ها اجرا بشن!
این یک مزیت هستش ولی حتما لازم نیست همه برنامه هایی که مینویسید تو سکوهای دیگه هم قابل اجرا باشن. شما با این امکان به کاربرانتون حق انتخاب میدید درحالی که بعضی مواقع به خاطر ویژگی هایی که یک سیستم عامل داره و بقیه ندارند نمیشه برنامه رو روی همه اونها اجرا کرد. با این حال ۹۹ درصد برنامه هایی که ما مینویسیم مشکلی تو اجرا داخل سکوهای دیگه ندارن
وقتی که نرم افزارهای رایگان به این خوبی کار میکنن چرا بیشتر مردم با ماکروسافت ویژوال استدیو کار میکنن؟ وقتی که اوبونتو تمام نیازهای یک کاربر رو برطرف میکنه چرا بیشتر مردم هنوز از ویندوز استفاده میکنن؟ (البته با عرض پوزش خودم هم الان با ویندوز بوت شدم :D)
جواب این سوال رو خودتون باید بهتر بدونید ;D وقتی الان دارید از ویندوز استفاده میکنید.
دلایل مختلفی داره که من فکر می کنم اولین دلیلش اعتیاد به ویندوز و محیط اون و انجام کارها با اون و نرم افزارهای اونه
راستی برادر شهریاری، یه سوال متفرقه و بی ربط داشتم. توی امضاتون عکسی از اسپید تست محل کارتون رو گذاشتید که واقعا هر کسی رو متحیر میکنه. شما مگه کجا کار میکنید؟ ارائه همچین سرعتی فکر میکنم با ADSL غیر ممکن باشه، در محل کار شما اینترنت نکنه با فیبر نوری ارائه میشه؟ :D واقعاً تعجب کردم.
بله برادر ما اینجا فیبر نوری داریم ;D
البته ظرفیت اسمی فیبر و پهنای باندی که مخابرات به دانشگاه داده ۱۵۰ Mb/s است که وقتی بین کاربران مختلف تقسیم میشه این تهش میمونه. ولی همیشه اینطور نمیمونه و در ساعات مختلف سرعت تغییر میکنه و البته بعضی مواقع سرعت ورودی از مخابرات کم میشه. با این حال همیشه کاربران از سرعت کم اینترنت شاکی هستن و اونم به خاطر اینه که زمانی که تعداد کاربرا زیاد میشن این سرعت بین همه اونها تقسیم میشه و میتونید حساب کنید به هر نفر چقدر میرسه 8)
سرعت رو به روز رسانی کردم ;D
-
امروز متوجه شدم FPC ویرایش ۲.۶.۲ ریلیز شده . :)
ولی هنوز به همراه لازاروس منتشر نشده و به زودی درکنار لازاروس نسخه ۲.۶.۲ به جای ۲.۶.۰ خواهد نشست.
تغییرات یجاد شده در این نسخه را اینجا ببینید : http://wiki.freepascal.org/User_Changes_2.6.2 (http://wiki.freepascal.org/User_Changes_2.6.2)
-
من اینطور فکر نمی کنم.کاربران عمومی هم زیادن که وقتی گنو/لینوکس و امکانات و سرعتشو میبینن خیلی علاقه مند میشن که به این سمت بیان. اتفاقا اونهایی که هنوز با ویندوز خوب نمیتونن کار کنن و معتاد اون نشدن خیلی راحت تر میتونن گنو/لینوکس رو قبول کنن
نمیدونم توی بازار کار چقدر فعالیت داشتین اما من ۹۹٪ اطمینان دارم هیچ یک از مشتری ها را نمیتونم قانع کنم که از linux استفاده کنند ،به برنامه های چند سکویی وقتی که واقعا نخواین از سیستم عامل ویندوز استفاده کنید هیچ اعتقادی ندارم چون develop کردن یک برنامه روی سیستم عامل لینوکس بدون تست روی ویندوز کار بی حسابیه و احتمال اینکه روی ویندوز باگ های خاص خودش را داشته باشه زیاده ! پس مجبورید برای develop باز هم بیاین توی ویندوز یعنی ویندوز اورجینال بخرین خوب شما هم که فقط نیستین دو یا سه تا همکار دیگه دارین پس باید چند میلیون فقط برای ویندوز بگذاریم کنار ! نه اصلا نمیپسندم ، اگه اشتباه میکنم لطفا بهم بگین.
پس نتیجه اینکه روی لینوکس develop کنیم و مشتری هم روی linux استفاده کنه ! این در حال حاضر شدنی نیست !چون کم نیستن افرادی که اینترنت را IE ، نوشتن مستندات اداری و محاسبات و اسلاید را MS Office ، کار بر روی عکس از ویرایش تا ایجاد یک اثر هنری را photoshop میدونند و نسخه های معادل توی لینوکس خوب هستند اما نه به راحتی نرم افزار هایی که گفتم حداقل برای کاربر۶۰ درصدی اونم نه ۱۰ یا ۲۰.
-
وقتی که نرم افزارهای رایگان به این خوبی کار میکنن چرا بیشتر مردم با ماکروسافت ویژوال استدیو کار میکنن؟ وقتی که اوبونتو تمام نیازهای یک کاربر رو برطرف میکنه چرا بیشتر مردم هنوز از ویندوز استفاده میکنن؟
جواب این سوال را وقتی میتونی بدی که مثل من کلا ویندوز را بخوای بگذاری کنار و ازش استفاده نکنی (اصلا حذفش کنی از روی سیستم)
حالا من برای کاربر عادی بهش انتقاد دارم ! چون کاربر عادی واقعا میخواد چیکار کنه ؟ بره توی اینترنت (فایرفاکس) ،آهنگ گوش کنه ؟(کلی نرم افزار از جمله Exaile) ،میخواد مستنداتی را بنویسه یا جدول سازی و محاسبات کنه (Libre Office یا Oepn Woffice) ، میخواد فیلم ببینه؟ ( VLC و SM Player) ، و نیاز های مترادف دیگه که براشون نرم افزار های خوب هست !
اما وقتی کاربر حرفه ای باشی و ازش نون بخوری اونوقت دلفی با lazarus قابل قیاس نیست ! برای HTML و کلا وب هیچ نرم افزار مثل Dreamweaver نیست (کاربر حرفه ای نرم افزار های دیگه هم پیدا میکنه از میاد با gedit مینویسه اما خودش هم میدونه سرعت کار تو اون یه چیز دیگه بود) ! برای کار با عکس واقعا photoshop یه چیز دیگست با اینکه gimp هم به نظرم قدرتمنده اما اون تو دست و دل برو تره ! تازه اصل قضیه این نیست ! چطور میخوای برای جماعت کرک و قفل شکسته استفاده کن استفاده از لینوکس را پیشنهاد بدی ! این خودش فاجعه هستش. دلم پره نمیخوام بحث خوب این تاپیک دوست خوبم آقای شهریاری را منحرف کنم ! اما چشم ها را باید شست ...
-
نمیدونم توی بازار کار چقدر فعالیت داشتین اما من ۹۹٪ اطمینان دارم هیچ یک از مشتری ها را نمیتونم قانع کنم که از linux استفاده کنند ،به برنامه های چند سکویی وقتی که واقعا نخواین از سیستم عامل ویندوز استفاده کنید هیچ اعتقادی ندارم چون develop کردن یک برنامه روی سیستم عامل لینوکس بدون تست روی ویندوز کار بی حسابیه و احتمال اینکه روی ویندوز باگ های خاص خودش را داشته باشه زیاده ! پس مجبورید برای develop باز هم بیاین توی ویندوز یعنی ویندوز اورجینال بخرین خوب شما هم که فقط نیستین دو یا سه تا همکار دیگه دارین پس باید چند میلیون فقط برای ویندوز بگذاریم کنار ! نه اصلا نمیپسندم ، اگه اشتباه میکنم لطفا بهم بگین.
پس نتیجه اینکه روی لینوکس develop کنیم و مشتری هم روی linux استفاده کنه ! این در حال حاضر شدنی نیست !چون کم نیستن افرادی که اینترنت را IE ، نوشتن مستندات اداری و محاسبات و اسلاید را MS Office ، کار بر روی عکس از ویرایش تا ایجاد یک اثر هنری را photoshop میدونند و نسخه های معادل توی لینوکس خوب هستند اما نه به راحتی نرم افزار هایی که گفتم حداقل برای کاربر۶۰ درصدی اونم نه ۱۰ یا ۲۰.
علیک سلام ;)
من هیچوقت قصد ندارم که مشتری هام رو قانع کنم به خاطر برنامه من از گنو/لینوکس استفاده کنند و چند سکویی بودن برنامه ها شامل ویندوز هم میشود. من بدون نیاز به تغییرات زیاد برنامه هام رو هم برای گنو/لینوکس و هم ویندوز شامل معماری x86 یا x64 و ... تولید می کنم و در عین حال وقتی از مزیت های گنو/لینوکس و اجرای برنامه تو این محیط براش توضیح می دم رغبت زیادی تو استفاده از اون در مشتری ایجاد می کنم که شاید زیاد موثر نباشه و روی همه جواب نده ولی اگه حتی 1 درصد رو هم بتونم به دنیای متن باز وارد کنم خودش خیلی خوبه.
پس نتیجه اینکه من تو لینوکس برای همه سیستم عامل ها توسعه میدم و مشتری خودش انتخواب میکنه از چه سیستمی استفاده کنه. در مورد باگ هم زیاد نگران نیستم. برای انتشار برنامه روی سکوهای دیگه حداقل به یک سیستم با اون سیستم عامل نیاز دارم و میشه با همون یکی برنامه رو تست کرد و فکر نمی کنم مشکل خاصی پیش بیاد.
به طور مثال در حال حاضر دارم برای مکانیزه شدن کارهای دفتری یک شرکت برنامه ای با لازاروس می نویسم که تو خونه روی ویندوز توسعه میدم و تو محل کار با کوبونتو. اینجوری سیستم در عین حال برای هر دو سکو آماده میشه.
جواب این سوال را وقتی میتونی بدی که مثل من کلا ویندوز را بخوای بگذاری کنار و ازش استفاده نکنی (اصلا حذفش کنی از روی سیستم)
حالا من برای کاربر عادی بهش انتقاد دارم ! چون کاربر عادی واقعا میخواد چیکار کنه ؟ بره توی اینترنت (فایرفاکس) ،آهنگ گوش کنه ؟(کلی نرم افزار از جمله Exaile) ،میخواد مستنداتی را بنویسه یا جدول سازی و محاسبات کنه (Libre Office یا Oepn Woffice) ، میخواد فیلم ببینه؟ ( VLC و SM Player) ، و نیاز های مترادف دیگه که براشون نرم افزار های خوب هست !
اما وقتی کاربر حرفه ای باشی و ازش نون بخوری اونوقت دلفی با lazarus قابل قیاس نیست ! برای HTML و کلا وب هیچ نرم افزار مثل Dreamweaver نیست (کاربر حرفه ای نرم افزار های دیگه هم پیدا میکنه از میاد با gedit مینویسه اما خودش هم میدونه سرعت کار تو اون یه چیز دیگه بود) ! برای کار با عکس واقعا photoshop یه چیز دیگست با اینکه gimp هم به نظرم قدرتمنده اما اون تو دست و دل برو تره ! تازه اصل قضیه این نیست ! چطور میخوای برای جماعت کرک و قفل شکسته استفاده کن استفاده از لینوکس را پیشنهاد بدی ! این خودش فاجعه هستش. دلم پره نمیخوام بحث خوب این تاپیک دوست خوبم آقای شهریاری را منحرف کنم ! اما چشم ها را باید شست ...
چه دل پردردی داری شما وحید رضا ;D
در مورد کاربر عادی باهات موافقم ولی در مورد حرفه ای ها نه ! ;)
شاید من هنوز تو برنامه نویسی حرفه ای نشده باشم ولی حرفه ای هایی رو میشناسم که آرزوی داشتن مهارت اونها رو دارم و اون حرفه ای ها نه از دلفی استفاده می کنند و نه از Dreamweaver و نه Photoshop .
نه اینکه نخوان یا نتونن ، نه .......
بگذریم :D
به ماچه کی می خواد از چی استفاده کنه یا نکنه :-X من به عنوان برنامه نویس برنامه ام رو برای همه سیستم عامل ها تولید می کنم تا کاربرم مجبور نباشه از یک سیستم عامل تحمیلی استفاده کنه.
یا حق ;)
-
البته یه برنامه نویس حرفه ای، هیچ وقت نمیاد با دلفی کار بکنه! اکثر برنامه های حرفه ای با کامپایلرهای cross platform مثل gcc کامپایل شدن. البته یه نکته ای رو بگم در مورد صحبتای جناب وحید رضا، ویندوز مایکروسافت که الان بنظر من کاملاً رایگان هست! شما گفتید برای کامپایل برنامه روی ویندوز باید بریم ویندوز رو بخریم! نه، مایکروسافت خودش ویندوز رو گذاشته رو سایتش برای دانلود، و این ویندوزی که گذاشته رو سایت تا 90 روز بدون منت کار میکنه! شما کافیه بعد از 90 روز، ویندوز رو از اول نصب کنید. کاملا هم قانونیه. اصلا هم احتیاجی به کرک نداره. تعجب میکنم از دوستانی که ویندوز رو میخرن. اصلا خریدنش لازم نیست، نصبش کار نیم ساعته. یعنی هر سه ماه یک بار شما کافیه نیم ساعت وقت بذاری و ویندوز رو دوباره نصب کنی. فکر نمیکنم این کار منع قانونی داشته باشه!!
-
سلام
یک شی مفید برای لازاروس پیدا کردم ;D
VirtualTreeview
(http://www.soft-gems.net/images/stories/screen-shots/anivt.gif)
این شی ساختر های درختی رو میتونه ترسیم کنه و امکانات خیلی خوبی داره. البته کار باهاش یکم سخته. من خودم در نگاه اول نتونستم یک ساختار درختی نمونه درست کنم. با این حال مثال و دمو زیاد داره و اگه لازم باشه و تو یه برنامه نیاز داشته باشم حتما میرم سراغش ;)
لینک ویکی معرفی تو لازاروس : http://wiki.lazarus.freepascal.org/VirtualTreeview (http://wiki.lazarus.freepascal.org/VirtualTreeview)
این چنتا مثال کوچیکه تو ویکی لازاروس : http://wiki.lazarus.freepascal.org/VirtualTreeview_Example_for_Lazarus (http://wiki.lazarus.freepascal.org/VirtualTreeview_Example_for_Lazarus)
این لینک سایت شرکت سازنده شی : http://www.soft-gems.net/index.php/controls/virtual-treeview (http://www.soft-gems.net/index.php/controls/virtual-treeview)
یا حق :)
-
سلام مهندس
پست جالبی بود :)
دستت درد نکنه
-
سلام :)
میخوام چنتا قابلیت جدید که به FPC (کامپایلر رایگان پاسکال) اضافه شدن رو معرفی کنم. شاید برخی از این قابلیت ها تو زبونهای دیگه خیلی وقته وجود داشته باشن ولی امکان استفاده از اونها در پاسکال تا چند وقت پیش وجود نداشت.
1- امکان اسفاده از حروف یا مجموعه ها در حلقه های تکرار
procedure ForInLoop(aStr: string);
var
ch: Char;
begin
for ch in aStr do
WriteLn(ch);
end;
procedure ForInSetLoop;
var
s: set of 1 .. 100;
i: Integer;
begin
s:= [1, 3, 7];
for i in s do
Writeln(i);
end;
2- عملگر =+
var
aName: string;
begin
aName:= 'Free';
aName += ' Pascal';
Writeln(aName); // Free Pascal
end;
x:= 10;
x+= 15;
Writeln(x); // 25
3- تعریف متغیر در property ها
var
x: Integer;
procedure SetX(aX: Integer);
begin
x:= ax;
end;
function GetX: Integer;
begin
Result:= x;
end;
property MyX: Integer read GetX write SetX;
// Main program
begin
MyX:= 170;
Writeln(MyX);
end.
4- تعریف رکورد از نوع بیت و نمایش آن به صورت بایت
type
tbit = 0..1;
tBitsByte = bitpacked record
bit0 : tbit;
bit1 : tbit;
bit2 : tbit;
bit3 : tbit;
bit4 : tbit;
bit5 : tbit;
bit6 : tbit;
bit7 : tbit;
end;
var
aByte: tBitsByte;
begin
aByte.bit0:= 1;
aByte.bit1:= 0;
aByte.bit2:= 1;
Writeln(Byte(aByte)); // 5
5- استفاده از کلمه sealed در تعریف کلاس ها
TMyClass = class sealed
private
fValue: Integer;
public
constructor Create(aValue: Integer);
destructor destroy; override;
function GetValue: Integer;
end;
راستش من در این مورد چیزی نمیدونم و منبع هم گفته بود این قضیه برای خودش کامل باز نشده ! ???
6- توانایی تعریف متد ها و متغیر ها که می توانند به وسیله نام کلاس استفاده شوند قبل از شی نمونه شبیه متد های جاوای static
TMyClass = class sealed
private
class var fValue: Integer;
public
constructor Create(aValue: Integer);
class function GetValue: Integer;
class procedure SetValue(aValue: Integer);
end;
constructor TMyClass.Create(aValue: Integer);
begin
inherited Create;
fValue:= aValue;
end;
class function TMyClass.GetValue: Integer;
begin
Result:= fValue;
end;
class procedure TMyClass.SetValue(aValue: Integer);
begin
fValue:= aValue;
end;
// Main code
begin
TMyClass.SetValue(900);
Writeln(TMyClass.GetValue);
end.
7- استفاده از رشته ها در دستور Case
case aName of
'Free Pascal': Writeln('Lazarus IDE');
'C++': Writeln('CodeBlocks IDE');
end;
منبع : freepascalanswers.wordpress.com
-
سلام. دیدم دوست عزیزمون امیر شهریاری، در این مورد چیزی نگفت گفتم خودم پستش رو بزنم 8)
Lazarus 1.0.8 همراه با کامپایلر fpc 2.6.2 منتشر شده. لیست تغییرات کامل رو میتونید اینجا ببینید:
http://wiki.lazarus.freepascal.org/Lazarus_1.0_fixes_branch#Fixes_for_1.0.8
راستی دوستان یه سوال داشتم. بنظر شما، آینده لازاروس چه خواهد بود؟ بنظرتون محیطش به محیط دلفی خواهد رسید؟ تعداد کامپونتاش اونقدر زیاد خواهد شد؟ من که خیلی به لازاروس علاقه مندم ولی متأسفانه هرجا که ازش اسم میبرم ملت میپرسن لازاروس دیگه چیه؟؟ خوردنیه؟ \\:D/ انگار هنوز هیچکس لازاروس رو نمیشناسه... اگه یکم بیشتر تلاش بکنه بنظر من دلفی رو پشت سر میذاره. نظر شما چیه؟؟ ما برای این اتفاق باید چه مدت صبر کنیم؟؟
-
سلام
ممنون از اطلاع رسانیت ojzim عزیز
راستش من مدتی هست اصلا فرصت کار با سیستم رو پیدا نکردم و امروز بعد از مدتها سیستمم رو روشن کردم ;D
خوشحال شدم برای خبرت و در اولین فرصت ویرایش جدید رو دانلود می کنم.
در مورد سوالت هم نظر من اینه که یک IDE را کاربرانش موفق می کنند. با این روند رو به رشد لازاروس و پشتیبانی خوبی که از اون میشه و همینطور کاربران و استفاده کننده های اون باعث میشه کم کم جای خودشو پیدا کنه. نگران دلفی و IDE های دیگه نباش. لازاروس هم کاربرای خودشو داره و چون رایگان و متن باز هست نابود شدنی نیست و توسعه اون متوقف نمیشه.
یا حق ;)
-
سلام
لازاروس تنها چیزی که به نظرم نیاز داره کم کردن حجم فایل های تولیدیش هست با این حجم بیش اندازه یکم نوشتن برنامه های سیستمی مقرون به صرفه نیست که اگه برطرف بشه عالی میشه 8)
بطور حتم رشد خیلی خوبی خواهد داشت مهمترین (بهترین ) مزیتش نسبت به دلفی اینه که unstable parent نیست یعنی یک کمپانی ثابت ازش حمایت میکنه بر خلاف دلفی که هر چند سالی دسته یه کمپانی بوده و به جایگاه اصلیش نرسیده.
هنوز زوده که بخواد دلفی رو کناز بذاره،دلفی 7 یه شاهکار در دنیای برنامه نویسی بوده و هست (هنوز خیلی ها با دلفی 6 کد مینویسن ----> قابل توجه افرادی که 2 روزه امدن و دنبال بهترین زبان برنامه نویسی میگردن ](*,) ) نسخه های جدید دلفی هم قدرت فوق العاده ای دارن که راه رو برای لازاروس سخت تر کرده.
ولی بخاطر چند سکویی بودنش واقعا فوق العاده کارامد است باید منتظر نسخه های جدید تر باشیم تا به حالت ایده الی برسیم
:)
-
سلام
لازاروس تنها چیزی که به نظرم نیاز داره کم کردن حجم فایل های تولیدیش هست با این حجم بیش اندازه یکم نوشتن برنامه های سیستمی مقرون به صرفه نیست که اگه برطرف بشه عالی میشه 8)
سلام علی جان
خیلی وقت بود تاپیک رو به روز نکرده بودم ;). در مورد حجم حتما اطلاعات اضافی کامپایل رو از برنامه حذف کن خیلی موثره. مثلا یک برنامه که تو ویندوز حدود ۳۵ مگ بود شد ۴.۵ مگ و تو لینوکس هم ۶ مگ. :)
از امروز سعی می کنم انجام یک پروژه تو لازاروس رو از اول و کامل توضیح بدم. میدونم برخی مسائل برای شما و خیلی از دوستان تکراریه ولی اینجوری به درد همه میخوره و کاربر مبتدی هم میتونه از مطالب استفاده کنه.
(البته اصول برنامه نویسی مثل حلقه های تکرار یا شرط ها و یا انواع متغیر ها رو نمیخام بگم ;D اینا حداقل هایی هستن که باید برنامه نویس مبتدی بلد باشه)
اگه جایی کارم اشتباه بود و یا راه حل ساده تری بلد بودی حتما بگید تا آموزش اشتباه نباشه.
ممنون :D
-
سلام
این بخش اول شروع برنامه نویسی یک پروژه با لازاروس هستش.
من همین اول بگم که ادعایی تو برنامه نویسی ندارم و ممکنه بعضی جاها کارم بهینه نباشه پس تصور شما این نباشه که چیزی که من میگم تنها راه ممکنه برای حل یک مسئله هستش. :-k
-------------------------------------------------------
به نظر من انواع برنامه های کامپیوتری برای نوشتن و توسعه به ۴ بخش تقسیم میشن :
۱- برنامه های سیستمی و یا توسعه خود سیستم عامل : این نوع برنامه ها نیازمند این هستن که برنامه نویس تسلط کامل نسبت به سیستم عاملی که برای اون برنامه مینویسه داشته باشه و در عین حال دستورات مخصوص کامپایلری رو که استفاده میکنه برای اون سیستم عامل خاص بلد باشه.نکته دیگه در مورد این برنامه ها اینه که عموما این برنامه ها مستقل از سکو تولید نمیشن و مختص یک سیستم عامل هستن که این به خاطر نوع معماری مختلف سیستم عامل ها هست. تو کشور ما زیاد رونق نداره و شرکت های اندکی هستن که تو این زمینه فعالیت می کنند.
۲- برنامه های کاربردی که برای انواع کاربر مبتدی و حرفه ای طراحی میشن: این برنامه ها استفاده کننده خیلی زیادی دارند. مثلا پخش کننده موزیک و ویدیو یا برنامه ویرایش تصاویر و یا ..... این برنامه ها به صورت ساده و با امکانات کم زیاد استفاده نمی شن مخصوصا تو کشور ما که مثلا فتوشاپ تقریبا رایگان به دست میاد. نکته بعدی اینکه در نسخه های حرفه ای الگوریتم های پیچیده و سختی استفاده میشه که شاید تو تمام دنیا فقط چند نفر قادر به طراحی همچین الگوریتم هایی باشن. مثلا الگوریتم های مورد استفاده تو برنامه فتوشاپ برای ویرایش تصاویر و یا برنامه اتوکد یا 3dMax و .... این قبیل برنامه ها که استفاده زیادی دارند کار ۲ نفر یا چند نفر نیست و یک شرکت بزرگ با کلی دکتر و مهندس و پروفسور برای ایجاد و توسعه اونها لازمه. خوشبختانه تو کشور ما تو این زمینه وقت هدر نمیدن و نیازی به هزینه کردن برای این کارها نیست چون همه این برنامه ها به صورت رایگان یافت می شود ;D البته همه این برنامه ها نسخه های متن باز و رایگان هم دارند که برنامه نویس میتونه تو توسعه اونها کمک کنه به شرطی که به زبان طراحی شده اون برنامه آشنا باشه و مهارت کافی برای توسعه داشته باشه.
۳- برنامه هایی که مخصوص کاربر طراحی میشن و عموما برای کار با پایگاه داده و ذخیره و بازیابی اطلاعات مورد استفاده قرار می گیرند. این نوع برنامه ها تو کشور ما رونق خوبی دارند و اغلب شرکت های برنامه نویسی تو این زمینه فعالیت می کنند. هرچند حجم مشتری این نوع برنامه ها قابل قیاس با ۲ نوع قبل نیست ولی برای شرکت ها کار تو این زمینه به صرفه تر و اقتصادی می باشد.
مزیت دیگه این برنامه ها اینکه اغلب اونها مخصوص یک مشتری خاص طراحی می شن که با این کار کپی کردن و استفاده برای دیگری زیاد پیش نمیاد. بعضی هم با استفاده از قفل های سخت افزاری از طریق LPT و جدیدا USB مانع کپی برنامه هاشون می شن.
این نوع برنامه ها معمولا شامل ۲ قسمت مهم میشن که یکی پایگاه داده جهت ذخیره و بازیابی اطلاعات است و دومی خود برنامه اجرایی که رابط بین پایگاه داده و کاربر هستش .
۴- برنامه هایی که تو صنعت استفاده میشن. اغلب کارخونه ها از PLC برای کنترل خط تولید استفاده می کنند. PLC سیستم هایی هستند که مخصوص همین موارد طراحی شدن و با سنسور های مختلف ارتباط دارند و خط تولید کارخونه رو کنترل می کنند. مشکل اینجاست که این تجهیزات برای پشتیبانی و قطعه یدکی زیاد به صرفه نیستن. پس یک PC هرچند برای بیشتر از همچین نیازی طراحی شده ولی به صرفه تر و راه اندازی راحت تری داره. فقط مشکل اینجاست باید برنامه نویسی رو پیدا کنند که بتونه ارتباط بین PC و سنسور های خط تولید و دستورات اونها رو با یک برنامه بر قرار کنه. این زمینه یکم مشکله ولی برنامه نویس هایی هستند که برای کنترل خط تولید با PC برنامه نویسی می کنند. نکته دیگه اینه که این قضیه تقریبا شبیه به برنامه نویسی برای روبات ها هم هست. چون ربات ها هم با استفاده از یک سری سنسور و انجام پردازش باید کاری رو انجام بدن. تفاوت در این هست که تو خط تولید پردازش سنگین کمتر وجود داره ولی تو یک ربات خوب اغلب پردازش ها سنگین و پیچیده هستن.
-------------------------------------------------------------
خیلی فکر کردم چه برنامه ای برای نمونه بنویسم تا با اون جلو بریم. آخر به این نتیجه رسیدم همون برنامه ای که الان روش کار می کنم تا بعد از تکمیل به صورت متن باز منتشرش کنم رو بزارم تا هم برنامه خودمو توسعه بدم و هم در حین کار آموزش هایی که لازمه اینجا بزارم.
--------------------------------------------------------------
من برنامه نویسی رو دارای ۲ قسمت مهم میدونم:
۱- اصول و دستورات پایه هر زبان برنامه نویسی (مثل انواع متغیر ها و نحوه تعریف اونها - حلقه های تکرار - شرط ها و ...) : این دستورات زیاد سخت نیستن و تقریبا تو زبان های مختلف شبیه هم هستن. اگه به زبان دیگه ای برنامه نویسی می کنید یاد گرفتن اونها خیلی راحته. این اصول تو همه زبان ها وجود دارن و تا زمانی که به اونها مسلط نشین برنامه نویسی براتون کار دشواری خواهد بود.
۲- تکنیک یا معماری یا شیوه برنامه نویسی : هر برنامه نویسی مثل یک بازیکن فوتبال میتونه دارای تکنیک باشه ;D . شما قواعد بازی فوتبال رو همون اصول اولیه در نظر بگیرید (مثلا تو فوتبال نباید از دستها استفاده کرد - تو لازاروس برای تعریف یک متغیر باید از کلمه var استفاده بشه) و حالا نحوه استفاده و شیوه ای که یک برنامه نویس این دستورات رو کنار هم میچینه تا یک پردازش رو انجام بدن همون تکنیک بازیکن فوتبال میشه.( هرچی برنامه نویس الگوریتمی بهینه در مصرف حافظه و سریع تر بنویسه خب حتما تکنیکی تره ;) )
--------------------------------------------------------------------------------------
من از قسمت اول میگذرم و بیشتر رو قسمت دوم متمرکز میشم. پس بهتره اصول اولیه و دستورات مهم زبان پاسکال رو بدونید. لازم نیست حتما همه دستورات رو حفظ باشید ولی حداقل یک بار ازشون استفاده کرده باشید تا به چشم و گوشتون آشنا باشن :) .
قبل از هر چیز مسئله و نیاز رو توضیح می دم تا مشخص بشه چه برنامه ای می خوام بنویسم.شاید این برنامه به درد شما نخوره ولی شما میتونید از روش هایی که تو این برنامه به کار می برم برای موارد مشابه برنامه های خودتون استفاده کنید.
یک کلینیک مشاوره رو تصور کنید که تعداد زیادی مشاور داره که هر چند وقت عوض میشن و مراجعینی داره که جهت مشاوره و رفع نیاز های روان شناسی و ... به این کلینیک مراجعه میکنند و تشکیل پرونده داده و یک یا چند جلسه با روان شناس جهت حل مشکل خود گفتگو می کنند.
این برنامه قصد داره امور مربوط به این کلینیک و نیاز های اون رو به صورت رایانه ای در بیاره تا هم نگهداری و امنیت اطلاعات راحت تر بشه و هم جستجو داخل اونها کار سختی نباشه و مزایای دیگه .....
بیشتر از این در مورد نوع نیاز های این مورد خاص توضیح نمی دم چون بیشتر هدفم تکنیک های مورد استفاده تو برنامه است نه نیاز سنجی یک کلینیک مشاوره ولی توضیحات تکمیلی رو به وقتش در مورد نیاز هایی که باید برنامه برای این مورد داشته باشه میگم.
خب فکر کنم برا این جلسه زیاد شد بقیش باشه برا جلسه دیگه ;)
یا حق
-
سلام
خب گام اول برای ایجاد یک برنامه نیاز سنجی و بررسی اطلاعاتی است که کاربر سیستم نیاز داره تا اونها رو ذخیره و بازیابی کنه. دلیل این کار برای ایجاد پایگاه داده مرتبط با برنامه هستش .
این کار روشهای مختلفی داره که توصیه می کنم از همه اونها در صورت امکان استفاده کنید.هرچیزی رو که تو مراحل مختلف بررسی می کنید روی کاغذ بنویسید و همه مستندات رو نگه دارید تا زمان طراحی پایگاه از اونها استفاده کنید.
----------------------
ساده ترین روش اینه که برنامه نویس خودشو جای کاربر قرار بده و ببینه چه نیازهایی رو حس می کنه. این روش ابتدایی ترین و ساده ترین راه ممکنه و نیازی نداره برنامه نویس حتی از خونه یا محل کارش بیاد بیرون ;D این روش راه مطمئن و کاملی نیست و چون معمولا برنامه نویس به همه نیازهایی که کاربر سیستم به اونها احتیاج پیدا میکنه آگاه نیست زیاد کارایی نداره ولی برای شروع خوبه.
----------------------
اولین روش صحیح بررسی مستنداتی هست که کاربر در حالت سنتی اونها رو تکمیل و نگهداری میکنه. مثلا تو برنامه مورد مثال من وقتی مراجع به کلینیک مراجعه می کنه باید فرم پذیرش رو پر کنه که شامل اطلاعاتی در مورد خود مراجع و ... هستش. این فرم قسمت مهمی از اطلاعاتی که باید تو پایگاه داده ذخیره بشن رو به برنامه نویس نشون میده و اغلب این فرمها جداول اصلی پایگاه داده خواهند بود.
همچنین برنامه نویس باید چرخه ها و فرایند هایی که تو اون بروکراسی (کاغذ بازی های اداری) انجام میشه رو به خوبی بررسی کنه و از اونها هم در پایگاه داده استفاده کنه چون همین فرایند ها باید به صورت جداول ارتباطی بین اطلاعات پایه استفاده بشن.(بعدا بیشتر در مورد این نوع جداول توضیح می دم)
-----------------------------------------
روش دوم مصاحبه و گفتگو با کاربران سیستم است. این گفتگو ها پیرامون برنامه و اطلاعاتی هست که کاربر نیاز داره اونها رو ذخیره و یا بازیابی کنه. بعضی مواقع کاربران سیستم به خاطر تجربه نکاتی رو میدونن که برنامه نویس ممکنه سالها برای فهمیدنشون زمان نیاز داشته باشه.
لازمه برنامه نویس خارج از اون محیطی که می خواد برنامه براشون بنویسه مقداری مطالعات هم در اون مورد داشته باشه. مثلا زمانی که می خوایین تو توسعه یک برنامه حسابداری فعالیت کنید حتما باید مقداری از حسابداری و اصول و قواعد اولیه اون سر در بیارید.(من خودم اوایل فارغ التحصیلیم ۲ ماه در توسعه یک برنامه حسابداری با یک شرکت همکاری می کردم فقط ۲ هفته طول کشید تا بتونم بستانکار و بدهکار رو از هم تشخیص بدم ;D )
من همین روشها الان به خاطرم میاد ولی فکر می کنم بیشتر باشه ولی خب اینها بیشتر کاربردی هستن.
وقتی همه اطلاعات رو جمع آوری کردید باید همه اطلاعات رو کنار هم بزارید و شروع به طراحی پایگاه داده برنامه خودتون بکنید. تو طراحی پایگاه داده خیلی دقت بکنید چون یک پایگاه داده خوب میتونه خیلی تو سرعت برنامه موثر باشه و نوشتن Query ها رو خیلی راحت میکنه و در عوض یک پایگاه داده بد سرعت برنامه رو به خاطر انتقال اطلاعات زیاد پایین میاره و ممکنه یک Query ساده چندین خط و طولانی بشه.
-------------------------------------------------------------
زمان طراحی پایگاه داده نکاتی رو باید مد نظر داشته باشید :
- همیشه سعی کنید از همون ابتدا پایگاه داده و جداولتون نرمال سازی شده باشند.
- تمام اطلاعاتی که در زمان نیاز سنجی جمع آوری کردید رو کنار هم بزارید و اونهایی که به هم مربوط میشن رو تو یک دسته قرار بدید. مثلا اطلاعات شخصی مراجعین به کلینیک تشکیل یک جدول رو میدن که فیلد های مختلف مثل نام-نام خانوادگی- شماره ملی و... رو شامل میشه. برای تشخیص جداول اطلاعات تکراری رو پیدا کنید و ببینید چه چیزی در مورد یک شئ در حال تکرار شدن است. بعد فیلد های اون رو مشخص کنید و با توجه به نیاز کاربر نوع و طول فیلد ها رو مشخص کنید. هرچند پایگاه داده های امروزی طول فیلدها رو متغیر در نظر می گیرند و به اندازه اطلاعات ذخیره شده در اونها طول فیلد تعیین می شود ولی بهتر است شما هم طول فیلد رو چیزی خارج از محدوده قرار ندهید.
- جداول از نظر من ۲ نوع خواهند بود. یکی جداولی که اطلاعات پایه ای رو شامل میشن. مثلا تو یک سیستم انتخاب واحد جدول دانشجویان و جدول درس ها جز جداول پایه پایگاه هستن و ممکنه به صورت مستقیم با هم مرتبط نباشند. دومین نوع جداول ارتباطی هستن که ارتباط بین یک یا چند جدول رو مشخص می کنند. مثلا در همون مثال انتخاب واحد جدول انتخاب واحد ارتباط بین دانشجویان و درسها رو مشخص می کنه.
شما هم باید اطلاعات و جداول خودتون رو به همین روش تقسیم بندی کنید.
- بعضی مواقع بعد از طراحی یک جدول مقداری داده در اون به طور مثال و از خودتون وارد کنید و بعد اطلاعات رو بررسی کنید. ممکنه یک فیلد که از نوع کارکتری در نظر گرفته اید (مثل نام شهر) در برخی رکورد ها در حال تکرار باشه. با مشاهده این موضوع بفهمید که جدولتون نرمال نیست و اطلاعات اضافی و سربار داره. برای حل این موضوع اطلاعات تکراری رو در یک جدول دیگه طراحی کنید و ارتباط اون با جدول اصلی رو از طریق یک فیلد مشخص کنید.(مثلا در مورد همون نام شهر میتونید جدولی با عنوان شهر ها در نظر بگیرید و برای هر کدوم عددی قرار بدید و در جدول اصلی به جای نام شهر فقط اون عدد ذخیره شود. اینجوری حجم رکورد ها خیلی کاهش پدا میکنه و در زمان واکشی اطلاعات سرعت بیشتری نسبت به قبل خواهد داشت.
- سعی کنید نام جداول و فیلد ها رو انگلیسی و کلمات مرتبط قرار بدید و از نام های رزرو شده پایگاه داده استفاده نکنید (مثلا کلمه name در پایگاه داده Mysql یک کلمه رزرو شده است و اگه این نام رو استفاده کنید باید حتما به صورت `name` اون رو فراخوانی کنید).
- بعد از طراحی اولیه پایگاه داده نمودار ERD اون رو رسم کنید و خوب به اون نگاه کنید و چند بار دیگه اون رو نرمال سای کنید.
بحث طراحی پایگاه داده یک درس ۳ واحدی ۱۵ جلسه ای تو دانشگاه هستش و من مطمئنا نمی تونم تو چند خط همه اونها رو به خاطر بیارم و اینجا بنویسم(از حوصله شما هم خارجه ;D ) .
این کار ها چیزهایی بود که من خودم به شخصه برای طراحی پایگاه داده هام استفاده می کنم.(میدونم کامل نیست ولی خب از یک کارشناس نرم افزار بیشتر از این انتظار نمیره ;D)
لینک زیر نمونه ای از نمودار ERD مربوط به همون برنامه کلینیک مشاوره است که در حال کار روی اون هستم. این نمودار با برنامه Mysql Workbench طراحی شده است.
http://ubuntuone.com/6gCcSUE304VYPDtFvvP4S1 (http://ubuntuone.com/6gCcSUE304VYPDtFvvP4S1)
یا حق
-
سلام
چنتا نکته از طراحی پایگاه یادم رفته بود گفتم حداقل یک اشاره ای به این موارد هم بکنم.
اولین قضیه کلید های اصلی و کلید خارجی تو جداول است :
حتما سعی کنید جدول هاتون کلید اصلی داشته باشن. اگه فیلدی وجود داره که امکان وجود مقدار تکراری توش نیست اون رو کلید اصلی قرار بدید و یا بعضی مواقع ۲ و ۳ تا فیلد با هم کلید اصلی هستند.
اگه همچین چیزی وجود نداره و یا می خوایین دست کاربر رو تو ورود اطلاعات تکراری باز بگذارید یک فیلد عددی تعریف کنید و گزینه Auto increment رو در پایگاه برای این فیلد علامت بزنید با این کار جدول شما دارای کلید اصلی خواهد بود و مزاحمتی برای کاربر ایجاد نمیشود. شما هم فقط مقادیر دیگر جدول را هنگام درج وارد می کنید و این فیلد به صورت خودکار مقدار خواهد گرفت.
کلید خارجی هم در مواردی که بخواهید دو جدول را به هم مرتبط کنید استفاده میشه و به وسیله یک فیلد که که در هر دو جدول مقادیر یکسانی خواهند داشت ارتباط بین آنها برقرار می شود.بعضی از دوستان فقط به به تعریف کلید اصلی در جداول بسنده می کنند و کلید خارجی را برای پایگاه داده مشخص نمی کنند. یکی از مزیت های مهم پایگاه های دارای جداول با کلید خارجی هستند در این است که در هنگام حذف اطلاعات پایه ای اگه در جداول واسط این رکورد استفاده شده باشد پایگاه داده به طور خودکار امکان حذف به کاربر نمی دهد و در نتیجه اطلاعات رکورد جدول واسط ناقص نخواهد شد.
قضیه بعدی نوع فیلد ها نسبت به مقادیر داخل آنها است. مثلا وقتی درون یک فیلد باید یک عدد نهایتا ۴ رقمی ذخیره شود دلیلی وجود ندارد که نوع آن را INT یا حتی Varchar تعریف کنید.(نوع Smallint هم میتونه پاسخگو نیاز شما باشه) و یا نوع تاریخ و زمان به خاطر مشکلات ذخیره تاریخ شمسی در پایگاه داده ها عموما به صورت varchar تعریف میشه و توجیه دوستان هم اینه که جواب میده و مشکلی نداشتن ولی فکر اینو نمی کنند که یک مقدار ۱۰ کارکتری چقدر در افزایش حجم پایگاه داده نسبت به یک مقدار ۳ بایتی موثر خواهد بود.برای ذخیره سازی تاریخ شمسی توابع تبدیل تاریخ به راحتی در دسترس است. اگه پایگاه از نوعی باشه که امکان تعریف تابع و یا procedure در اون وجود داشته باشه میشه این تابع تبدیل رو روی سرور ذخیره کرد و شما مقادیر شمسی برای پایگاه اسال و دریافت می کنید ولی پایگاه قبل ذخیره و یا بازیانی اونها رو تبدیل کرده و سپس عملیات را انجام میده. اگر پایگاه از نوعی است که امکان این کار نیست میشه تو خود برنامه توابع نوشته بشه و قبل ارسال و یا بعد از دریافت اطلاعات از پایگاه این کار تو خود برنامه اجرایی انجام بشه . با این کار هم در افزایش حجم رکورد ها صرفه جویی کرده اید و هم از توابع پایگاه (مثلا اضافه کردن یک روز به روز ذخیره شده- در حالت عادی با یک تابع خیلی راحت انجام میشه ولی در حالت غیر معمول نیازمند نوشتن برنامه ای چند خطی داره) میتوان استفاده کرد.
نکته آخر نوع پایگاه داده و تنظیمات مربوط به اون است. در گذشته نه چندان دور خودم به شخصه از سه نوع رایج پایگاه داده ها استفاده می کردم. یکی MS SQL Server و MS Access و paradox که از نوع اول برای پایگاه داده های شبکه ای و از نوع دوم وسوم برای پایگاه داده های لوکال استفاده می کردم.
چند سال پیش با تغییر سیستم عامل از ویندوز به گنو/لینوکس و دلفی به لازاروس پایگاه داده هم به MySQL و SQLite تغییر کرد. البته گوشه چشمی هم به Firebird و postgresql دارم ولی هنوز موفق به کار با اونها نشدم. مزیت های این پایگاه داده ها اینه که علاوه بر داشتن سرعت و امکانات قابل قبول امکان استفاده در اغلب سیستم عامل ها رو هم داره. البته دنیای متن باز خیلی بزرگتر از این حرفاست ولی دیگه نیازی به استفاده از محصولات مایکروسافت ندارم و خیلی وقته این برنامه ها پایگاه داده های برنامه های منو تشکیل میدن. (به شما هم توصیه می کنم از این موارد استفاده کنید ;) )
یا حق :)
-
سلام. خیلی کار خوبی کردید که نوشتن این آموزش رو شروع کردید. سبک نوشتنتون هم واقعا عالی و خودمونی هست. \\:D/ امیدوارم مثل بقیه آموزش ها بی نتیجه نمونه و تا آخر انشالله ادامه پیدا کنه! میدونم که پریدن وسط آموزش کار درستی نیست ولی خب نمیشه :-X
یه مشکلی هست که تقریبا تمام کاربران لازاروس باهاش مواجه هستن! این مشکل توی لینوکس بیشتر به چشم میاد! مشکل هم اینه که شما وقتی لازاروس رو باز میکنید، تمام بخش های لازاروس به صورت جدا از هم، توی چند پنجره باز میشن! من با مقداری سرچ راه حل این مشکل رو پیدا کردم! پس از انجام مطالبی که توی آموزش حل مشکل گفته شده بود، لازاروس من حالت اصطلاحا Single window (تک پنجره) در اومد. این اسکرین شات از سیستم خودم هست:
http://bayanbox.ir/user/ojzim0/images/Amoozesh/lazarus-single-window/lazarus-single-window.png?view
متأسفانه یادم نیست دقیقا این آموزش رو توی کدوم سایت خوندم، چون برای انجامش به سایت های مختلفی سر زدم!
به این منظور:
۱- لازاروس رو اجرا کنید.
۲- از منوی Package گزینه Open Package File رو انتخاب کنید.
۳- این فایل رو انتخاب کنید:
/usr/share/lazarus/1.0.8/components/anchordocking/design/anchordockingdsgn.lpk
۴- داخل پنجره باز شده، روی Use کلیک کنید. از منوی باز شده گزینه Install رو بزنید.
۵- از شما میپرسه که آیا میخواید Lazarus رو دوباره Build کنم؟ بزنید Yes
۶- لازاروس دوباره کامپایل میشه، لازاروس خارج میشه و دوباره اجرا میشه.
۷- عجله نکنید! پنجره ها با هم ادغام شدن ولی ظاهرش هنوز مثل عکسی که دادم نشده. انگار Object Inspector نیستش. از منوی View گزینه Object Inspector رو بزنید تا نمایان بشه. توی پنجره ای که نمایان شده، زیر عنوان پنجره، یه خطی هست با رنگ سفید و طوسی! اون رو انتخاب کنید و بکشیدش توی پنجره اصلی لازاروس! هرجا که دوست داشتید بذاریدش. به همین ترتیب میتونید مکانشون رو مرتب کنید.
۸- وقتی مرتبشون کردید و به حالت دلخواهتون درش آوردید، از منوی Tools گزینه Save window layout as default رو بزنید تا تنظیماتتون ذخیره بشه.
میدونم که خیلی بی ربط بود ولی این مورد واقعا بعضی از دوستان رو اذیت میکرد. لازم بود که مطرح کنم \\:D/
-
سلام. خیلی کار خوبی کردید که نوشتن این آموزش رو شروع کردید. سبک نوشتنتون هم واقعا عالی و خودمونی هست. \\:D/ امیدوارم مثل بقیه آموزش ها بی نتیجه نمونه و تا آخر انشالله ادامه پیدا کنه! میدونم که پریدن وسط آموزش کار درستی نیست ولی خب نمیشه :-X
یه مشکلی هست که تقریبا تمام کاربران لازاروس باهاش مواجه هستن! این مشکل توی لینوکس بیشتر به چشم میاد! مشکل هم اینه که شما وقتی لازاروس رو باز میکنید، تمام بخش های لازاروس به صورت جدا از هم، توی چند پنجره باز میشن! من با مقداری سرچ راه حل این مشکل رو پیدا کردم! پس از انجام مطالبی که توی آموزش حل مشکل گفته شده بود، لازاروس من حالت اصطلاحا Single window (تک پنجره) در اومد. این اسکرین شات از سیستم خودم هست:
http://bayanbox.ir/user/ojzim0/images/Amoozesh/lazarus-single-window/lazarus-single-window.png?view
متأسفانه یادم نیست دقیقا این آموزش رو توی کدوم سایت خوندم، چون برای انجامش به سایت های مختلفی سر زدم!
به این منظور:
۱- لازاروس رو اجرا کنید.
۲- از منوی Package گزینه Open Package File رو انتخاب کنید.
۳- این فایل رو انتخاب کنید:
/usr/share/lazarus/1.0.8/components/anchordocking/design/anchordockingdsgn.lpk
۴- داخل پنجره باز شده، روی Use کلیک کنید. از منوی باز شده گزینه Install رو بزنید.
۵- از شما میپرسه که آیا میخواید Lazarus رو دوباره Build کنم؟ بزنید Yes
۶- لازاروس دوباره کامپایل میشه، لازاروس خارج میشه و دوباره اجرا میشه.
۷- عجله نکنید! پنجره ها با هم ادغام شدن ولی ظاهرش هنوز مثل عکسی که دادم نشده. انگار Object Inspector نیستش. از منوی View گزینه Object Inspector رو بزنید تا نمایان بشه. توی پنجره ای که نمایان شده، زیر عنوان پنجره، یه خطی هست با رنگ سفید و طوسی! اون رو انتخاب کنید و بکشیدش توی پنجره اصلی لازاروس! هرجا که دوست داشتید بذاریدش. به همین ترتیب میتونید مکانشون رو مرتب کنید.
۸- وقتی مرتبشون کردید و به حالت دلخواهتون درش آوردید، از منوی Tools گزینه Save window layout as default رو بزنید تا تنظیماتتون ذخیره بشه.
میدونم که خیلی بی ربط بود ولی این مورد واقعا بعضی از دوستان رو اذیت میکرد. لازم بود که مطرح کنم \\:D/
1+ ;)
ممنون از راهنماییت. منم اذیت می شدم ولی باهاش کنار اومده بودم. حالا که درست شد خیلی بهتره شده.
فقط یک نکته میشه این بسته رو از طریق گزینه install/uninstall Packages این بسته رو پیدا کنید و به لازاروس اضافه کنید.بعد از انتخاب گزینه install selection رو انتخاب کنید و سپس گزینه save and rebuild IDE رو بزنید.
(http://ubuntuone.com/6PjOjT9jYmFPIxlcQs6ZCu)
در انتها بعد از اینکه همه تغییرات تو پنجره ها و چینش اونها تو صفحه رو انجام دادید حتما از منو Tools گزینه Save window layout as defult رو کلیک کنید تا لازاروس بعد هر بار اجرا به همین صورت اجرا بشه.
منم این کار رو کردم خیلی بهتر شده دستت درد نکنه ;D
اینم لازاروس من بعد تغییر
http://ubuntuone.com/0h9ipIu6r2qWT90EbVhs6f (http://ubuntuone.com/0h9ipIu6r2qWT90EbVhs6f)
راجع به آموزش هم باید بگم خیلی خوبه بعضی وقتا برای زنگ تفریح هم که شده دوستان نکات و ترفند هایی که خودشون یاد گرفتن رو بزارند. اینجوری منم میتونم یکم چیز یاد بگیرم و بین پست های آموزشی بیشتر فکر کنم و فرصت بیشتری بدست میارم.
موفق باشی ;)
-
سلام
می خواستم امروز یک جلسه دیگه رو شروع کنم که یک مشکل بدجور مشغولم کرد.
](*,) ](*,) ](*,)
هرچی زور زدم درست نشد آخرش مجبور شدم از یک راه دیگه به هدفم برسم. هرچند یکم طولانی تره ولی مطمئنا جواب میده.
امروز داشتم برا یک برنامه روی یک Query کار می کردم که اطلاعات جدولی رو به روز می کرد.
مشکل این بود که من داشتم Query رو توسط انتظارات کاربر کامل می کردم و برای همین خاصیت Sql.text اون رو تو برنامه با توجه به نیاز های کاربر مقدار می دادم و در نهایت بعد از کامل شدن متن SQL اون پرسجو رو اجرا می کردم.ولی وقتی یک مقدار تاریخ رو تو متن پرسجو قرار می دادم جای سال با روز عوض می شد. مثلا تاریخ ۱۸-۰۴-۱۳ تبدیل می شد به ۱۳-۰۴-۱۸ و این تاریخ معنی نمیداد. البته تو ویندوز همون کد درست کار میکنه و تاریخ رو به طور کامل و صحیح مقدار میداد مثلا ۱۸-۰۴-۲۰۱۳ .
هر کار کردم درست نشد آخرش مجبور شدم سال و ماه و روز رو از تاریخ جداگونه تو یک رشته قرار بدم اونجوری که خودم می خوام و بعد بزارم تو Query و ازش نتیجه بگیرم.
DataModule1.update_service.SQL.Text:='select * from services where notify_date=';
DataModule1.update_service.SQL.Append(QuotedStr(Datetostr(s_date));
مقدار SQL تو لینوکس برای مثلا تاریخ 2013/۰۴/۱۰ برابر می شد با
select * from services where notify_date='10-04-13'
که این مقدار خروجی مورد نظر رو نداشت. فکر می کنم مربوط به تنظیمات تاریخ در اوبونتو و کوبونتو میشه چون کوبونتو من تاریخش شمسی هستش ولی وقتی اون رو میلادی کردم بازم مشکل حل نشد ](*,)
در نهایت مشکلم رو با این خط حل کردم
DataModule1.update_service.SQL.Append(QuotedStr(inttostr(YearOf(s_date))+'-'+inttostr(MonthOf(s_date))+'-'+inttostr(DayOf(s_date)))+';');
-
بچه ها دارید شرمنده میکنید،تشکر ویژه هم از مهندس شهریاری بابت شروع عالی.
:)
-
بچه ها دارید شرمنده میکنید،تشکر ویژه هم از مهندس شهریاری بابت شروع عالی.
:)
ممنون علی آقا :)
از دوست خوبمون ojZim هم تشکر می کنم که این ترفند رو گفتن خیلی محیط لازاروس بهتر میشه اینجوری.
لطفا اینقدر هم نگو مهندس شهریاری ;D هرکی ندونه فکر می کنه من کی هستم 8)
اینجا پر از مهندس هستش. ما عددی حساب نمیشیم مقابل همه دوستان فروم.
یا حق
-
http://forum.ubuntu.ir/index.php/topic,63187.0.html (http://forum.ubuntu.ir/index.php/topic,63187.0.html)
-
http://forum.ubuntu.ir/index.php/topic,63187.0.html (http://forum.ubuntu.ir/index.php/topic,63187.0.html)
خیلی عالیه \\:D/
لازاروس جا برای پیشرفت خیلی زیاد داره و کم کم جای خودشو بین همه باز می کنه ;)
-
سلام
خب بعد از طراحی و ساخت پایگاه داده نصف کار انجام شده و فقط میمونه رابط کاربری که باید تو لازاروس طراحی و توسعه داده بشه.
اول قبل اینکه پروژه رو تو لازاروس شروع کنیم باید محیط رو اماده کنیم. به این معنی که کامپوننت ها و ابزارهایی که لازم داریم رو وارد لازاروس بکنیم. البته میشه اونها رو بعدا وقتی نیاز پیدا کردید به لازاروس اضافه کنید ولی کامپوننت ZEOS که برای ارتباط با پایگاه داده استفاده میشه بهتره از ابتدا تو لازاروس وجود داشته باشه. قبلا نحوه دانلود و نصب اونو تو پست های گذشته گفتم پس ازش می گذریم.
البته باید بگم که بهتره تا حد امکان سعی کنید از ابزارهای استاندارد و معمول تو برنامه هاتون استفاده کنید. مگر اینکه امکانات لازم رو برای شما فراهم نکنند و یا کامپوننت جدیدی به دستتون رسیده که از کارایی و پشتیبانی اون اطمینان پیدا کردید.
///////////////////////////////////////////////////////
در ابتدا بعد از باز کردن لازاروس اگر قبلا روی پروژه دیگه ای کار می کردید باید از منو File گزینه New... رو کلیک کنید تا پنجره زیر باز بشه.
(http://ubuntuone.com/0fMUqtANMSkJWJY8DiSkT1)
بعد از این کار محیط کار شما چیزی شبیه به فرم زیر خواهد شد.
(http://ubuntuone.com/7VPNi9WEWuynfjWxl9Mueq)
نکات اولیه هنگام ایجاد پروژه جدید:
- اول اینکه فرم ابتدایی که لازاروس برای شما باز میکنه Main form شما در نظر گرفته میشه و خیلی مهمه.
- دوم سعی کنید نام هایی که روی فرم ها و یونیت هاتون می گذارید مرتبط و هماهنگ باشن تا به راحتی بتونید اونها رو پیدا کنید و از هم تشخیص بدید. من خودم اون اوایل برنامه نویسیم با دلفی فرم ها رو Form1 - Form2 - Form3 و... و یونیت ها رو Unit1-Unit2-Unit3 و ... نامگذاری می کردم یعنی همون چیزی که خود دلفی می گفت. بعد وقتی می خواستم یک فرم رو باز کنم باید یادم میومد شمارش چند بود. این کار تو پروژه های کوچیک شاید ممکن باشه ولی تو یک پروژه بزرگتر خیلی مشکله و اصولا کار حرفه ای نیست که نام ها رو مرتبط قرار ندیم.
مثلا من نام یونیت اصلی برنامه رو Main و نام فرم اون رو main_form قرار میدم.
- سوم اینکه بعضی از تنظیمات برنامه خودتون رو روی فرم اصلی انجام بدید تا فرم های بعدی به طور پیشفرض از اون ارث ببرن و اگه نخواستین بعدا اونها رو عوض کنید. نمونه بارزش فونت استفاده شده تو برنامه است. هر فونتی رو که برای فرم اصلی در نظر بگیرید تو فرم های دیگه هنگام ایجاد به طور پیشفرض در نظر گرفته میشه.
- موقعیت فرم و نوع اون رو حتما بعد از ایجاد مشخص کنید. مثلا Position رو روی حالت poDesktopCenter و یا poScreenCenter قرار بدید تا فرم در مرکز نمایشگر مشاهده بشه و یا اینکه تنظیمات مربوط به تغییر اندازه فرم رو در قسمت border style و border icons مشخص کنید تا برنامه توسط کاربر قابل تغییر سایز باشد یا نه.
همچنین برای حالت فارسی خاصیت BiDiMode را در حالت bdRightToLeft قرار بدهید. هرچند این خاصیت بعضی مواقع روی برخی اشیا به خوبی کار نمی کند و هنوز به خوبی عمل نمی کند(البته برای نسخه ویندوزی ;D ).
- از اونجایی که اغلب برنامه های کار با پایگاه داده نیاز دارند که فرمی جهت گرفتن نام کاربری و کلمه عبور در ابتدای برنامه ظاهر گردد و در صورت داشتن مجوز به کاربر اجازه ورود به برنامه رو بدهند برای ساخت فرم ورود به برنامه و همچنین Splash screen که هنگام اجرای برنامه نمایش داده می شود عجله نکنید. این موارد بعدا باید ساخت و طراحی شوند و فعلا فرم اصلی برنامه را طراحی کنید.
-برای دسترسی به امکانات برنامه می توانید از اشیای گوناگون استفاده کنید که اولین و پر استفاده ترین آنها MainMenu هستش.کار با اون خیلی راحته و طراحی منو سریع انجام میشه و امکانات خوبی هم به برنامه نویس میده.
(http://ubuntuone.com/1IKvgPfDbn2D8TTw0l2NKh)
نمونه کار شده :
(http://ubuntuone.com/0TDYfPfL8yEMyGWqgnh1e4)
میشه از ابزارهای دیگه هم استفاده کرد که من جدیدا از Pagecontrol برای ساخت منو برای برنامه هام استفاده می کنم. فرقش در اینه که شما برای ساخت منوی اصلی برنامه هاتون میتونید به غیر از کلید ها و چک باکس ها از همه اشیای دیگه هم استقاده بکنید. مثلا کمبوباکس و یا Edit روی منو قرار بدید و .....
(http://ubuntuone.com/64I1u3MV111NNnkrb59xds)
دوتا نمونه منوهایی که من با این ابزار برای برنامه هام ساختم در زیر هستند. البته من فقط از دکمه روی اون استفاده کردم ولی میشه اشیای دیگه هم روش گذاشت.نکته دیگه اینکه اون قضیه BiDiMode که گفتم برای فارسی است تو این شی در ویندوز کار نمیکنه ولی تو گنو/لینوکس مشکلی نداره و راست به چپ یا چپ به راست خیلی خوب عمل میکنه. البته تو ویندوز هم با یک روشهایی میشه درستش کرد ولی ظاهر جالبی در نمیاد برا همین فعلا از حالت راست به چپ استفاده نمی کنم.
(http://ubuntuone.com/5VJLrFWRRpPExBloSuclMZ)
(http://ubuntuone.com/1v7dbx7WDhlp7X2DGmwBCv)
خب بقیش باشه برای بعد. موفق باشید ;)
یا حق
-
سلام :)
خب بعد از طراحی فرم اصلی و قرار دادن منو و ابزارهایی که در اون مورد نیاز است باید بریم سراغ مابقی پنجره ها.
امروز می خوام در مورد فرم های splash صحبت کنم. splash فرمی است که در زمان اجرا برنامه تا لود کامل و ظاهر شدن فرم اصلی نمایش داده می شود و معمولا اطلاعاتی در مورد برنامه و نسخه آن و برخی اطلاعات جانبی مثل شرکت سازنده و .... روی آن دیده می شود.
وجود این گونه فرم ها برای برنامه هایی که هنگام اجرا زمان بیشتری برای ظاهر شدن نیاز دارند بسیار مفید است و کاربر متوجه اجرا شدن برنامه می شود و مجددا برنامه رو اجرا نمی کنه.
برای ایجاد فرم splash به برنامه خودتون باید یک فرم جدید ایجاد بکنید و اون رو ذخیره کنید. بعد تصویر و متن و .... که می خواهید در زمان اجرا نمایش داده بشه رو تو اون قرار بدید و سپس از قسمت مشخصه های فرم گزینه FormStyle رو پیدا کنید و اون رو در حالت fsSplash قرار بدید همونطور که در تصویر زیر می بینید.
(http://ubuntuone.com/3auDOGxUs2VK5dFj6wny20)
خب اگه حالا برنامه رو کامپایل و سپس اجرا کنید خواهید دید که ابتدا فرم splash ظاهر میشه و بعد فرم اصلی برنامه نمایش داده میشه. البته تو برنامه های کوچیک و کم حجم این کار خیلی سریع اتفاق میوفته و شاید فقط کسری از ثانیه طول بکشه و زود پنجره رد بشه. نگران این موضوع نباشید چون بعد از اتمام کل برنامه این فرم بهتر دیده خواهد شد. همچنین نوع سیستمی که برنامه رو اجرا میکنه تو نمایش سریع یا کند این فرم موثر هست.
در کل اینجور بگم که هرچی اجرای برنامه شما در فاصله بین کلیک کاربر و نمایش فرم اصلی زمان بیشتری طول بکشه این فرم هم بیشتر دیده میشه و هرچی برنامه سریع تر اجرا بشه این فرم هم زود رد میشه.
سعی نکنید که با کارهای غیر اصولی نمایش این فرم رو طولانی کنید چون شاید در یک یا دوبار اجرا چیز زیادی به چشم شما نیاد ولی برای یک کاربر که برنامه رو هر روز باید چند بار اجرا کنه بعد از مدتی کلافه کننده میشه. پس بگذارید همه چی به روال خودش طی بشه و این فرم کار اصلی خودش رو اگه لازم بود انجام بده.
در بعضی برنامه ها بر روی این فرم شئ ProgressBar استفاده می شود که سرعت روند اجرای برنامه رو نمایش میده و پس از پر شدن اون برنامه اصلی ظاهر میشه. انجام این کار به نوعی بستگی به سلیقه برنامه نویس داره که بخواد همچین عملی تو برنامه اش باشه یا نه. من به شخصه از این تکنیک همیشه استفاده نمی کنم و همون Splash ساده با یک تصویر و متن رو ترجیح میدم.
با این حال برای انجام این کار باید تو یونیت پروژه تغییراتی انجام بدید. در حالت نرمال در این یونیت مشاهده می کنید که تمام فرم ها توسط برنامه ساخته می شوند. در ابتدا فرم اصلی برنامه باید ساخته شود و سپس فرم splash ساخته می شود و بقیه فرم ها به ترتیب پش سر هم ایجاد می شوند. تصویر زیر حالت نرمال پروژه و استفاده از splash را نشان می دهد.
(http://ubuntuone.com/6Xz1DZoeXy8TOV08Qo7LZM)
در حالتی که می خواهید بر روی فرم progressbar قرار دهید و پیشرفت اجرای برنامه را نشان دهید باید بعد از ساختن فرم اصلی سپس فرم splash به مقدار progressbar مقادیر مورد نظر را اضافه کنید این مقدار باید به نسبت تعداد فرم ها و مقدار زمان انجام پردازش باید تعیین گردد تا در انتها بعد از تمام فرم ها مقدار Progressbar هم به ۱۰۰ برسد. تصویر زیر کد های نمونه این کار را نشان می دهد.( البته مقادیر نسبت داده شده به progressbar درست نیستند چون در هنگام ایجاد فرم های انتهایی پیشرفتی در progressbar ایجاد نخواهند کرد چون مقدار آن از ۱۰۰ بیشتر میشه.)
(http://ubuntuone.com/3mvhWXBKvFvdfB6XAd9ryx)
با این کار بعد از اجرای برنامه توسط کاربر فرم splash نشان داده خواهد شد و پیشرفت اجرا نیز در آن مشاهده خواهد شد و بعد از اتمام فرم اصلی ظاهر خواهد شد.
یا حق ;)
-
خیلی خوب میخوام بصورت جدی برم توی کار اتصال برنامه به دیتابیس \\:D/ تا حالا این کار رو با لازاروس انجام نداده بودم، همیشه اطلاعات رو داخل فایل ذخیره میکردم. ولی دوتا سوال برام پیش اومده:
۱- شما چرا برای اتصال به دیتابیس از کامپونت ZEOS استفاده کردید؟ مگه لازاروس ابزاری برای اتصال به دیتابیس نداره؟ فکر نمیکنید ابزار پیشفرض لازاروس بهتر کار رو انجام بدن؟
۲- مطمئنید که برای اینجور پروژه ها، mysql بهترین گزینست؟ توی لینوکس چیزای بهتری هم پیدا میشه؟ من از mysql زیاد خوشم نمیاد. بنظرم بیشتر برای وب به درد میخوره تا اپلیکیشن های دسکتاپ!
-
۱- شما چرا برای اتصال به دیتابیس از کامپونت ZEOS استفاده کردید؟ مگه لازاروس ابزاری برای اتصال به دیتابیس نداره؟ فکر نمیکنید ابزار پیشفرض لازاروس بهتر کار رو انجام بدن؟
۲- مطمئنید که برای اینجور پروژه ها، mysql بهترین گزینست؟ توی لینوکس چیزای بهتری هم پیدا میشه؟ من از mysql زیاد خوشم نمیاد. بنظرم بیشتر برای وب به درد میخوره تا اپلیکیشن های دسکتاپ!
سلام
1- چرا لازاروس ابزار های پیشفرضی برای اتصال به چنتا پایگاه ها مختلف داره ولی کار کردن با اونها یکم مشکل تره. امکانات و پایگاه هایی که ZEOS پشتیبانی می کنند و تنوع ابزارهای که در اختیار برنامه نویس قرار میدهد خیلی بیشتر از ابزارهای پیشفرض خود لازاروس هست. ضمنا این کامپوننت متن باز است و قابل اعتماد ;) .
2- اطمینان در دنیای نرم افزار چیزی نسبی هستش. من توصیه می کنم ولی نمیگم بهترین گزینه است. شاید پایگاه داده ای باشه که تو این حالت بهتر جوابگو باشه.
تو گنو/لینوکس پایگاه های خوب زیاد پیدا میشه ولی چون Mysql جواب خودشو تو وب پس داده و تو زمینه فارسی هم مشکل خاصی نداره و همچنین میشه تواما از از یک پایگاه به صورت وب و دسکتاپ استفاده کرد من بیشتر سراغش میرم. درسته که Mysql تو وب زیاد استفاده میشه ولی این دلیلی برای کارآمد نبودن اون تو برنامه های دسکتاپ نیست.( فراموش نکنید که تو برنامه های وب aspx و مبتنی بر NET . از SQL Server استفاده میشه در حالی که همین پایگاه داده در برنامه های دسکتاپ هم استفاده میشه.)
با این حال جدیدا دارم سعی می کنم با Postgrysql هم کمی جلو برم ولی فعلا Mysql برای من به شخصه گزینه اول هستش.
در ضمن شما میتونید هر پایگاه داده ای خواستید استفاده کنید و فقط در زمان تنظیم شئ Connection باید نوع پایگاه داده رو مشخص کنید و بقیه مسائل تو اغلب پایگاه داده ها مشترک هستن و دستورات SQL در بیشتر اونها یکسان هستند.
-
سلام
خب تا اینجا پروژه جدیدمون ایجاد شده و دارای یک فرم اصلی و یک فرم Splash هستش.
نکته ای که در قسمت قبل گفته نشد این بود که فرم ها به صورت Auto Create هستند. یعنی ما فرم را طراحی می کنید و همه تنظیمات مربوط به آن را انجام می دهید و در زمان اجرا یکی یکی ساخته می شوند و در حین ایجاد آنها فرم Splash نمایش داده می شود. بعد از این کار در صورتی که فرم را Free نکنید به راحتی قابل نمایش و بسته شدن هستند.
مزیت اصلی این کار راحتی استفاده در اون است ولی اگه فرم هاتون خیلی زیاد باشن حافظه زیادی اشغال می کنند و اگه سیستم از Ram کافی برخوردار نباشه کمی کند خواهد شد.
در این حالت بهتره فرم های ضروری را در حالت Auto Create قرار دهید و بقیه فرم ها را فقط در زمان نیاز ایجاد کنید و بعد از استفاده و بسته شدن آنها را Free کنید. با این روش برنامه شما حافظه کمتری اشغال خواهد کرد.
( هرچند در این زمونه حافظه Ram چندان کم نمیاد و فضای اون اونقدر هست که نیازی به این کارها نباشه. :) )
برای ساختن و نمایش فرم کافیه همون خطی که فرم در یونیت اصلی پروژه برای ساختن فرم ایجاد میکنه رو قبل از دستور نمایش قرار بدید و بعد از استفاده در رخداد Onclose فرم را Free کنید.
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
در فرم اصلی کدنویسی زیادی نداریم چون این فرم بیشتر نقش رابطی برای کاربر و قسمت های مختلف برنامه رو بازی میکنه و خودش کار زیادی انجام نمیده. البته میشه طوری طراحی بشه که همه کارها داخل همین فرم انجام بشه. ولی برای راحت تر شدن برنامه نویسی و همچنین تفکیک عملیات های مختلف بهتره فرم های دیگه ای هم طراحی کنید و از طریق فرم اصلی به اونها دسترسی داشته باشید.
برای استفاده از فرمی در فرم دیگه باید اسم یونیت اون فرم را در قسمت Uses فرم خودتون اضافه کنید. فقط به این نکته توجه داشته باشید که نباید چرخه ( یعنی یک فرم از فرم دیگه استفاده کنه و اون هم از همین فرم بخواد استفاده کنه ) ایجاد بشه چون کامپایلر خطا میگیره و برنامه اجرا نمیشه.
بعد از این کار باید روال Show و یا Showmodal را مثلا در رویداد OnClick دکمه ای فراخوانی کنید.
about_form.ShowModal;
///////////////////////////////////////////////////////////////////////////////////////////
تفاوت Show و Showmodal در اینه که در حالت اول فرم دوم نمایش داده میشه و کاربر به هر دو فرم دسترسی داره و میتونه هر کدام رو فعال (Active) کنه بدون اینکه لازم باشه فرم قبلی رو ببنده.
در حالت Showmodal کاربر فرم نمایش داده شده رو میبینه ولی نمیتونه به فرم قبلی برگرده بدون اینکه فرم جدید رو ببنده. این کار برای این صورت میگیره که شما قصد دارید صفحه شلوغ و پر فرم های مختلف نشه و هر فرمی که کار خودش رو انجام داد بسته بشه و بعد کاربر پنجره جدیدی رو باز کنه.
همچنین استفاده از روال Shownodal این امکان رو میده که بعد از بسته شدن فرم مقداری برای فرم فراخوانی کننده برگردانده بشه تا معلوم کنه چه وضعتی داشته.این کار با متغیر ModalResult انجام میشه و مقدار درون آن می تواند از حالت های mrok یا mrcancel یا ... باشد .
مثلا فکر کنید در فرم اصلی قصد دارید فرمی برای دریافت نام و نام خانوگی کاربر طراحی کنید. بعد از طراحی در فرم اصلی برای اینکه بفهمید کاربر ورود نام و نام خانوادگی را انجام داده است به این صورت باید عمل کنید :
if input_name_form.ShowModal=mrOK then
begin
{type your code}
end;
با این کار وقتی کاربر فرم ورود نام و نام خانودگی را ببیند و کلید تایید را بزند کد های قسمت شرط اجرا خواهند شد و در صورتی که به هر علت در فرم ورود نام و نام خانوداگی مقدار Mrok برگردانده نشود این دستورات اجرا نخواهند شد.
در روال Onclick کلید تایید در فرم ورود نام و نام خانوادگی در انتهای کد ها این دستور باید وجود داشته باشد
ModalResult:=mrOK;
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
یا حق :D
-
آموزش ها بسیار عالی هستند. البته یه سری نواقص دارند، نمیدونم چرا توی این انجمن کسی زیاد استقبال نمیکنه. لازاروس کاربر ایرانی زیاد نداره. ولی اگه سستی نکنید و آموزش دادن رو به همین صورت ادامه بدید، میتونید یک کتاب pdf منتشر بکنید برای تازه کارهای لازاروس. خیلی خوب میشه اینطوری ;D
خب استاد یه سوال بی ربط 8) شما توی پروژتون برای اون دکمه ها (مشاورین، علت های مراجعه و...) از چه آبجکتی استفاده کردید؟ یعنی اسم دکمه ای که گذاشتید چی بود؟ \\:D/ هرچی میگردم نیست.
ممنون
-
آموزش ها بسیار عالی هستند. البته یه سری نواقص دارند، نمیدونم چرا توی این انجمن کسی زیاد استقبال نمیکنه. لازاروس کاربر ایرانی زیاد نداره. ولی اگه سستی نکنید و آموزش دادن رو به همین صورت ادامه بدید، میتونید یک کتاب pdf منتشر بکنید برای تازه کارهای لازاروس. خیلی خوب میشه اینطوری ;D
خب استاد یه سوال بی ربط 8) شما توی پروژتون برای اون دکمه ها (مشاورین، علت های مراجعه و...) از چه آبجکتی استفاده کردید؟ یعنی اسم دکمه ای که گذاشتید چی بود؟ \\:D/ هرچی میگردم نیست.
ممنون
ممنون علی آقا
نواقص رو بفرمایید تا در ادامه سعی کنم اونها رو برطرف کنم ;)
استقبال از این زمینه برنامه نویسی زیاد چشم گیر نیست اونم بیشتر به خاطر اینکه هنوز جذابیت مثل بقیه زمینه ها پیدا نکرده. اشکالی نداره اگه برنامه نویس علاقه داشته باشه خودش جذب میشه و میوفته تو خطش ( مثل خودم ;D )
تو ایران بیشتر دلفی کار هستن و ویندوزی ولی خب لازاروس مثل دلفی امکانات و کامپوننت نداره برای همین اغلب شرکت ها هنوز دلفی و سیستم عامل ویندوز رو ترجیح میدن. کم کم با گسترش گنو/لینوکس برنامه های این سیستم عامل باید ساخته بشن و این موقع است که لازاروس که میتونه برای همه سکو ها برنامه رو تولید کنه مورد استقبال قرار میگیره. تا اون موقع اشیا و کامپوننت های بیشتری هم برای اون ساخته میشن و باگ هاش کم میشه.(به امید اون روز ;) )
برای ادامه آموزش ها خیلی شرمنده ام که یکم طولانی شد چون داشتم از Kubuntu 12.10 به Ubuntu 13.04 اسباب کشی می کردم یکم زمان برد تا جا بیوفتم ولی زیاد طول نکشید که بی خیالش شدم و رفتم Lubuntu 13.04 نصب کردم. الان خیلی راضی تر هستم و با محیط LXDE هم خیلی حال می کنم ;D .
یکم جا بیوفتم و برنامه هام رو کامل نصب کنم دوباره آموزش رو شرو می کنم.
برای کتاب هم موتاز عبدل عظیم یکی از دوستان سودانی یک آموزش مقدماتی از لازاروس را به انگلیسی منتشر کرده. کتاب خیلی خوبیه و درکش زیاد سخت نیست. شاید اگه فرصتی بهم دست بده اونو به فارسی ترجمه کنم.
لینک دانلود : http://ubuntuone.com/67MUEH9ASIr9ecHoQQZfR8 (http://ubuntuone.com/67MUEH9ASIr9ecHoQQZfR8)
اون دکمه ها چیز خاصی نیستند. از Speedbutton استفاده کردم و گزینه Flat رو به حالت True برگرداندم. اینجوری روی TabPage کلی دکمه هست که با آیکن های مختلف برنامه رو زیباتر میکنه.(Speedbutton در تب Additional قرار داره )
اینم لازاروس در Lubuntu 13.04
(http://ubuntuone.com/6jfZDuVoJAL6P5BMYaAj4G)
یا حق :)
-
سلام
بعد از اینکه کارهای اولیه پروژه رو انجام دادیم باید کم کم بریم سراغ اتصال به پایگاه داده و انجام امور مربوط به اون. برای این کار قبل از هر چیزی لازمه که یک فرم Datamodule ایجاد کنیم.
خیلی از برنامه نویس ها شیائ مربوط به کار با پایگاه داده رو روی همون فرم قرار میدن که بهتره همه این اشیا تو Datamodule قرار داده بشن و به وسیله فرم های دیگه استفاده بشن. اینجوری مدیریت اونها ساده تر میشه و از اضافه شدن کلی شئ کم استفاده جلوگیری میشه. همچنین اتصال به پایگاه داده بهتر مدیریت میشه. نمونه یک Datamodule که من تو یکی از پروژه هام دارم روش کار می کنم تو تصویر زیر دیده میشه.
(http://ubuntuone.com/7IgJGKDXA2b7F4EYldKtYa)
برای ایجاد یک فرم از نوع Datamodule باید از منوی File گزینه New... را انتخاب کنید و سپس از پنجره جدید قسمت سمت چپ عنوان Datamodule را پیدا کنید و انتخاب نمایید.همانند تصویر زیر :
(http://ubuntuone.com/477595JRTPsNB4a4MMFPf6)
بعد از این کار تمامی اشیائ کار با پایگاه داده خود را در این فرم قرار دهید و برای استفاده از این اشیا در فرم های دیگر باید در قسمت Uses هر فرم نام یونیت Datamodule خود را اضافه کنید. به این ترتیب به تمام اشیائ فرم Datamodule در فرم دیگر دسترسی خواهید داشت.
چنتا نکته برای کار با Datamodule هست که باید متذکر بشم :
- سعی کنید تعداد اشیا نه خیلی زیاد باشه و نه خیلی کم. منظورم اینه که برای کار های مشابه از یک شئ استفاده کنید و برای هر کار کوچیکی سریع یک شئ جدول یا کوری به Datamodule اضافه نکنید. مثلا من برای بعضی مواقع که نیاز دارم یک کوری از یک جدول بگیرم یک شئ با عنوان Temp_query ایجاد کردم و کارهای کوچیک رو با قرار دادن SQL اون در این کوری انجام میدم و بعد هم اونو میبندم و ممکنه تو یک فرم دیگه با یک کد SQL دیگه از اون استفاده کنم.
البته میشه همه کارها رو با یک شئ هم انجام داد که اونجوری هم کار سخت و دشوار میشه. این هنر و مهارت برنامه نویس هست که با بهینه ترین حالت ممکن اشیا رو مدیریت کنه و اونهایی که لازمه رو ایجاد کنه.زیاد بودن اشیا باعث گیج شدن و یا حتی اشتباه برنامه نویس هم تو استفاده از اشیائ مشابه خواهد شد.
- از شئ Connection برای ارتباط همه جداول و پرسوجو های خودتون استفاده کنید و سعی کنید تنظیمات اون را به صورت داینامیک و با استفاده از کاربر تکمیل کنید. به این صورت برنامه در محل دیگری غیر سیستم شما هم به راحتی کار میکنه.
- برای واکشی داده از جداول و یا استفاده از Stored Procedure ها از Query استفاده کنید. البته این نظر شخصی منه. میتونید جداول رو به صورت Table هم استفاده کنید ولی وقتی اطلاعات یک جدول را به صورت یک Query واکشی می کنید دستتون بیشتر باز است و خیلی راحت میتونید خروجی رو به همون صورتی که دوست دارید نمایش بدید.
- یک موردی که در Mysql من بهش برخوردم اینه که نمیشه Proceure یا Function هایی که در پایگاه داده نوشتین و می خوایین تو برنامه ازشون استفاده کنید رو با شئ TZStoredproc که فکر می کنم برای اینکار هست استفاده کنید. برای این کار باید با یک Query و فراخوانی دستور Call mysp از اونها استفاده کنید. باید به جای Mysp نام تابع خودتون رو بگذارید و بعد با یک پرانتز متغیر های ورودی و خروجی را در اون تعریف کنید و قبل از اجرا اونها رو مقدار دهی کنید و در نهایت با استفاده از EXEcsql این توابع را اجرا کنید و اگر خروجی هم دارد از طریق پارامتر ها اونها رو مشاهده می کنید.
- عنوان اشیا را مثل همیشه مرتبط بگذارید تا هنگام فراخوانی بتوانید اونها رو از هم تشخیص بدید و سردرگم نشید.
خب فعلا تا بعد ;)
یا حق
-
سلام آقای شهریاری.
امکان ارائه این آموزشها بصورت PDF رو هم دارید؟ میدونید این تیپ تاپیک ها به علت سوال جوابهای داخلشون و پستهایی مثل این ، کمی انسجام آموزشیشون از بین میره :)
-
سلام آقای شهریاری.
امکان ارائه این آموزشها بصورت PDF رو هم دارید؟ میدونید این تیپ تاپیک ها به علت سوال جوابهای داخلشون و پستهایی مثل این ، کمی انسجام آموزشیشون از بین میره :)
سلام
راستش خیلی دوست دارم ولی همین تاپیک ها هم خیلی وقت گیر هستن و نمیرسم مطالب رو به روز کنم.(تو محل کار یه جور در گیرم و تو خونه یه جور دیگه ;D )
مسئله دیگه اینه که چیز هایی که من میزارم همچین نظم و ترتیب خاصی ندارند و همیجوری میرم سراغ یک مطلب که به ذهنم میرسه.
با این حال یکم آموزش ها بیشتر بشن که ارزش PDF کردن رو داشته باشن حتما PDF هم منتشر می کنم فقط امیدوارم خدا یکم بیشتر بهم وقت بده (آخه وقت طلاست ;) )
یا حق
-
سلام به آقای شهریاری گرامی
ممنون از آموزش های خیلی عالی تون.
یکی از مهمترین کامپوننت ها تاریخ هجری شمسی هست. آیا ورژنی برای Lazarus هم نوشته شده؟
-
سلام آقای شهریاری.
امکان ارائه این آموزشها بصورت PDF رو هم دارید؟ میدونید این تیپ تاپیک ها به علت سوال جوابهای داخلشون و پستهایی مثل این ، کمی انسجام آموزشیشون از بین میره :)
سلام
راستش خیلی دوست دارم ولی همین تاپیک ها هم خیلی وقت گیر هستن و نمیرسم مطالب رو به روز کنم.(تو محل کار یه جور در گیرم و تو خونه یه جور دیگه ;D )
مسئله دیگه اینه که چیز هایی که من میزارم همچین نظم و ترتیب خاصی ندارند و همیجوری میرم سراغ یک مطلب که به ذهنم میرسه.
با این حال یکم آموزش ها بیشتر بشن که ارزش PDF کردن رو داشته باشن حتما PDF هم منتشر می کنم فقط امیدوارم خدا یکم بیشتر بهم وقت بده (آخه وقت طلاست ;) )
یا حق
دستتون درد نکنه. یکی از بهترین تاپیک ها انجمن رو دارید جلو میبرید. حتما زمانم رو تنظیم می کنم و پی دی اف آموزش هاتون رو میسازم.(فعلا آنلاین و با قابلیت ویرایش میسازم تا در آینده تکمیل بشه).
اشکالی نداره مطالبتون رو در سایت لینوکس سیزن (http://www.linuxseason.ir/) قرار بدم؟ به طور کلی مجوز مطالبتون چیه؟
-
سلام به آقای شهریاری گرامی
ممنون از آموزش های خیلی عالی تون.
یکی از مهمترین کامپوننت ها تاریخ هجری شمسی هست. آیا ورژنی برای Lazarus هم نوشته شده؟
سلام
خواهش می کنم کار مهمی نمی کنم. تو دنیای متن باز دادن آموزش و ارائه تجربیات کمترین کاریه که از دستم بر میاد :)
کامپوننت تاریخ شمسی هنوز چیزی برای لازاروس پیدا نکردم.( مگر اینکه یکی از دوستان دست به کار بشه ;D)
هرچند من نیاز خودم رو با یک سری توابع تو Mysql برای تبدیل تاریخ به هم بر طرف می کنم.
میشه همین توابع رو که کد SQL دارند به Pascal تبدیل کرد و تو Lazarus استفاده کرد. به زودی اونها رو تو سایت قرار می دم.
ممنون از نظرتون ;)
سلام آقای شهریاری.
امکان ارائه این آموزشها بصورت PDF رو هم دارید؟ میدونید این تیپ تاپیک ها به علت سوال جوابهای داخلشون و پستهایی مثل این ، کمی انسجام آموزشیشون از بین میره :)
سلام
راستش خیلی دوست دارم ولی همین تاپیک ها هم خیلی وقت گیر هستن و نمیرسم مطالب رو به روز کنم.(تو محل کار یه جور در گیرم و تو خونه یه جور دیگه ;D )
مسئله دیگه اینه که چیز هایی که من میزارم همچین نظم و ترتیب خاصی ندارند و همیجوری میرم سراغ یک مطلب که به ذهنم میرسه.
با این حال یکم آموزش ها بیشتر بشن که ارزش PDF کردن رو داشته باشن حتما PDF هم منتشر می کنم فقط امیدوارم خدا یکم بیشتر بهم وقت بده (آخه وقت طلاست ;) )
یا حق
دستتون درد نکنه. یکی از بهترین تاپیک ها انجمن رو دارید جلو میبرید. حتما زمانم رو تنظیم می کنم و پی دی اف آموزش هاتون رو میسازم.(فعلا آنلاین و با قابلیت ویرایش میسازم تا در آینده تکمیل بشه).
اشکالی نداره مطالبتون رو در سایت لینوکس سیزن (http://www.linuxseason.ir/) قرار بدم؟ به طور کلی مجوز مطالبتون چیه؟
خواهش می کنم :D شما و دوستان لطف دارید همچین آش دهن سوزی هم نیست.
برای PDF لطف می کنید باعث زحمتتون میشه. اگه ساختید برای دوستان تاپیک هم قرار بدید
نه مشکلی نداره هرجا خواستید میتونید استفاده کنید(البته ذکر منبع فراموشتون نشه). فعلا مجوز خاصی نداره ;D (صلواتی هستش)
ممنون ;)
-
سلام
امروز میخوام چگونگی برقراری ارتباط با پایگاه داده به وسیله ZEOS در لازاروس رو توضیح بدم.
همونطور که قبلا گفتم انتخاب نوع پایگاه داده به عهده برنامه نویس هست و با توجه به نیازهایی که داره باید پایگاه داده رو برای برنامه خودش انتخاب کنه.
به عنوان مثال من در برنامه ای نیاز داشتم به غیر اطلاعاتی که برای پایگاه داده اصلی در سرور ارسال و دریافت می کردم اطلاعاتی هم در سیستم کلاینت ذخیره کنم که مختص همون کلاینت است. در این حالت ۲ تا کانکشن روی Datamudole قرار دادم که یکی ارتباط با پایگاه داده اصلی روی سرور رو برقرار می کرد و دومی ارتباط با پایگاه داده محلی بر روی سیستم کلاینت.
مسئله مهم چگونگی تنظیمات این کانکشن ها هست که تا حد ممکن باید به صورت داینامیک باشه. در تصویر زیر قسمتی از Properties مربوط به کانکشن را می توانید مشاهده کنید.
(http://ubuntuone.com/6kEVzOTDKcO58JHsCsGsHe)
در گام نخست باید نوع پروتکل استفاده شده را در قسمت Properties را مشخص نمایید.این گزینه مشخص می کند که شما به چه نوع پایگاه داده ای می خواهید متصل شوید. انواع مختلفی از پایگاه داده های پر استفاده در این قسمت وجود دارد که از آن جمله میشه به Mysql - Oracle - Ms Sql - postgraysql - SQLite - Firebrid - Sysbase و ... اشاره کرد. من در تصویر زیر پایگاه Mysql را جهت اتصال انتخاب کرده ام.
(http://ubuntuone.com/5JgSIRYQxUY3FE807IYXdQ)
بعد از انتخاب نوع پروتکل پایگاه داده باید شماره پورت و آدرس سرور آن را نیز مشخص نمایید. البته این دو در انواع تحت شبکه کاربرد داره و پایگاه های محلی نظیر SQLite نیازی به این گزینه ندارند. پورت در پایگاه های مختلف متفاوت است و به عنوان مثال در Mysql شماره ۳۳۰۶ و در Ms Sql server شماره ۱۴۳۳ و در oracle شماره 1521 می باشد. برای آدرس هم اگر سرور روی همان سیستم است میتونید Localhost یا ۱۲۷.۰.۰.۱ را در Hostname قرار بدید و اگه سرور روی سیستم دیگه ای هست باید شماره IP یا نام اون در شبکه را در قسمت Hostname وارد کنید .
حال باید کتابخانه اتصال به پایگاه را برای ZEOS معرفی کنید که در Windows یک فایل DLL و در گنو/لینوکس یک فایل so این کار را انجام می دهد. البته می توانید با نصب پکیچ مخصوص کلاینت آن پایگاه داده در سیستم این کار به صورت اتوماتیک انجام دهید. مثلا به جای کپی کردن فایل Libmysql.so در گنو/لینوکس و معرفی مسیر این فایل در قسمت Library location مربوط به تنظیمات کانکشن پکیج libmysqlclient از طریق Software Center این کار را راحت تر انجام دهید. با این کار این کتابخانه در سیستم کپی می شود و سیستم مسیر آن را خواهد داشت و نیازی نیست شما قسمت library location را به صورت دستی پر کنید.
قسمت مهم دیگه ای که باید تکمیل بشه گزینه Client Codepage هست. این قسمت به خاطر ارسال و دریافت اطلاعات به صورت فارسی باید در حالت UTF8 باشه تا اطلاعات فارسی به درستی برای پایگاه داده ارسال و دریافت بشه. البته خود پایگاه داده هم باید تنظیم شده باشه که اطلاعات فارسی را به درستی نگهداری و واکشی کنه.
خب تقریبا کار تموم شده. فقط میمونه نام پایگاه داده که در قسمت Database و Catalog باید نوشته بشه و وارد کردن نام کاربری و کلمه عبور برای اتصال به پایگاه داده. در مورد پایگاه داده هایی که همه اطلاعات را در یک فایل ذخیره می کنند باید در قسمت Database مسیر فایل پایگاه داده را مشخص کنید و در قسمت Catalog نام پایگاه داده را وارد کنید.
بعد از این کارها می توانید گزینه Connected را به حالت True تغییر دهید و در صورتی که به همین حالت بماند یعنی شما با موفقیت به پایگاه داده متصل شده اید و اگر پیام خطا دهد اتصال انجام نشده است.
موفق باشید ;)
-
با سلام و عرض تشکر و خسته نباشید
-
سلام امیر جان
۱-میخوام بدونم میشه با این برنامه پورت سریال رو خوند؟
من یه سخت افزار دارم که میخوام داده هاشو تو رایانه ببینم.
ممنون میشم جوابمو بدی و همچنین یه کد ساده هم مثال بزنی براش.
۲-آیا میشه نمودار یا پلات با این برنامه رسم کرد؟
اگه میشه اینم یه مثال ساده داشته باشه.
من با کیوت و GTK به بن بست رسیدم!
-
سلام امیر جان
۱-میخوام بدونم میشه با این برنامه پورت سریال رو خوند؟
من یه سخت افزار دارم که میخوام داده هاشو تو رایانه ببینم.
ممنون میشم جوابمو بدی و همچنین یه کد ساده هم مثال بزنی براش.
۲-آیا میشه نمودار یا پلات با این برنامه رسم کرد؟
اگه میشه اینم یه مثال ساده داشته باشه.
من با کیوت و GTK به بن بست رسیدم!
سلام حامد
1- با این برنامه میشه برنامه هایی نوشت که پورت سریال رو بخونه ولی راستش من تو این زمینه اصلا کار نکردم.
فکر نمی کنم زیاد مشکل باشه ولی کد نمونه ندارم باید بگردم ببینم چی میتونم بفهمم تو این زمینه.
2- تو قضیه نمودار و یا پلات هم امکانش هست ولی شاید ابزار ها و کامپوننت هاش با اون قابلیت هایی که تو بقیه IDE ها هست نباشه ولی کارت رو راه میندازه. نمونش این دوتا (البته اگه منظورتو درست متوجه شده باشم) :
http://wiki.freepascal.org/PlotPanel (http://wiki.freepascal.org/PlotPanel)
http://wiki.freepascal.org/Perlin_Noise (http://wiki.freepascal.org/Perlin_Noise)
---------
متاسفانه الان اینترنتم فروم لازاروس رو باز نمیکنه اونجا اطلاعات خوبی میشه پیدا کرد و همینطور یک بار شخصی رو تو این فروم دیدم که تو وبلاگش نمونه کارهاشو گذاشته بود. من از برخی نمونه کارهاش فهمیدم تو قضیه برنامه نویسی صنعتی خیلی فعاله و حتی برنامه کنترل خط تولید صنعتی هم با لازاروس نوشته بود. اگه بشه سنسورها و حسگرهای مختلف رو با لازاروس کنترل کرد و با اونها ارتباط برقرار کرد پس حتما میشه پورت سریال یا موازی رو هم خوند.
یا حق :)
-
سلام امیر جان
دقیقا نمودارها رو هم چین شکلی میخوام اما اگه میشه یه توضیحی کوچیک از این پلات برام بگی ممنون میشم
http://wiki.freepascal.org/Perlin_Noise
در ضمن فکر کنم سریال هم داشته باشه اما اگه منو راهنمایی کنی ممنونت میشم امیر جان.
با کیوت کار کردم اما کد هاش واقعا سنگین هستن و GTK هم محدودیت هایی داره که نتونستم باهاش ارتباط بر قرار کنم.
امیدوارم لازاروس نا امیدم نکنه.
-
سلام امیر جان
دقیقا نمودارها رو هم چین شکلی میخوام اما اگه میشه یه توضیحی کوچیک از این پلات برام بگی ممنون میشم
http://wiki.freepascal.org/Perlin_Noise
در ضمن فکر کنم سریال هم داشته باشه اما اگه منو راهنمایی کنی ممنونت میشم امیر جان.
با کیوت کار کردم اما کد هاش واقعا سنگین هستن و GTK هم محدودیت هایی داره که نتونستم باهاش ارتباط بر قرار کنم.
امیدوارم لازاروس نا امیدم نکنه.
سلام
راستش رو بگم تا الان چیزی از کشیدن پلات و نمودار تو برنامه ها نمیدونستم.
یک سرچی زدم. شدنش می دونم که میشه ولی راستش من خودم بلد نیستم. الان هم درگیر یک پروژه دیگه هستم که باید تمومش کنم وگرنه میرفتم برات دنبالش و ته و توش رو در میاوردم برات.
اگه بتونی یک سری به فروم لازاروس http://www.lazarus.freepascal.org/index.php?action=forum (http://www.lazarus.freepascal.org/index.php?action=forum) بزنی و خواسته ات رو به انگلیسی اونجا مطرح کنی حتما جواب های خوبی بهت میدن. برنامه نویس های ماهری تو انجمن لازاروس هستند که همیشه برای هر مشکلی حداقل یک راه حل ارائه می کنند. یا حداقل تو جستجوش چنتا کلمه کلیدی سرچ کن شاید قبلا کسی اونجا همچین مشکلی رو مطرح کرده باشه. منم سعی می کنم تو اولین فرصت یکم در مورد این قضیه تحقیق کنم.
موفق باشی. ;)
-
سلام حامد
من مقداری در مورد قضیه این نمودار ها و پلات تو لازاروس تحقیق کردم.
۲ تا گزینه خوب یدا کردم.
۱- TAchart
این کامپوننت نمودارهای زیادی رو شامل میشه و امکانات خوبی داره و به وسیله تیم توسعه لازاروس توسعه داده میشه و به همراه لازاروس نصب میشه و نیازی به دانلود و نصب نداره. مستندات و مثال های خوبی داره ولی یکم طول میکشه قلقش خوب دست آدم بیاد :) .
مستنداتش تو لین زیر هست و میتونه کمک خوبی برات باشه .
http://wiki.freepascal.org/TAChart_Tutorial:_Getting_started (http://wiki.freepascal.org/TAChart_Tutorial:_Getting_started)
۲- plotpanel
این کامپوننت رو تازه پیدا کردم و خیلی کار باهاش راحت بود و تونستم در اولین تجربه یک نمودار سینوسی باهاش رسم کنم.لینک اول تصویر نمودار و لینک دوم کد های رسم اون است.
http://ubuntuone.com/3ryUTKvKfWR6C4LFQQkNsv (http://ubuntuone.com/3ryUTKvKfWR6C4LFQQkNsv)
http://ubuntuone.com/1Dm7AeIlPl5FNmPZzSMvLF (http://ubuntuone.com/1Dm7AeIlPl5FNmPZzSMvLF)
میتونی این کامپوننت رو از آدرس زیر دانلود کنی و به راحتی تو لازاروس نصب میشه .
http://science4all.nl/?download=plotpanel_l.zip (http://science4all.nl/?download=plotpanel_l.zip)
یک مثال تو خودش داره ولی اگه خواستی می تونی یک سری به سایت سازنده اون بزنی .
http://science4all.nl/?Programming::Lazarus (http://science4all.nl/?Programming::Lazarus)
امیدوارم مشکلت حل شده باشه.
موفق باشی. ;)
یا حق
-
سلام امیر جان
واقعا خوشحالم که انقدر سوالم برات مهم بود که رفتی و یه سری اطلاعات خوب برام پیدا کردی. و از این بابت خوشحالم و ازت میخوام توی یه پروژه ای کمکم کنی و حالا سودی هم که حاصل میشه یه جورایی با هم کنار بیایم.اگه نظرت مثبت بود به این آدرس ایمیلم جوابتو بفرست تا همکاری کنیم.
jalaeihamed@yahoo.com
ازت ممنونم امیر جان فقط شماره تماس یادت نره اگه نظرت مثبت بود.
-
سلام امیر جان یه سوال دیگه.
من لازاروس رو نصب کردم نسخه ۹ رو و در هنگام اجرا یه ۵ تایی خطا میده و باز میشه.
و سوال دوم هم اینکه :
چرا نمیتونم نسخه ۱.۰.۸ رو نصب کنم.
من این نسخه رو به صورت ۶۴ بیتی دانلود کردم چون سیستم عاملم هم ۶۴ بیتی هست.
اینم خطای هنگام نصب:
(http://)http://upcity.ir/images2/29022107316558910347.png
حتی fpc رو هم دانلود کردم با فرمت tar ولی نمیدونم چه جوری نصبش کنم.
ممنون اگه یه توضیحه مختصری بدی.
-
سلام امیر جان
واقعا خوشحالم که انقدر سوالم برات مهم بود که رفتی و یه سری اطلاعات خوب برام پیدا کردی. و از این بابت خوشحالم و ازت میخوام توی یه پروژه ای کمکم کنی و حالا سودی هم که حاصل میشه یه جورایی با هم کنار بیایم.اگه نظرت مثبت بود به این آدرس ایمیلم جوابتو بفرست تا همکاری کنیم.
jalaeihamed@yahoo.com
ازت ممنونم امیر جان فقط شماره تماس یادت نره اگه نظرت مثبت بود.
سلام حامد جان
اول بگم که بهتر بود این مسائل رو تو پیام خصوصی برام میفرستادی :)
خواهش می کنم من خوشحال می شم بتونم کمکی بکنم ;D . فقط به خاطر شما هم نبود :) به واسطه شما من هم با این ابزار آشنا شدم و شاید در آینده جایی لازمم بشه.
در مورد کمک من تا جایی که وقت کنم و بلد باشم حتما دریغ نمیکنم (کیه از پول بدش بیاد ;D) ولی راستش یکم درگیری هام زیاده ( نه فقط برنامه هایی که باید تا حالا تموم می کردم و هنوز تحویل ندادم بلکه مشغله های زندگی و محل کارم خیلی وقتم رو میگیره) و نمیتونم فعلا قولی از این بابت بهت بدم. ولی خیلی خوشحال می شم توی هر زمینه ای تجربه ای داشته باشم و بتونم کار کنم.حالا شما شروع کن و یکم خودت سعی کن مشکلی هم داشتی من سعی می کنم کمکت کنم اگه نتونستی اونوقت یک فکری می کنیم با هم ;) .
سلام امیر جان یه سوال دیگه.
من لازاروس رو نصب کردم نسخه ۹ رو و در هنگام اجرا یه ۵ تایی خطا میده و باز میشه.
و سوال دوم هم اینکه :
چرا نمیتونم نسخه ۱.۰.۸ رو نصب کنم.
من این نسخه رو به صورت ۶۴ بیتی دانلود کردم چون سیستم عاملم هم ۶۴ بیتی هست.
اینم خطای هنگام نصب:
(http://)http://upcity.ir/images2/29022107316558910347.png
حتی fpc رو هم دانلود کردم با فرمت tar ولی نمیدونم چه جوری نصبش کنم.
ممنون اگه یه توضیحه مختصری بدی.
برای نصب بهتره لازاروس رو از روی مخازن نصب نکنی چون ویرایش قدیمی اون اونجا وجود داره.البته فکر می کنم ویرایش کامپایلر ۲.۶.۲ شده باشه اگه این بود همون رو از مخازن نصب کن ولی اگه پایین تر بود این نسخه رو دانلود کن.
در کل ۳ تا بسته رو دانلود کن و خودت نصب کنی خیالت راحت تر خواهد بود. :D مثلا برای توزیع های دبیان بیس نسخه ۶۴ بیتی فکر کنم این ۳ بسته باید دانلود بشن : fpc_2.6.2-0_amd64.deb و fpc-src_2.6.2-0_amd64.deb و lazarus_1.0.8-0_amd64.deb .
شما با توجه به توزیعی که استفاده می کنی بسته های DEB یا RPM رو دانلود کن از لینک زیر و بعد به ترتیب اول fpc بعد fpc-src و در نهایت هم lazarus را نصب کن.
http://sourceforge.net/projects/lazarus/files/ (http://sourceforge.net/projects/lazarus/files/)
-
سلام
شرمندم که پست ها یکم با بازه های طولانی گذاشته میشن ::)
خب بعد اینکه تونستید به طور موفقیت آمیزی به پایگاه داده اتصال برقرار کنید باید بریم سراغ درج و حذف و به روز رسانی اطلاعات و از همه مهمتر واکشی اطلاعات مورد نظر کاربر .
در اولین جلسه راهترین راه که خیلی هم سریع میشه این کار ها رو با اون انجام داد بیان می کنم و در جلسات آینده به روشهای فنی تر که یکم مشکل ترن ولی و دارای انعطاف بالا هستن می پردازیم. فرمی شبیه به تصویر زیر ایجاد می کنیم .
(http://ubuntuone.com/2eUmH0xfKoDmKunp4ESNev)
در ابتدا یک نکته راجع به اشیا موجود در لازاروس بگم اونم اینکه اشیا مورد استفاده بر دو نوع ویژال و غیر ویژال هستن. اشیا ویژال اون دسته از اشیا هستن که قابل دید و لمس هستن و در برنامه دیده میشن مثل دکمه یا لیست باکس یا لیبیل و .....
و اشیایی که در برنامه وجود دارند ولی دیده نمیشن رو غیر ویژال می گن. مثلا در فرم بالا Zconnection1 یا Zquery1 و ... جز اشیایی هستن که در برنامه وجود دارند ولی کاربر اونها رو نمی بینه .
برای اتصال به پایگاه داده یک شی Zconnection و برای استفاده از اطلاعات جداول از Ztable استفاده کنید.(من در این تصویر از Zquery استفاده کردم که برای شروع بهتره از Ztable استفاده کنید. در آینده نحوه کار با اطلاعات جداول و Zquery را میگم)
یک شی دیگر هم برای واسط بین جدول و اشیا مخصوص DB (مثل DBgrid یا DBnavigatior) وجود داره که باید در فرم بگذارید اونم Datasource است. جزئیات مربوط به اتصال رو همونطور که قبلا گفته بودم تنظیم کنید و بعد خاصیت Connected اون رو به حالت true قرار دهید.بعد باید بریم سراغ Ztable که خاصیت Connection اون رو Zconnection قرار بدید و قسمت نام اون (Tablename) را با نام جدول مورد نظرتون در پایگاه داده پر کنید.
حالا میریم سراغ Datasource که باید خاصیت Dataset اون با نام Ztable شما پر بشه و در نهایت شی Dbgrid و Dbnavigator قسمت Datasource رو با نام Datasource روی فرم پر کنید.
به این ترتیب ارتباط ها برقرار میشه و فقط میمونه یک کار که دیگه برنامه شروع به کار کنه.
روی کلید Button دوبار کلیک کنید و در پنجره ویرایشگر کد قسمت زیر را پر کنید :
Ztable1.open;
حالا برنامه رو کامپایل و اجرا کنید. وقتی روی کلید کلیک کنید باید اطلاعات اون جدول در Dbgrid نمایش داده بشه و همینطور DBnavigator هم فعال بشه و بتونید با اون بین رکورد ها جلو و عقب بروید و ویرایش و حذف و درج در جدول انجام بدهید.
در جلسه آینده یکی از روشهای جستجو یک رکورد خاص را خواهم گفت.
فعلا یا حق ;)
-
درود
چه جوری میشه محیط IDE رو مثل تصویل زیر یه پارچه کرد(من نصب کردم هر قسمت IDE یه پنجره متقل هست که آزار دهنده است)
(http://ubuntuone.com/6jfZDuVoJAL6P5BMYaAj4G)
-
درود
چه جوری میشه محیط IDE رو مثل تصویل زیر یه پارچه کرد(من نصب کردم هر قسمت IDE یه پنجره متقل هست که آزار دهنده است)
سلام. این موضوع توی صفحه ۱۰ همین تاپیک مطرح شده...
اینم لینکش:
http://forum.ubuntu.ir/index.php/topic,35247.msg518697.html#msg518697
-
درود
چه جوری میشه محیط IDE رو مثل تصویل زیر یه پارچه کرد(من نصب کردم هر قسمت IDE یه پنجره متقل هست که آزار دهنده است)
سلام. این موضوع توی صفحه ۱۰ همین تاپیک مطرح شده...
اینم لینکش:
http://forum.ubuntu.ir/index.php/topic,35247.msg518697.html#msg518697
درود
شرمنده ندیده بودمش ...
البته مسیر پلاگین anchordockingdsgn توی آرچ یه خورده فرق داره
/usr/lib/lazarus/components/anchordocking/design/anchordockingdsgn.lpk
ممنون
-
سلام
هنگام بالا اومدن امیر جان این خطا رو میده!
(http://upload7.ir/images/55507105495298061416.png)
اشکال از کجاست به نظرت؟
-
سلام
هنگام بالا اومدن امیر جان این خطا رو میده!
اشکال از کجاست به نظرت؟
سلام حامد جان
تو تصویری که گذاشتی لازاروس و سورس کامپایلر مشکل دارند.(برای لازاروس میگه پوشه LCL که کامپوننت های لازاروس را نگهداری می کند پیدا نشد) ولی مثل اینکه کامپایلر درست نصب شده.
فکر می کنم به خاطر ویرایش قبلی هست که کامل حذف نشده.فکر کنم بتونی اون قسمت رو به مسیر ویرایش 1.0.8 تغیر بدی ولی توصیه می کنم عملیات زیر رو انجام بدی.
برو توی مرکز نرم افزار و کلمه lazarus و FPC رو جستجو کن و هر بسته ای دیدی رو حذف کن. بعد برو تو پوشه home و فولدر lazarus. رو پیدا کن و اونم حذف کن و بعد دوباره اول FPC بعد FPC-src و در آخر لازاروس را نصب کن. باید این پنجره رو دوباره بدون خطا در اولین اجرای لازاروس ببینی.
-
ویرایش جدید لازاروس (۱.۰.۱۰) منتشر شد :)
دانلود : http://sourceforge.net/project/showfiles.php?group_id=89339 (http://sourceforge.net/project/showfiles.php?group_id=89339)
مشکلات رفع شده در این نسخه : http://wiki.lazarus.freepascal.org/Lazarus_1.0_fixes_branch#Fixes_for_1.0.10 (http://wiki.lazarus.freepascal.org/Lazarus_1.0_fixes_branch#Fixes_for_1.0.10)
-
سلام
دوستانی که تجربه دارن تو این محیط چه کامپوننتی رو برای گزارش گیری پیشنهاد میدن ؟
-
عاقا من اومدم یه مثال ماشین حساب ساده رو با این جناب لازاروس محترم درست کنم، اما نمیدونم چطور باید نوع متغیر Edit ها رو تغییر بدم.
ممنون میشم راهنمایی کنید :).
-
سلام
دوستانی که تجربه دارن تو این محیط چه کامپوننتی رو برای گزارش گیری پیشنهاد میدن ؟
2 نوع کامپوننت گزارش گیری تو لازاروس وجود داره که یکی از اونها به همراه خود لازاروس تو سیستم کپی میشه و فقط باید کامپایل و نصب بشه و دومی هم باید دانلود و سپس نصب بشه.
اولی LazReport هستش که اگه خواهید از اون استفاده کنید کافیه از منوی package گزینه ی install/unistall packages را انتخاب کنید و سپس در لیست کامپوننت های نصب نشده دنبال گزینه lazreport بگردید و بعد از انتخاب کلید install و بعد کلید save and rebuild را بزنید تا این کامپوننت به محیط لازاروس اضافه بشه.
دومی Fortesreport هستش که من خودم با این گزینه راحت تر هستم و بیشتر از این مورد استفاده می کنم.
باید اون رو از آدرس زیر دانلود کنید.
http://sourceforge.net/projects/fortes4lazarus/?source=directory (http://sourceforge.net/projects/fortes4lazarus/?source=directory)
سپس آن را از حالت فشرده خارج کنید و بعد از منوی package گزینه ی open package file را بزنید و فایل مورد نظر را با آن باز کنید و در پنجره جدید ابتدا گزینه کامپایل و سپس install را بزنید.
موفق باشی :)
-
عاقا من اومدم یه مثال ماشین حساب ساده رو با این جناب لازاروس محترم درست کنم، اما نمیدونم چطور باید نوع متغیر Edit ها رو تغییر بدم.
ممنون میشم راهنمایی کنید :).
منظورتون رو کامل متوجه نشدم ولی
برای تغییر مقدار داخل یک شی Edit باید خاصیت Text اون را مقدار دهی کنید. مثلا این یک نمونه :
Edit1.text:='Hello';
در صورتی که بخواهید مقداری به غیر یک رشته به آن اختصاص دهید باید حتما قبل از اینکار آن مقدار را به رشته ای تبدیل کنید. مثلا برای تغییر مقدار integer (عددی) به رشته از تابع Inttostr باید استفاده کنید. به این شکل :
Edit1.text:=Inttostr(123456);
برای تبدیل های مقادیر دیگه هم توابع خاص خودشون وجود داره.
یک نکته هم در آخر کار بگم : ماشین حساب به نظر برنامه خیلی ساده ای میاد ولی الگوریتم ها و پیچیدگی های خاص خودشو داره. البته اگه بخواهید ماشین حساب کاملی بنویسید.
امیدوارم تونسته باشم کمکت کنم. ;)
یا حق
-
سلام
با تشکر از پاسخ کاملتون
یه چندتا سوال اساسی داشتم که خیلی ذهنم رو مشغول کرده :
1. از کجا بفهمیم یه کامپوننت در چه سیستم عاملهایی قابل نصب و استفاده هست ؟؟
2. این کامپوننت های RTTI چه فرقی با کامپوننت های استاندارد دارن ؟
3. اون برگه آخر Object Inspector که اسمش Restricted هست کارش دقیقا چیه ؟ مخصوصا اون لوگو های بالاش که یسری اعداد هم دارن ؟
4. برای اینکه بتونم برا اندروید هم بعدا کامپایل بگیرم کار خاصی لازم نداره یا نکته مهمی رو نباید رعایت کنم؟ و در کل اگر بخوام برنامه ای که مینویسم رو بتونم با حداقل تغییرات تو سیستم عاملهای مختلف ( مخصوصا : ویندوز ، مک ، لینوکس و اندروید ) کامپایل بگیرم چه چیزایی رو باید رعایت کنم و از چه ابزارهایی استفاده کنم و از کدوما استفاده نکنم ؟
5. به نظر شما از چه دیتابیسی استفاده کنم که نیاز به نصب روی کامپیوتر کاربر نهایی رو نداشته باشه و کاملا کراس پلتفرم باشه . ترجیها هم از دستورات اس کیو ال پشتیبانی کنه ؟؟؟؟
پیش پیش از پاسخون صمیمانه تشکر میکنم
-
عاقا من اومدم یه مثال ماشین حساب ساده رو با این جناب لازاروس محترم درست کنم، اما نمیدونم چطور باید نوع متغیر Edit ها رو تغییر بدم.
ممنون میشم راهنمایی کنید :).
منظورتون رو کامل متوجه نشدم ولی
برای تغییر مقدار داخل یک شی Edit باید خاصیت Text اون را مقدار دهی کنید. مثلا این یک نمونه :
Edit1.text:='Hello';
در صورتی که بخواهید مقداری به غیر یک رشته به آن اختصاص دهید باید حتما قبل از اینکار آن مقدار را به رشته ای تبدیل کنید. مثلا برای تغییر مقدار integer (عددی) به رشته از تابع Inttostr باید استفاده کنید. به این شکل :
Edit1.text:=Inttostr(123456);
برای تبدیل های مقادیر دیگه هم توابع خاص خودشون وجود داره.
یک نکته هم در آخر کار بگم : ماشین حساب به نظر برنامه خیلی ساده ای میاد ولی الگوریتم ها و پیچیدگی های خاص خودشو داره. البته اگه بخواهید ماشین حساب کاملی بنویسید.
امیدوارم تونسته باشم کمکت کنم. ;)
یا حق
الان برای تست، یک برنامه درست کردم که توی اون، یک متغیر از نوع Integer به نام number ساختم. یک Label و Edit هم دارم. کارش فقط اینه که ورودی بگیره، به توان ۲ برسونه و بزاره تو خروجی ;D.
این قطعه کدی هست که برای این کار نوشتم :
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
number : integer;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text:=inttostr(number);
Label1.Caption:=Edit1.Text^2;
end;
end.
ولی بازم ارور میگیرم :(. ممنون میشم راهنمایی کنید :).
-
الان برای تست، یک برنامه درست کردم که توی اون، یک متغیر از نوع Integer به نام number ساختم. یک Label و Edit هم دارم. کارش فقط اینه که ورودی بگیره، به توان ۲ برسونه و بزاره تو خروجی ;D.
این قطعه کدی هست که برای این کار نوشتم :
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
number : integer;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text:=inttostr(number);
Label1.Caption:=Edit1.Text^2;
end;
end.
ولی بازم ارور میگیرم :(. ممنون میشم راهنمایی کنید :).
خب خیلی واضحه، گفته بودی لازاروس قبلا دوست پسرت بود ;D
اشکال از این خطه:
Label1.Caption:=Edit1.Text^2;
آخرش ^2 رو قرار دادی، برای چی این کار رو کردی؟ :o کار این علامت ^ چی هست؟
-
الان برای تست، یک برنامه درست کردم که توی اون، یک متغیر از نوع Integer به نام number ساختم. یک Label و Edit هم دارم. کارش فقط اینه که ورودی بگیره، به توان ۲ برسونه و بزاره تو خروجی ;D.
این قطعه کدی هست که برای این کار نوشتم :
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
number : integer;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text:=inttostr(number);
Label1.Caption:=Edit1.Text^2;
end;
end.
ولی بازم ارور میگیرم :(. ممنون میشم راهنمایی کنید :).
خب خیلی واضحه، گفته بودی لازاروس قبلا دوست پسرت بود ;D
اشکال از این خطه:
Label1.Caption:=Edit1.Text^2;
آخرش ^2 رو قرار دادی، برای چی این کار رو کردی؟ :o کار این علامت ^ چی هست؟
علامت ^ نماینده «فلان به توان فلان» هست. یعنی :
Folan^Folan
اما این پاسکال .... :-X
-
الان برای تست، یک برنامه درست کردم که توی اون، یک متغیر از نوع Integer به نام number ساختم. یک Label و Edit هم دارم. کارش فقط اینه که ورودی بگیره، به توان ۲ برسونه و بزاره تو خروجی ;D.
این قطعه کدی هست که برای این کار نوشتم :
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
number : integer;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text:=inttostr(number);
Label1.Caption:=Edit1.Text^2;
end;
end.
ولی بازم ارور میگیرم :(. ممنون میشم راهنمایی کنید :).
خب خیلی واضحه، گفته بودی لازاروس قبلا دوست پسرت بود ;D
اشکال از این خطه:
Label1.Caption:=Edit1.Text^2;
آخرش ^2 رو قرار دادی، برای چی این کار رو کردی؟ :o کار این علامت ^ چی هست؟
علامت ^ نماینده «فلان به توان فلان» هست. یعنی :
Folan^Folan
اما این پاسکال .... :-X
من نمیدونم توی پاسکال فرمول توان چی هست. البته میشه براش یه فانکشن نوشت که فکر میکنم خودش یه دستوری برای این کار داشته باشه...
ولی یه اشتباه خیلی ضایع توی کدی که نوشتی هست ;D ما به جای علامت ^ که برای رسوندن به توان هست، میخوایم توی این دستوری که جنابعالی دادید از علامت * برای ضرب کردن استفاده کنیم.
یعنی میشه این:
Edit1.Text:=inttostr(number);
Label1.Caption:=Edit1.Text*2;
حالا اگه این دستور رو بزنی با ارور مواجه میشی :D چرا؟ خب خیلی تابلویه. تو اول integer رو به string تبدیل کردی، حالا میخوای string رو ضربدر ۲ بکنی. نمیتونی ;)
باید عدد رو ضربدر ۲ بکنی و بعد تبدیلش کنی به string
یعنی میشه:
Edit1.Text:=inttostr(number*2);
Label1.Caption:=Edit1.Text;
-
الان برای تست، یک برنامه درست کردم که توی اون، یک متغیر از نوع Integer به نام number ساختم. یک Label و Edit هم دارم. کارش فقط اینه که ورودی بگیره، به توان ۲ برسونه و بزاره تو خروجی ;D.
این قطعه کدی هست که برای این کار نوشتم :
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
number : integer;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text:=inttostr(number);
Label1.Caption:=Edit1.Text^2;
end;
end.
ولی بازم ارور میگیرم :(. ممنون میشم راهنمایی کنید :).
خب خیلی واضحه، گفته بودی لازاروس قبلا دوست پسرت بود ;D
اشکال از این خطه:
Label1.Caption:=Edit1.Text^2;
آخرش ^2 رو قرار دادی، برای چی این کار رو کردی؟ :o کار این علامت ^ چی هست؟
علامت ^ نماینده «فلان به توان فلان» هست. یعنی :
Folan^Folan
اما این پاسکال .... :-X
من نمیدونم توی پاسکال فرمول توان چی هست. البته میشه براش یه فانکشن نوشت که فکر میکنم خودش یه دستوری برای این کار داشته باشه...
ولی یه اشتباه خیلی ضایع توی کدی که نوشتی هست ;D ما به جای علامت ^ که برای رسوندن به توان هست، میخوایم توی این دستوری که جنابعالی دادید از علامت * برای ضرب کردن استفاده کنیم.
یعنی میشه این:
Edit1.Text:=inttostr(number);
Label1.Caption:=Edit1.Text*2;
حالا اگه این دستور رو بزنی با ارور مواجه میشی :D چرا؟ خب خیلی تابلویه. تو اول integer رو به string تبدیل کردی، حالا میخوای string رو ضربدر ۲ بکنی. نمیتونی ;)
باید عدد رو ضربدر ۲ بکنی و بعد تبدیلش کنی به string
یعنی میشه:
Edit1.Text:=inttostr(number*2);
Label1.Caption:=Edit1.Text;
این مدیریت بحرانت تو حلقم ;D . الان فقط صفر چاپ میکنه ;D (یه بار امتحانش کن خودت). دقیقا به همین دلیل دلفی هم توی وین دنبال نکردم :|
-
الان برای تست، یک برنامه درست کردم که توی اون، یک متغیر از نوع Integer به نام number ساختم. یک Label و Edit هم دارم. کارش فقط اینه که ورودی بگیره، به توان ۲ برسونه و بزاره تو خروجی ;D.
این قطعه کدی هست که برای این کار نوشتم :
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
number : integer;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text:=inttostr(number);
Label1.Caption:=Edit1.Text^2;
end;
end.
ولی بازم ارور میگیرم :(. ممنون میشم راهنمایی کنید :).
خب خیلی واضحه، گفته بودی لازاروس قبلا دوست پسرت بود ;D
اشکال از این خطه:
Label1.Caption:=Edit1.Text^2;
آخرش ^2 رو قرار دادی، برای چی این کار رو کردی؟ :o کار این علامت ^ چی هست؟
علامت ^ نماینده «فلان به توان فلان» هست. یعنی :
Folan^Folan
اما این پاسکال .... :-X
من نمیدونم توی پاسکال فرمول توان چی هست. البته میشه براش یه فانکشن نوشت که فکر میکنم خودش یه دستوری برای این کار داشته باشه...
ولی یه اشتباه خیلی ضایع توی کدی که نوشتی هست ;D ما به جای علامت ^ که برای رسوندن به توان هست، میخوایم توی این دستوری که جنابعالی دادید از علامت * برای ضرب کردن استفاده کنیم.
یعنی میشه این:
Edit1.Text:=inttostr(number);
Label1.Caption:=Edit1.Text*2;
حالا اگه این دستور رو بزنی با ارور مواجه میشی :D چرا؟ خب خیلی تابلویه. تو اول integer رو به string تبدیل کردی، حالا میخوای string رو ضربدر ۲ بکنی. نمیتونی ;)
باید عدد رو ضربدر ۲ بکنی و بعد تبدیلش کنی به string
یعنی میشه:
Edit1.Text:=inttostr(number*2);
Label1.Caption:=Edit1.Text;
این مدیریت بحرانت تو حلقم ;D . الان فقط صفر چاپ میکنه ;D (یه بار امتحانش کن خودت). دقیقا به همین دلیل دلفی هم توی وین دنبال نکردم :|
پس میخوای چند چاپ کنه ???
Edit1.Text:=inttostr(number*2);
این بنظرت مقدارش چقدر میشه؟ ;D
مقدار پیشفرض نامبر، 0 هست. وقتی 0 رو ضربدر 2 بکنی، چه جوابی بدست میاد؟ میخوای بزنه ۵؟ ;D
باید برای نامبر، یه عدد تعریف کنی. الان صفر هست.
-
این مدیریت بحرانت تو حلقم ;D . الان فقط صفر چاپ میکنه ;D (یه بار امتحانش کن خودت). دقیقا به همین دلیل دلفی هم توی وین دنبال نکردم :|
سلام
عجله نکن محمد رضا ;)
شما هنوز به دستورات پایه ای پاسکال مسلط نشدی برا همین همش دستوراتت خطا داره و برنامه ات درست جواب نمیده.
تو دلفی ، لازاروس و در کل در پاسکال شما باید متغیر های هم نوع را با هم مرتبط کنید و در غیر این صورت باید به هم تبدیل بشن. مثلا رشته ای به عددی یا برعکس. در زمینه استفاده از ضرب و جمع و تقسیم و تفریق هم حتما باید قبلا مقدارتون به عددی تبدیل شده باشه. یعنی شا نمی توانید Etid1.text را که مقداری رشته ای است جمع یا تفریق کنید.
در مورد برنامه کدی که نوشته بودید باید بگم شما باید آن را به این کد تغییر دهید.
number:= strtoint(edit1.text)*2;
Label1.Caption:=inttostr(number);
-
این مدیریت بحرانت تو حلقم ;D . الان فقط صفر چاپ میکنه ;D (یه بار امتحانش کن خودت). دقیقا به همین دلیل دلفی هم توی وین دنبال نکردم :|
سلام
عجله نکن محمد رضا ;)
شما هنوز به دستورات پایه ای پاسکال مسلط نشدی برا همین همش دستوراتت خطا داره و برنامه ات درست جواب نمیده.
تو دلفی ، لازاروس و در کل در پاسکال شما باید متغیر های هم نوع را با هم مرتبط کنید و در غیر این صورت باید به هم تبدیل بشن. مثلا رشته ای به عددی یا برعکس. در زمینه استفاده از ضرب و جمع و تقسیم و تفریق هم حتما باید قبلا مقدارتون به عددی تبدیل شده باشه. یعنی شا نمی توانید Etid1.text را که مقداری رشته ای است جمع یا تفریق کنید.
در مورد برنامه کدی که نوشته بودید باید بگم شما باید آن را به این کد تغییر دهید.
number:= strtoint(edit1.text)*2;
Label1.Caption:=inttostr(number);
ممنون آقای شهریاری. الان رفرنسی در مورد این متغیرها دارید که در اختیارمون بزارید؟ شدیدا محتاجم :|.
-
این مدیریت بحرانت تو حلقم ;D . الان فقط صفر چاپ میکنه ;D (یه بار امتحانش کن خودت). دقیقا به همین دلیل دلفی هم توی وین دنبال نکردم :|
سلام
عجله نکن محمد رضا ;)
شما هنوز به دستورات پایه ای پاسکال مسلط نشدی برا همین همش دستوراتت خطا داره و برنامه ات درست جواب نمیده.
تو دلفی ، لازاروس و در کل در پاسکال شما باید متغیر های هم نوع را با هم مرتبط کنید و در غیر این صورت باید به هم تبدیل بشن. مثلا رشته ای به عددی یا برعکس. در زمینه استفاده از ضرب و جمع و تقسیم و تفریق هم حتما باید قبلا مقدارتون به عددی تبدیل شده باشه. یعنی شا نمی توانید Etid1.text را که مقداری رشته ای است جمع یا تفریق کنید.
در مورد برنامه کدی که نوشته بودید باید بگم شما باید آن را به این کد تغییر دهید.
number:= strtoint(edit1.text)*2;
Label1.Caption:=inttostr(number);
ممنون آقای شهریاری. الان رفرنسی در مورد این متغیرها دارید که در اختیارمون بزارید؟ شدیدا محتاجم :|.
رفرنس نمیخواد! همین بود که جناب شهریاری عرض فرمودند. ;D
تو دلفی ، لازاروس و در کل در پاسکال شما باید متغیر های هم نوع را با هم مرتبط کنید و در غیر این صورت باید به هم تبدیل بشن. مثلا رشته ای به عددی یا برعکس. در زمینه استفاده از ضرب و جمع و تقسیم و تفریق هم حتما باید قبلا مقدارتون به عددی تبدیل شده باشه. یعنی شا نمی توانید Etid1.text را که مقداری رشته ای است جمع یا تفریق کنید.
جمع و تفریق و ضرب، باید با اعداد انجام بشن. نمیشه عدد ۵ رو از یک string کم کرد، برای اینکه این کار رو بکنی، باید اون string رو تبدیل به integer بکنی:
StrToInt(str);
-
این مدیریت بحرانت تو حلقم ;D . الان فقط صفر چاپ میکنه ;D (یه بار امتحانش کن خودت). دقیقا به همین دلیل دلفی هم توی وین دنبال نکردم :|
سلام
عجله نکن محمد رضا ;)
شما هنوز به دستورات پایه ای پاسکال مسلط نشدی برا همین همش دستوراتت خطا داره و برنامه ات درست جواب نمیده.
تو دلفی ، لازاروس و در کل در پاسکال شما باید متغیر های هم نوع را با هم مرتبط کنید و در غیر این صورت باید به هم تبدیل بشن. مثلا رشته ای به عددی یا برعکس. در زمینه استفاده از ضرب و جمع و تقسیم و تفریق هم حتما باید قبلا مقدارتون به عددی تبدیل شده باشه. یعنی شا نمی توانید Etid1.text را که مقداری رشته ای است جمع یا تفریق کنید.
در مورد برنامه کدی که نوشته بودید باید بگم شما باید آن را به این کد تغییر دهید.
number:= strtoint(edit1.text)*2;
Label1.Caption:=inttostr(number);
ممنون آقای شهریاری. الان رفرنسی در مورد این متغیرها دارید که در اختیارمون بزارید؟ شدیدا محتاجم :|.
رفرنس نمیخواد! همین بود که جناب شهریاری عرض فرمودند. ;D
تو دلفی ، لازاروس و در کل در پاسکال شما باید متغیر های هم نوع را با هم مرتبط کنید و در غیر این صورت باید به هم تبدیل بشن. مثلا رشته ای به عددی یا برعکس. در زمینه استفاده از ضرب و جمع و تقسیم و تفریق هم حتما باید قبلا مقدارتون به عددی تبدیل شده باشه. یعنی شا نمی توانید Etid1.text را که مقداری رشته ای است جمع یا تفریق کنید.
جمع و تفریق و ضرب، باید با اعداد انجام بشن. نمیشه عدد ۵ رو از یک string کم کرد، برای اینکه این کار رو بکنی، باید اون string رو تبدیل به integer بکنی:
StrToInt(str);
این که همون پست آقای شهریاری بود ;). منظور من سایر انواع متغیر بود مثل Float, Double و ...!
-
تو پست های قبلی لینک این کتاب رو گذاشته بودم :
http://ubuntuone.com/67MUEH9ASIr9ecHoQQZfR8 (http://ubuntuone.com/67MUEH9ASIr9ecHoQQZfR8)
این مطالب توسط متاز عبدل عظیم از سودان نوشته شده و عنوانش شروع برنامه نویسی با پاسکال شی گرا است. کتاب خوبیه و برای شروع خیلی کمک می کنه. شاید اگه فرصتی پیدا کنم بتونم ترجمه اون رو به فارسی برگردونم.
موفق باشید. :)
-
سلام
با تشکر از پاسخ کاملتون
یه چندتا سوال اساسی داشتم که خیلی ذهنم رو مشغول کرده :
1. از کجا بفهمیم یه کامپوننت در چه سیستم عاملهایی قابل نصب و استفاده هست ؟؟
2. این کامپوننت های RTTI چه فرقی با کامپوننت های استاندارد دارن ؟
3. اون برگه آخر Object Inspector که اسمش Restricted هست کارش دقیقا چیه ؟ مخصوصا اون لوگو های بالاش که یسری اعداد هم دارن ؟
4. برای اینکه بتونم برا اندروید هم بعدا کامپایل بگیرم کار خاصی لازم نداره یا نکته مهمی رو نباید رعایت کنم؟ و در کل اگر بخوام برنامه ای که مینویسم رو بتونم با حداقل تغییرات تو سیستم عاملهای مختلف ( مخصوصا : ویندوز ، مک ، لینوکس و اندروید ) کامپایل بگیرم چه چیزایی رو باید رعایت کنم و از چه ابزارهایی استفاده کنم و از کدوما استفاده نکنم ؟
5. به نظر شما از چه دیتابیسی استفاده کنم که نیاز به نصب روی کامپیوتر کاربر نهایی رو نداشته باشه و کاملا کراس پلتفرم باشه . ترجیها هم از دستورات اس کیو ال پشتیبانی کنه ؟؟؟؟
پیش پیش از پاسخون صمیمانه تشکر میکنم
:?:
-
سلام
با تشکر از پاسخ کاملتون
یه چندتا سوال اساسی داشتم که خیلی ذهنم رو مشغول کرده :
1. از کجا بفهمیم یه کامپوننت در چه سیستم عاملهایی قابل نصب و استفاده هست ؟؟
2. این کامپوننت های RTTI چه فرقی با کامپوننت های استاندارد دارن ؟
3. اون برگه آخر Object Inspector که اسمش Restricted هست کارش دقیقا چیه ؟ مخصوصا اون لوگو های بالاش که یسری اعداد هم دارن ؟
4. برای اینکه بتونم برا اندروید هم بعدا کامپایل بگیرم کار خاصی لازم نداره یا نکته مهمی رو نباید رعایت کنم؟ و در کل اگر بخوام برنامه ای که مینویسم رو بتونم با حداقل تغییرات تو سیستم عاملهای مختلف ( مخصوصا : ویندوز ، مک ، لینوکس و اندروید ) کامپایل بگیرم چه چیزایی رو باید رعایت کنم و از چه ابزارهایی استفاده کنم و از کدوما استفاده نکنم ؟
5. به نظر شما از چه دیتابیسی استفاده کنم که نیاز به نصب روی کامپیوتر کاربر نهایی رو نداشته باشه و کاملا کراس پلتفرم باشه . ترجیها هم از دستورات اس کیو ال پشتیبانی کنه ؟؟؟؟
پیش پیش از پاسخون صمیمانه تشکر میکنم
:?:
سلام
بعضی از سوالاتتون خیلی مشکل بودن و تا به حال بهشون فکر نکرده بودم برا همین ممکنه جواب کاملی براشون نداشته باشم اگه کسی از دوستان اطلاعات بیشتری داشت جواب های منو اصلاح کنه.
1- سوال اولتون از پایه اشتباه است. کامپوننت تو سیستم عامل نصب نمیشه بلکه تو IDE یا همون محیط مجتمع توسعه (مثل دلفی یا لازاروس) نصب میشه و ربطی به سیستم عامل نداره. البته چندان بی ربط هم نیستن :P .کامپوننت ها در حقیقت کدها و قسمت های ویژالی هستن که به خاطر استفاده زیاد به این شکل در میان تا راحت تر و سریع تر استفاده بشن. یعضی از کامپوننت ها به واسطه کدهایی که دارن یا قابلیت هایی که در قسمت ویژال خود دارند ممکنه مختص یک سیستم عامل باشن و تو بقیه اونها به درستی کار نکنند. کامپوننت هایی که در کتابخانه LCL لازاروس وجود دارند از نوع مستقل از سکو هستن و مشکلی با سیستم عامل ندارند.(هرچند مواردی دیدم که کامپوننت نمیتونه از همه قابلیت هاش در بعضی از سیستم عامل ها استفاده بکنه). بقیه کامپوننت ها هم معمولا خودشون در سایت سازنده مشخص می کنند که مستقل از سکو هستن یا مختص یک سیستم عامل خاص.
2- این مورد رو تا به حال بهش فکر نکرده بودم و زیاد برخوردی نداشتم. با این حال توضیح ویکی لازاروس در مورد این کامپوننت ها ممکنه کمی کمکتون کنه : http://wiki.lazarus.freepascal.org/RTTI_controls (http://wiki.lazarus.freepascal.org/RTTI_controls)
3-این یکی رو هم دیده بودم ولی کاری به کارش نداشتم. فکر می کنم این برگه محدودیت های اون شی انتخاب شده را برای سیستم عامل های مختلف و به طور کلی بیان میکنه ولی بازم مطمئن نیستم. ???
4- آندروید قضیش با بقیه سیستم عامل ها خیلی فرق میکنه و نمیشه برنامه رو برای همه و اون با هم طراحی کرد. آندروید محدودیت ها و قابلیت های خودشو داره و با سیستم عامل های دسکتاپ خیلی متفاوته. برای اینکه بتونید برنامه ای که نوشتین تو بقیه سیستم عامل ها با کمترین تغییرات اجرا کنید بهتره تا حد امکان از کامپوننت هایی استفاده کنید که تو همه سیستم عامل ها قابلیت کار داشته باشن. نکته مهم اینجاست که همیشه وقتی یک برنامه برای چند سیستم عامل طراحی میشه دلیل بر این نیست که اونو تو محیطی شبیه به لازاروس که مستقل از سکو هست ساختن و برای اونها تولید کردن. بعضی شرکت های بزرگ محصولاتشون رو برای سیستم عامل های مختلف با الگوریتم و محیط یکسان طراحی می کنند. یعنی هسته برنامه یکی است ولی امکانات و پوسته اون از روش های مختلف تو سیستم عامل های مختلف بدست میاد. به همین دلیل است که برخی برنامه ها نسخه یک سیستم عاملشون خیلی خوب و بی نقص کار میکنه ولی همون تو یک سیستم عامل دیگه مواقعی دچار خطا میشه.
5- من برای این مورد SQLite رو پیشنهاد می کنم. تو استفاده از اون در ویندوز و لینوکس خیلی راحت بودم و برنامه ام با کد مشترک تو هر دو سیستم عامل با این دیتابیس کار میکنه. از دستورات SQL هم پشتیبانی می کنه و نیازی به نصب نداره و مستقل از سکو هستش. البته محدودیت های خودشو داره ولی در مجموع گزینه خیلی مناسبیه.
Firebrid هم شنیدم گزینه خیلی خوبی هستش که همین قابلیت ها رو داره ولی هنوز تجربش نکردم.
موفق باشید. ;)
-
سلام
بعضی از سوالاتتون خیلی مشکل بودن و تا به حال بهشون فکر نکرده بودم برا همین ممکنه جواب کاملی براشون نداشته باشم اگه کسی از دوستان اطلاعات بیشتری داشت جواب های منو اصلاح کنه.
1- سوال اولتون از پایه اشتباه است. کامپوننت تو سیستم عامل نصب نمیشه بلکه تو IDE یا همون محیط مجتمع توسعه (مثل دلفی یا لازاروس) نصب میشه و ربطی به سیستم عامل نداره. البته چندان بی ربط هم نیستن :P .کامپوننت ها در حقیقت کدها و قسمت های ویژالی هستن که به خاطر استفاده زیاد به این شکل در میان تا راحت تر و سریع تر استفاده بشن. یعضی از کامپوننت ها به واسطه کدهایی که دارن یا قابلیت هایی که در قسمت ویژال خود دارند ممکنه مختص یک سیستم عامل باشن و تو بقیه اونها به درستی کار نکنند. کامپوننت هایی که در کتابخانه LCL لازاروس وجود دارند از نوع مستقل از سکو هستن و مشکلی با سیستم عامل ندارند.(هرچند مواردی دیدم که کامپوننت نمیتونه از همه قابلیت هاش در بعضی از سیستم عامل ها استفاده بکنه). بقیه کامپوننت ها هم معمولا خودشون در سایت سازنده مشخص می کنند که مستقل از سکو هستن یا مختص یک سیستم عامل خاص.
...
سلام
ممنون از پاسختون ، همینقدر که هر چی میدونستید گفتید خیلی عالیه . سوال اولم اشتباه نیست ، اشتباه برداشت کردین ، شایدم من بد پرسیدم . منظورم این بود که فرض کنید الان شما توی ویندوز یک کامپوننت رو نصب می کنید ، حالا از کجا میشه فهمید این کامپوننت نصب شده توی چه سیستم عاملهای دیگه ای هم قابلیت نصب روی لازاروس رو داره . من دلفی کارم خیلی وقت نیست دارم با این لازاروس ور میرم و تنها سوالاتی که برام پیش اومده همینا بود وگرنه خیلی از مواردش شبیه دلفیه .
بازم ممنون
-
سلام
صفحه اصلی جدید سایت لازاروس بارگذاری شده \\:D/ \\:D/ \\:D/
برای مشاهده به آدرس زیر بروید.
http://www.lazarus.freepascal.org (http://www.lazarus.freepascal.org)
-
سلام به جناب شهریاری و دوستان گرامی منم از جناب شهریاری تشکر می کنم به نوبه خودم
من این تاپیک رو قدم به قدم دارم پیش میرم
کامپوننت fsatrreport رو دانلود کردم و میخام نصبش کنم اما هیچ رقمه نمیشه (من دلفی کار هستم و از وقتی که تاپیک شما رو خوندم() کمتر از یک هفته ) برنامه هامو می خام با لازاروس بنویسم )
ممنون میشم نحوه نصب fast report رو بگی
در ضمن پایگاه داده توی همون صفحه اول هم دانلود نشد (جهت اطلاع)
توی wiki دنبال کامپوننتی میگشتم تا با پورت سریال ارتباط برقرار کنم تا مث دلفی دیتا جا به جا کنم اما نتیجه نداد اگه یه کامپوننت برا پورت سریال(مث comport تو دلفی) داری ممنون میشم عمومی کنیش
-
سلام به جناب شهریاری و دوستان گرامی منم از جناب شهریاری تشکر می کنم به نوبه خودم
من این تاپیک رو قدم به قدم دارم پیش میرم
کامپوننت fsatrreport رو دانلود کردم و میخام نصبش کنم اما هیچ رقمه نمیشه (من دلفی کار هستم و از وقتی که تاپیک شما رو خوندم() کمتر از یک هفته ) برنامه هامو می خام با لازاروس بنویسم )
ممنون میشم نحوه نصب fast report رو بگی
در ضمن پایگاه داده توی همون صفحه اول هم دانلود نشد (جهت اطلاع)
توی wiki دنبال کامپوننتی میگشتم تا با پورت سریال ارتباط برقرار کنم تا مث دلفی دیتا جا به جا کنم اما نتیجه نداد اگه یه کامپوننت برا پورت سریال(مث comport تو دلفی) داری ممنون میشم عمومی کنیش
سلام
خواهش می کنم ;) من کار خاصی نمی کنم. زکات علم نشر دادن اون هست و این تنها کاریه که از دست من بر میاد و البته ممکنه تو این راه اشتباه هایی هم داشته باشم پس فکر نکنید من خدای برنامه نویسی با لازاروس هستم.(البته امیدوارم اگه جایی رو اشتباه رفتم دوستان دیگه منو از گمراهی در بیارند)
در مورد مواردی که ذکر کرده بودید:
1- fastreport ما تو لازاروس fastreport نداریم ولی ابزارهایی داریم که شباهت زیادی به fastreport و Quickreport تو دلفی دارند اونها هم FortesReport و lazreport است. نصب FortesReport زیاد مشکل نیست و به راحتی کامپایل و نصب میشه. به آدرس http://fortes4lazarus.sourceforge.net/ (http://fortes4lazarus.sourceforge.net/) مراجعه کنید و فایل آن را دانلود کنید بعد در محلی از رایانه اون را از حالت فشرده خارج کنید. سپس با لازاروس از منوی package گزینه ی Open package file را انتخاب کنید و در اون محل فایل مورد نظر در پوشه FortesReport را باز کنید. پنجره جدیدی باز می شود که باید ابتدا کلید Compile را بزنید و بعد از تکمیل کلید USE و install را کلیک کنید و منتظر نصب و اجرای مجدد لازاروس بمانید تا با کامپوننت جدید دوباره اجرا شود.
2- در مورد ابزار برقراری ارتباط با پایگاه داده که تو صفحه اول گذاشتم هم باید بگم اون مال خیلی قدیما بود که نسخه stable این کامپوننت کمی مشکل داشت ولی الان نسخه stable خیلی خوب کار میکنه و میتونید از اینجا http://sourceforge.net/projects/zeoslib/ (http://sourceforge.net/projects/zeoslib/) اون رو دانلود کنی. اگه مشکلی بود بگو تا فایل خودمو یه جا آپلود کنم و لینکشو بزارم برای دانلود.
3- در مورد ابزار برقراری ارتباط از طریق پورت COM باید بگم من خودم هنوز تازه دارم با این مورد آشنا می شم ولی کامپوننت 5dpo رو نصب کردم و به نظرم بتونه به خوبی با پورت COM کار کنه. لینک دانلودش اینجا http://wiki.freepascal.org/5dpo (http://wiki.freepascal.org/5dpo) پیدا میشه.
موفق باشید :)
-
سلام
من یه کامپوننت(5dpo) دریافت کردم از همون سایت بالایی در مورد پورت کام اما فقط باهاش میشه دریافت کرد چون توی رویداد هاش فقط(و فقط) rx وجود داره و هیچ رویداد دگه ای وجود نداره
اما یه کامپوننت دیگه هست به نام comportlib که وقتی دکمه compile رو میزنی تا کامپایل کنه تعداد زیادی پیغام خطای :
1. Error: This kind of property can't be published
2. Error: No property found to override
رو نمایش میده
برای حلش چیکار باید بکنم؟
-
سلام
من یه کامپوننت(5dpo) دریافت کردم از همون سایت بالایی در مورد پورت کام اما فقط باهاش میشه دریافت کرد چون توی رویداد هاش فقط(و فقط) rx وجود داره و هیچ رویداد دگه ای وجود نداره
اما یه کامپوننت دیگه هست به نام comportlib که وقتی دکمه compile رو میزنی تا کامپایل کنه تعداد زیادی پیغام خطای :
1. Error: This kind of property can't be published
2. Error: No property found to override
رو نمایش میده
برای حلش چیکار باید بکنم؟
سلام
دریافت و یا ارسال داده به رویداد ربطی نداره. شما زمانی که پورت رو باز کنید هم میتونید بخونید و هم بنویسید. این رویداد فقط زمانی رخ میده که اطلاعات روی پورت نوشته بشه و زمان خوندن چون خود برنامه نویس داره روی پورت اطلاعات ارسال میکنه رویدادی اتفاق نمی یوفته. یک مثال تو پوشه اون هست که کمی مشکل داره ولی میتونه کمک خوبی باشه برای شروع کار.
اون کامپوننت دوم رو من تا حالا ندیدم. ممکنه با نسخه های قدیمی FPC و Lazarus هماهنگ باشه و برای نسخه های جدید به روز رسانی نشده باشه.
اطلاعات کاملی برای ارتباط با انواع پورت ها رو میتونی تو صفحه ویکی لازاروس ببینی :
http://wiki.lazarus.freepascal.org/Hardware_Access (http://wiki.lazarus.freepascal.org/Hardware_Access)
-
سلام امیر جان
همه چیز عالی و در حد کمال بود. ممنون
من هم چندین ساله با دلفی تحت ویندوز کار می کنم اما این روزها خیلی از پروژه هایی که میاد رو میشه با سخت افزارهایی دلچسبتر از PC، مثل تبلت و اسمارت فون و Embedded بردهای آماده پیاده سازی کرد.
چندین ماه هست که سعی کردم با جاوا و اندروید کار کنم اما چندان دلچسب نبود. یعنی کسی که با دلفی کار کنه اصلا رقبت نمی کنه از این کدهای بی نظم و ترتیب بنویسه.
شرکت Embarcadero هم قول داده بود در میانه سال ۲۰۱۳ دلفی با خروجی apk بیرون بده اما خبری نشد.
خلاصه انگار همه عوامل داره مجبورم می کنه بیام سراغ لینوکس. هر چند از بی نظمی و پراکندگی در این سیستم عامل مردم نهاد راضی نیستم، اما انحصارطلبی گوگل در انتشار اندروید و نیز Real time نبودن اون، چاره ای جز لینوکس نمی گذاره.
با لازاروس وقتی آشناشدم که پارسال ویندوز ۶۴ بیتی نصب کردم و دلفی XE ای که داشتم ۳۲ بود. اتفاقی لازاروس رو توی نت پیدا کردم و نصب کردم. باهاش کلی ور رفتم و سعی کردم کامپونت پورت سریال و ریپورت و ... روش نصب کنم اما کمی دردسر داشت و بخاطر یه پروژه مجبور شدم بزارمش کنار و دلفی XE3 نصب کنم که خودش FastReport و برنامه های قبلی ام رو هم بدون مشکل باز می کنه.
پرچونگی نکنم. دیشب صفحه زیر رو دیدم:
http://wiki.freepascal.org/Lazarus_on_Raspberry_Pi
برد RaspberryPi رو احتمال زیاد می شناسی اما برای دوستان میگم که این یه کامپیوتر بسیار کوچک (اندازه کارت اعتباری) با هسته آرم ۱۱ و کلی درگاه هست که با اندکی لوازم جانبی براحتی می تونه جای یه PC رو در بسیاری از پروژه ها بگیره. یکی از شرکت های وطن هم اونو با قیمت تقریبا مناسب وارد کرده و اینترنتی می فروشه.
کسانی که با دنیای Embedded از قدیم تا بحال آشنا هستند می دونند که یکی از بزرگترین چالشهای بردهای ارزون اینه که که نمی شه بصورت native توشون برنامه نویسی کرد. حداقل زبانهای برنامه نویسی ویژوال مثل دلفی و C# و ... روی اکثر این بردها نصب نمیشه. یعنی باید برنامه رو روی یه کامپیوتر دیگه نوشت و کمپایل کرد و تمام کتابخونه های لازم رو جمع آوری کرد و با یه سیستم عامل مثل WinCE جمع کرد و ریخت توی برد. تازه با کلی دردسر.
من اولین باره دیدم که میشه توی یه برد ۴۰ دلاری native برنامه ویژوال بنویسیم! شاید دوستان دیده باشند و منو هم مطلع کنند.
بهرحال قدرت و رایگان بودن لازاروس، سادگی و خوانایی زبان پاسکال، برد بسیار ارزون و پشتیانی شده RaspberryPi، کوچکی و بی سر و صدا بودن این برد (و بردهای مشهابه اون) نسبت به PC های X86 و مهمتر از همه native نوشتن برنامه بدون نیاز به PC دیگر باعث شد بیام سراغ لینوکس.
خواهشمندم دوستان لینوکس باز منو در ورود به لینوکس راهنمایی کنند. البته اگه نکته ای برای این کاربرد خاص داره.
-
سلام امیر جان
سلام
به دنیای متن باز و بی انتهای لینوکس خوش اومدی \\:D/
تو این زمینه با شما به شدت موافقم و حتی چندتا مورد کاری برام پیش اومده بود که قصد داشتم تو اونها از این برد ها با استفاده از لازاروس بهره ببرم. ولی هنوز چنتا مشکل سر این راه وجود داره که قابل حل هستن.
اولیش قیمت این بورد ها هنوز باید پایین تر بیاد تا برای مصرف کننده دردسر هاش به صرفه اقتصادیش نچربه.
دوم اینکه کامپوننت های پرینت لازاروس برای کارکتر های فارسی در گنو/لینوکس کمی مشکل دارند که با توجه به سایت اعلام خطا لازاروس اونها در نسخه آینده رفع خواهند شد. با این حال فعلا بر روی این بورد ها گنو/لینوکس نصبه و امکان ارسال پرینت با برنامه های نوشته شده با لازاروس به صورت فارسی وجود نداره.
این دو مورد رو گفتم چون چند وقت پیش یکی از دوستانم که شرکتش تو کار سیستم های نوبت دهی است با من تماس گرفت و برنامه ای خواست که برگه نوبت چاپ کنه. من برنامه رو براش نوشتم و متوجه شدم در اون قسمت ایستاده که مشتری دکمه میزنه و سیستم بهش پرینت نوبت میده یک مادربرد و پاور و هارد و ... جاسازی کرده و برنامه منو اونجا ران میکنه.
هرچند این قطعات کارکرده و دست دوم تهیه شده بود و حدود 300 تومن براش تموم شده بود ولی اگه از این بورد ها استفاده می کرد هزینه اش کمتر می شد و جای کمی میگرفت و نیاز به پاور و هارد هم نداشت و در آخر برنامه من بدون تغییر میتونست تو اون سیستم عامل هم به راحتی کار کنه ولی هنوز اون 2 مشکل وجود داشت.
با این حال به آینده این بورد ها و لازاروس خیلی خوش بین هستم و فکر می کنم پشرفت های بیشتری در انتظار این محیط توسعه و برنامه نویس های اون خواهد بود.
-
سپاس امیر جان
به نظرم قیمت این بردها کم و بیش مناسبه. در واقع قیمتشون معادل پاور خوب یک PC هستند.
دیباگ کردن لازاروس با فیدبک و همفکری هم نباید کار زمانبری باشه.
تنها چیزی که من نمی دونم ساختار کرنل لینوکسه. بیشتر کارهایی که من باهاش سر و کار دارم نیاز به سرعت پولینگ بالا دارند. ویندوز در این مورد بسیار ضعیفه. مثلا برای HID من نتونستم سریعتر از 1 میلی ثانیه بدست بیارم. برای ترسیم گراف هم سرعت در همین حده. ویندوز امکان دسترسی به اینتراپت ها رو هم کاملا بسته. بزرگترین مشکل ویندوز هزاران تردی هست که داره توش اجرا میشه. در حالیکه بسیاری از اونها برای یه دستگاه خاص نیاز نیست.
آیا لینوکس در این مورد بهتر هست؟ اصلا میشه بعنوان یک سیستم عامل Real Time روش حساب باز کرد؟ آیا اینتراپت ها در اون قابل دسترس هستند؟ اولویت بندی تردها در لینوکس واقعیه یا مثل ویندوز مجازیه؟ آیا لینوکس روی ARM سرعت کافی داره؟ یا از قابلیت های RISC هیچ بهره ای نبرده؟
-
سپاس امیر جان
به نظرم قیمت این بردها کم و بیش مناسبه. در واقع قیمتشون معادل پاور خوب یک PC هستند.
دیباگ کردن لازاروس با فیدبک و همفکری هم نباید کار زمانبری باشه.
تنها چیزی که من نمی دونم ساختار کرنل لینوکسه. بیشتر کارهایی که من باهاش سر و کار دارم نیاز به سرعت پولینگ بالا دارند. ویندوز در این مورد بسیار ضعیفه. مثلا برای HID من نتونستم سریعتر از 1 میلی ثانیه بدست بیارم. برای ترسیم گراف هم سرعت در همین حده. ویندوز امکان دسترسی به اینتراپت ها رو هم کاملا بسته. بزرگترین مشکل ویندوز هزاران تردی هست که داره توش اجرا میشه. در حالیکه بسیاری از اونها برای یه دستگاه خاص نیاز نیست.
آیا لینوکس در این مورد بهتر هست؟ اصلا میشه بعنوان یک سیستم عامل Real Time روش حساب باز کرد؟ آیا اینتراپت ها در اون قابل دسترس هستند؟ اولویت بندی تردها در لینوکس واقعیه یا مثل ویندوز مجازیه؟ آیا لینوکس روی ARM سرعت کافی داره؟ یا از قابلیت های RISC هیچ بهره ای نبرده؟
سلام
حق با شماست و منم حتی با قیمت فعلی این بوردها رو پیشنهاد می کنم فقط یکم زمان میبره تا جای خودشون رو تو بازار باز کنن.
در مورد سرعت اجرا و پاسخ نرم افزار هم مطمئنا گنو/لینوکس خیلی سریع تر از ویندوز خواهد بود که یکی از دلایلش هم همون اجرای بساری ترد یا سرویس هایی که در برخی موارد مورد نیاز نیستند هستش. در مورد اینتراپت ها و اجرای روی ARM چیزهایی تو اینترنت خوندم ولی هنوز عملی با اون کار نکردم ولی میدونم میشه و اگه روزی مجبور باشم میرم سراغش. در مورد باقی سوال ها هم باید یکی از اساتید لینوکسی جواب بده ولی فکر می کنم همشون قابل انجام باشن.
موفق و پیروز باشید.
یا حق ;)
-
سلام :)
یه مدتی نبودم (سرم خیلی شلوغ بود) شرمنده :oops:
امروز با چنتا خبر اومدم.
اول اینکه نسخه جدید لازاروس منتشر شده :
Lazarus 1.0.12 \\:D/
لینک دانلود : http://sourceforge.net/projects/lazarus (http://sourceforge.net/projects/lazarus)
اشکالات و نواقص رفع شده در این ویرایش : http://wiki.lazarus.freepascal.org/Lazarus_1.0_fixes_branch#Fixes_for_1.0.12_.28Merged.29 (http://wiki.lazarus.freepascal.org/Lazarus_1.0_fixes_branch#Fixes_for_1.0.12_.28Merged.29)
;)
خبر بعدی اینکه دارم سعی می کنم اگه زمانش فراهم بشه کتاب شروع برنامه نویسی با پاسکال شی گرا رو به فارسی ترجمه کنم. این کتاب الان در دو نسخه انگلیسی و عربی موجوده و قبلا لینک نسخه انگلیسی اون رو تو پست های قبلی گذاشته بودم.
هنوز زیاد جلو نرفتم ولی فعلا دو صفحه رو شروع کردم و کار به آرامی جلو میره.
نسخه انگلیسی : http://ubuntuone.com/67MUEH9ASIr9ecHoQQZfR8 (http://ubuntuone.com/67MUEH9ASIr9ecHoQQZfR8)
نسخه فارسی تا این لحظه : http://ubuntuone.com/6F3hOE0zi1NcSAPnOzHqNG (http://ubuntuone.com/6F3hOE0zi1NcSAPnOzHqNG)
امیدوارم کار به سرانجام برسه :D
یا حق ;)
-
سلام :)
یه مدتی نبودم (سرم خیلی شلوغ بود) شرمنده :oops:
امروز با چنتا خبر اومدم.
اول اینکه نسخه جدید لازاروس منتشر شده :
Lazarus 1.0.12 \\:D/
لینک دانلود : http://sourceforge.net/projects/lazarus (http://sourceforge.net/projects/lazarus)
اشکالات و نواقص رفع شده در این ویرایش : http://wiki.lazarus.freepascal.org/Lazarus_1.0_fixes_branch#Fixes_for_1.0.12_.28Merged.29 (http://wiki.lazarus.freepascal.org/Lazarus_1.0_fixes_branch#Fixes_for_1.0.12_.28Merged.29)
;)
خبر بعدی اینکه دارم سعی می کنم اگه زمانش فراهم بشه کتاب شروع برنامه نویسی با پاسکال شی گرا رو به فارسی ترجمه کنم. این کتاب الان در دو نسخه انگلیسی و عربی موجوده و قبلا لینک نسخه انگلیسی اون رو تو پست های قبلی گذاشته بودم.
هنوز زیاد جلو نرفتم ولی فعلا دو صفحه رو شروع کردم و کار به آرامی جلو میره.
نسخه انگلیسی : http://ubuntuone.com/67MUEH9ASIr9ecHoQQZfR8 (http://ubuntuone.com/67MUEH9ASIr9ecHoQQZfR8)
نسخه فارسی تا این لحظه : http://ubuntuone.com/4nNVg4ioR6uVLERIyFBace (http://ubuntuone.com/4nNVg4ioR6uVLERIyFBace)
امیدوارم کار به سرانجام برسه :D
یا حق ;)
سلام. امیدوارم کامل ترجمه بشه. همین دو صفحش رو که خوندم خیلی خوشم اومد. خوب ترجمه شده بود ;)
اما من یه سوال خیلی بی ربط دارم ;D شما زبان انگلیسی رو از کجا، چجوری یاد گرفتید؟ ???
من چیکار میتونم بکنم که انگلیسیم در حدی بشه که مثلا بتونم همین کتاب رو ترجمه بکنم؟ :D
-
سلام امیر جان
امیدوارم خسته نباشی
به نظر من یه برنامه نویس حتما باید با زبان انگلیسی آشنایی داشته باشه و استفاده از ترجمه باعث تضعیف یادگیری زبان و محدودیت منابع در آینده خواهد شد.
در کار واقعی این کتابها نیستند که منابع اصلی اند بلکه منابع انبوهی که در نت هست می تونه راهکارهای مناسبتری ارائه بده.
همینکه ما تصمیم بگیریم از منابع انگلیسی استفاده کنیم کار تمام است. کافیست شش ماه طاقت بیاریم و با استفاده از دیکشنری از منابع اصلی برای پیشبرد کارهامون استفاده کنیم. اگه دانشجو باشیم برای واحدهای درسی، اگه کارشناس باشیم برای استفاده از منابع و اطلاعات.
بعد از شش ماه می بینید به ندرت به دیکشنری نیاز دارید و بعد از یکی دو سال اصلا بهش نیاز نخواهید داشت و می بینید که انگلیسی و فارسی براتون یکسان خواهد شد.
فقط یادتون باشه که بی دلیل سراغ یادگیری زبان یا هر چیز دیگه ای نرید. زبان دانش نیست بلکه یکی از ابزارهای کسب دانش است. بنابراین نباید بی دلیل سراغش رفت.
-
شما زبان انگلیسی رو از کجا، چجوری یاد گرفتید؟ ???
من چیکار میتونم بکنم که انگلیسیم در حدی بشه که مثلا بتونم همین کتاب رو ترجمه بکنم؟ :D
سلام
من نه کلاس رفتم نه سی دی گرفتم نه آموزشگاه رفتم نه ....
فقط E-Book های زبان اصلی و صفحات اینترنتی انگلیسی مربوط به این قضیه رو سعی کردم بخونم و مفهوم اونها رو درک کنم. تکرار و انجام این کار به مرور زمان باعث میشه تو این زمینه توانایی خوبی بدست بیارید. شاید اگه یک کتاب روانشناسی یا پزشکی باشه هیچی ازش نفهمم ولی الان متون مربوط به کامپیوتر و اینترنت و برنامه نویسی و ... رو خیلی راحت درک می کنم. البته بی نیاز از دیکشنری و مترجم نیستم و از اونها هم کمک زیادی می گیرم.
ترجمه این کتاب هم زیاد مشکل نیست و کلمات خیلی سختی نداره فقط مسئله زمان هستش که خیلی کم گیر میاد ;D
به نظر من یه برنامه نویس حتما باید با زبان انگلیسی آشنایی داشته باشه و استفاده از ترجمه باعث تضعیف یادگیری زبان و محدودیت منابع در آینده خواهد شد.
در کار واقعی این کتابها نیستند که منابع اصلی اند بلکه منابع انبوهی که در نت هست می تونه راهکارهای مناسبتری ارائه بده.
همینکه ما تصمیم بگیریم از منابع انگلیسی استفاده کنیم کار تمام است. کافیست شش ماه طاقت بیاریم و با استفاده از دیکشنری از منابع اصلی برای پیشبرد کارهامون استفاده کنیم. اگه دانشجو باشیم برای واحدهای درسی، اگه کارشناس باشیم برای استفاده از منابع و اطلاعات.
بعد از شش ماه می بینید به ندرت به دیکشنری نیاز دارید و بعد از یکی دو سال اصلا بهش نیاز نخواهید داشت و می بینید که انگلیسی و فارسی براتون یکسان خواهد شد.
فقط یادتون باشه که بی دلیل سراغ یادگیری زبان یا هر چیز دیگه ای نرید. زبان دانش نیست بلکه یکی از ابزارهای کسب دانش است. بنابراین نباید بی دلیل سراغش رفت.
سلام
از اونجایی که زبان های برنامه نویسی انگلیسی هستند برنامه نویس ها با این زبان تا حدودی آشنایی دارند. در مورد استفاده از منابع زبان اصلی و اینترنتی با شما موافقم ولی در سطح حرفه ای. یک برنامه نویس حرفه ای نیازی به کتاب های آموزشی اصول و پایه های زبان برنامه نویسی خودش نداره (چه فارسی و چه انگلیسی) و بیشتر نیاز خودش رو از تکنیک ها و الگوریتم های منابع انگلیسی و اینترنت پیدا میکنه.
ولی کاربران تازه کار و کسانی که قصد ورود به این زمینه رو دارند نمیتونن همه مطالب رو از منابع انگلیسی به خوبی درک کنند و براشون در قدم اول کمی مشکله و ممکنه بعد از چند صفحه کلا بی خیال برنامه نویسی بشن. اگه واقعا تو کارشون جدی باشن و چاره ای نداشته باشن هم ممکنه بعضی مواقع معانی رو درست درک نکنند و مسیر ور اشتباه برند.
در ضمن وجود ترجمه مناسب از زبانی که هنوز خوب معرفی نشده و در اول راه است میتونه تبلیغ خوبی برای اون باشه و به گسترش جامعه کاربری اون کمک زیادی بکنه.
یا حق
-
با سلام
من خیلی وقته که دارم با این لازاروس کار می کنم اما نه به صورت تجاری چون کارهای تجاری رو با دلفی انجام می دم.
خب که چی؟؟؟ ](*,)
می گم، صبر کنید. 8)
الآن دلفی، نسخه ی XE5 رو داده که برای موبایل (اندروید و iOS ) هم برنامه تولید می کنه اما با محیط فایرمانکی. دوستانی که با این محیط کار کردند می دونند که این محیط اساسا برای تولید برنامه های یونیکد درست نشده و در بسیاری از موارد به اشکالات زیادی بر می خوریم(ما یونیکد زبانان!!! چه واژه ای به کار بردما ;D)
خب رفتم سراغ دوست چندبستری خوب خودمون لازاروس. شروع کردم که این IDE رو رام کنم و باهاش برنامه نویسی اندروید انجام بدم اما نشد که نشد. سراغ پاسکال4اندروید رفتم خیلی سنگین هست(البته نحوه ی برنامه نویسیش؛ یعنی دیگه از اون توابع راحت زمان دلفی و لازاروس خبری نیست) من هم که تنبل نتونستم باهاش خوب ارتباط برقرار کنم. :(
http://barnamenevis.org/showthread.php?418672-%D9%BE%D8%A7%D8%B3%DA%A9%D8%A7%D9%84-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF-%28Pascal-4-Android%29
این مطلب رو هم خودم نوشتم. \\:D/
خلاصه از این دوست خوب هم جدا شدم. از لازاروس هم ناامید شده بودم که گشتم و گشتم و به "گردباد کد" رسیدم. :o می پرسید این چیه دیگه خودتون رو ناراحت نکنید این همون CodeTyphon هست که یک توزیع از لازاروس به حساب میاد و فیلم هایی از اون بر روی یوتیوب هست که طرف برای اندروید برنامه نویسی می کنه و خیلی هم راحت مثل آب خوردن.
www.youtube.com/watch?v=tgj9AWG1Gig
سرتون رو درد نیارم به سرعت این IDE رو دانلود کردم و نصبیدم... اما بازهم نشد هر کاری بگید کردم ولی نشد.انواع و اقسام ور رفتن ها رو امتحان کردم اما...
این سایتش هست که همه چی توش داره راهنمای نصب و غیره.
http://www.pilotlogic.com/sitejoom/index.php/codetyphon
حالا از شما دوستان می خوام امتحانی کنید ببینید می تونید برای بسترهای مختلف کدنویسی کنید یا نه.
نصبش کار راحتیه توی فرومش توضیحات زیادی داده. از دوستانی که به انگلیسی مسلط هستند تقاضا دارم ببینند می تونند کاری انجام بدند. اگه تونستید خبرم کنید.
-
سلام دوستان
من هم این مسیرها رو رفتم( حتی با تسلط بر انگلیسی)
نکته جالبی را که دریافتم اینه: ابزارهایی اینچنین برای کاربر نهایی (End user) مناسب نیستند.
برخلاف دلفی که برای کاربر نهایی (برنامه نویس معمولی) ساخته شده و نیاز نیست شما درگیر ساز و کار داخلی اون بشید.
لازاروس مثل یک آچار فرانسه همه کارست که پیچ های خاص رو هم باز می کنه، سوراخ هم می کنه، پرس هم هست، قلاویز هم هست و...
اگه بخواهیم مثل آچار معمولی برای باز کردن پیچ معمولی ازش استفاده کنیم، دردسرهای فراوان خواهیم داشت.
مگر اینکه بخواهیم متخصص لازاروس بشیم و هیچ کار دیگه ای انجام ندیم. که در ایران چنین چیزی بندرت پیش میاد. معمولا کارشناسان ایرانی باید یک دریا(با عمق اندک) کار بلد باشند تا زندگیشون بچرخه. برخلاف غربی ها که شرکتهایی با برنامه ریزی طولانی مدت تاسیس می کنند و متخصصینی برای هر زمینه خاص تربیت می کنند.
مثلا وقتی در ایران خودرو با متخصصین کره ای در پروژه X7 (سمند) دوست شدم، فهمیدم بیشترشون اصلا تحصیلات دانشگاهی مناسب ندارند. بلکه در همون زمینه کاری خاص آموزش دیده اند. کسی که متخصص سوخت رسانی به موتور بود، هیچ چیزی از بقیه قسمت های ماشین نمی دونست، حتی در حد ابتدایی. اما همونجا کارشناسان ایرانی بودند که در تمام قسمت های خودرو کار کرده بودند ولی متخصص هیچی نبودند و نمیشد در یک پروژه واقعی (اقتصادی) ازشون استفاده کرد.
نتیجه اینکه اگه قرار باشه برنامه نویس حرفه ای پاسکال بشید باید زیر و روی لازاروس و اکسیژن و ... رو در بیارین. حتی در پیدا کردن باگ ها به گروه پیشگامان لازاروس کمک کنید. یعنی باهاش زندگی کنیم.
و در نهایت سراغ هیچ کار دیگه ای نرید. حتی آشپزی :D
-
فرمت HTML (http://ubuntuone.com/4CtacbkfyN0zZ3QwRKIJoU)
-
سلام
دوباره برگشتم. ;D این مدت سرم خیلی شلوغ بود و نمیتونستم این پست رو به روز کنم.
در حال حاضر دارم یک برنامه برای ذخیره و مدیریت پرونده های کلینیک های مشاوره مینویسم.
(http://delphi887.persiangig.com/image/myprogram.png)
چون وقت های بیکاری توسعه اش میدم خیلی کند پیش میره و به خاطر کارم چندان نمیتونم سریع کد نویسی کنم.
بگذریم :)
الان میخوام یک کامپوننت معرفی کنم که تو لازاروس هست و شباهت بسیار زیادی به quickreport توی دلفی داره
Fortes Report
دانلود http://sourceforge.net/projects/fortesreport (http://sourceforge.net/projects/fortesreport)
(http://sourceforge.net/projects/fortesreport/screenshots/56648)
نصبش خیلی راحته و مشکل خاصی نداره و کار کردن با اون مثل quickreport هستش ولی هنوز کامل نیست و بعضی جاها باگ داره.
فکر می کنم برزیل داره اونو توسعه میده .آدرس سایت سازنده : http://www.fortesreport.com.br (http://www.fortesreport.com.br)
اقا میشه سورس این پروژه رو به صورت اپن سورس قرار بدین؟؟؟ :o ;D ;)
-
فرمت HTML (http://ubuntuone.com/4CtacbkfyN0zZ3QwRKIJoU)
ممنون بابت اطلاع رسانی و ترجمه مطلب
سلام
دوباره برگشتم. ;D این مدت سرم خیلی شلوغ بود و نمیتونستم این پست رو به روز کنم.
در حال حاضر دارم یک برنامه برای ذخیره و مدیریت پرونده های کلینیک های مشاوره مینویسم.
**************
چون وقت های بیکاری توسعه اش میدم خیلی کند پیش میره و به خاطر کارم چندان نمیتونم سریع کد نویسی کنم.
بگذریم :)
الان میخوام یک کامپوننت معرفی کنم که تو لازاروس هست و شباهت بسیار زیادی به quickreport توی دلفی داره
Fortes Report
دانلود http://sourceforge.net/projects/fortesreport (http://sourceforge.net/projects/fortesreport)
(http://sourceforge.net/projects/fortesreport/screenshots/56648)
نصبش خیلی راحته و مشکل خاصی نداره و کار کردن با اون مثل quickreport هستش ولی هنوز کامل نیست و بعضی جاها باگ داره.
فکر می کنم برزیل داره اونو توسعه میده .آدرس سایت سازنده : http://www.fortesreport.com.br (http://www.fortesreport.com.br)
اقا میشه سورس این پروژه رو به صورت اپن سورس قرار بدین؟؟؟ :o ;D ;)
این برنامه نسخه اولیه اش مربوط میشه به درس پروژه ام. خواستم اشکالاتش رو برطرف کنم و کاملش کنم تا قابل استفاده بشه ولی متاسفانه هنوز فرصت تکمیلشو پیدا نکردم و نسخه جدیدش که تو تصویر میبینید هنوز ناقصه ولی سورس نسخه اولیه رو میتونم براتون منتشر کنم هرچند به صورت عملی قابل استفاده نیست ولی به عنوان نمونه کد و روش های برنامه نویسی میشه ازش استفاده کرد.
ایشالا اگه فرصتی دست داد و تونستم تکمیلش کنم حتما نسخه جدید رو هم منتشر می کنم.
http://delphi887.persiangig.com/other/PCC.zip (http://delphi887.persiangig.com/other/PCC.zip)
البته این سورس برنامه است و باید برای اجرا پایگاه داده MYsql هم نصب و تنظیم بشه.
فعلا درگیر ترجمه e-book لازاروس هستم تا برای کسایی که می خوان برنامه نویسی با لازاروس رو شروع کنند بتونه کمک خوبی باشه.
یا حق
-
سلام
نسخه جدید لازاروس منتشر شد
دانلود : http://sourceforge.net/projects/lazarus/files (http://sourceforge.net/projects/lazarus/files)
لیست تغییرات و اشکالات رفع شده در این ویرایش : http://wiki.lazarus.freepascal.org/Lazarus_1.0_fixes_branch#Fixes_for_1.0.14_.28Merged.29 (http://wiki.lazarus.freepascal.org/Lazarus_1.0_fixes_branch#Fixes_for_1.0.14_.28Merged.29)
-
فعلا درگیر ترجمه e-book لازاروس هستم تا برای کسایی که می خوان برنامه نویسی با لازاروس رو شروع کنند بتونه کمک خوبی باشه.
یا حق
که تموم میشه؟
زبان برنامه نویسی تو لازاروس چیه ؟پایتونه ؟
موفق باشید
-
زبان برنامه نویسی تو لازاروس پاسکاله
-
فعلا درگیر ترجمه e-book لازاروس هستم تا برای کسایی که می خوان برنامه نویسی با لازاروس رو شروع کنند بتونه کمک خوبی باشه.
یا حق
که تموم میشه؟
زبان برنامه نویسی تو لازاروس چیه ؟پایتونه ؟
موفق باشید
سلام
همونطور که دوستمون گفتن لازاروس بر پایه زبان پاسکال است.
متاسفانه روند ترجمه خیلی کند پیش میره (تقصیر خودمه زیادی تنبلی می کنم 8) )
فصل اولش تقریبا داره تموم میشه. سعی می کنم زودتر آمادش کنم و این پست رو هم سرو سامونی بدم.
یا حق
-
لازاروس برای کسانی خوبه که سابقهٔ برنامهنویسی پاسکال دارن.
ولی اگه کاربر گنو/لینوکس هستید و پاسکال بلد نیستید، توصیه میکنم یاد نگیرید. بجاش زبانهای دیگهای مثل python و ruby و java یاد بگیرید.
-
لازاروس برای کسانی خوبه که سابقهٔ برنامهنویسی پاسکال دارن.
ولی اگه کاربر گنو/لینوکس هستید و پاسکال بلد نیستید، توصیه میکنم یاد نگیرید. بجاش زبانهای دیگهای مثل python و ruby و java یاد بگیرید.
من تا حدودی پایتون و جاوا را میشناسم ولی از رابی هنوز چیز زیادی نمیدونم.
در مورد کاربران گنو/لینوکس و پاسکال هم باید بگم اون زمانی که برنامه های پاسکال با توربو پاسکال برای سیستم عامل DOS نوشته می شد و یا با دلفی برای ویندوز طراحی می شدن گذشته!
الان کاربران گنو/لینوکس با لازاروس قادرند نه تنها برای لینوکس بلکه برای ویندوز و مک هم برنامه طراحی کنند.
در عین حال یادگیری پاسکال خیلی راحت تر و سریع تر از زبان های دیگه هستش و در اولین اجرا میتونند برنامه خودشون رو تولید کنند. همچنین محیط توسعه ای همچون لازاروس در زبان های دیگه یافت نمیشه که قابلیت تولید سریع برنامه رو داشته باشه (RAD IDE) .
هرچند برنامه نویسی در گنو/لینوکس با پایتون امکانات و مزایای بیشتری داره ولی من تا به اکنون تمام نیازهای خودم رو با پاسکال و لازاروس مرتفع کردم.
-
من که با turbo pascal و q basic کار ندارم
ولی همونطور که زبان gambas برای برنامهنویسها vb درست شده.
لازاروس هم فکر میکنم بیشتر برای برنامهنویسهای دلفی درست شده.
البته دلفی خیلی بهتر از vb بود.
-
سلام وقت بخیر
اول از همه،تمام پست های این تاپیک رو مطالعه نکردم و سعی می کنم محدود جواب بدم. :)
رسولی:
لازاروس برای کسانی خوبه که سابقهٔ برنامهنویسی پاسکال دارن.
ولی اگه کاربر گنو/لینوکس هستید و پاسکال بلد نیستید، توصیه میکنم یاد نگیرید. بجاش زبانهای دیگهای مثل python و ruby و java یاد بگیرید.
اگر چه بسیار بهم نزدیک هستند و ولی تفاوت هایی هم با هم دارند.
دلفی یک زبان قدرتمند با متدولوژی RAD بود که برای توسعه نرم افزار های قدرتمند بود در عین حال فارغ از دغدغه نصب بودن و نبودن NET Framework. بروی سیستم عامل بود پس به همین خاطر هر بدافزار مخربی که با دلفی نوشته و توسعه داده میشد به راحتی بروی هر سیستم عامل ویندوزی بدون هیچ برنامه کمکی و از قبل نصب شده اجرا می شد و به برنامه نویس جهت نوشتن انواع بدافزار ویندوزی و ... از طریق یک RAD قدرتمند کمک میکرد.بر خلاف برنامه های #C که باید دات نت فریم فورک برای اجرای برنامه های تولید شده بروی سیستم نصب باشه.
عیب دلفی عدم توسعه به سایر سکو های دیگر بود که کامپوننت های ضعیفی هم بوجود آومد ولی باز ناکام ماند اگر چه در تولید نرم افزارهای ویندوزی هیچی کم نداشت وعلی الخصوص برنامه های پایگاه داده ی قدرتمند.
تنها ایراد بزرگی که میشد به دلفی گرفت به زبان Object Pascal نبود بلکه به Unstable parent بودنش بود و نه ضعف در طراحی دلفی یا زبان آبجکت پاسکال.
لازاروس یک فرصت مجدد به زبان آبجکت پاسکال ولی با رفع محدودیت تک سکویی بودن هست :http://en.wikipedia.org/wiki/Write_once,_compile_anywhere (http://en.wikipedia.org/wiki/Write_once,_compile_anywhere)
یکبار می نویسید و تنها برای اجرا روی target Platform تنها کامپایل می کنید عملا لازاروس اگر چه محدودیت دلفی را کنار زد ولی بخاطر WOCA برای تولید بدافزار گزینه جدی نیست و در حد یک تولید کننده Application باقی خواهد ماند.
در نقطه مقابل زبان های WORA هستند ( http://en.wikipedia.org/wiki/Write_once,_run_anywhere (http://en.wikipedia.org/wiki/Write_once,_run_anywhere) ) مثل جاوا که بعضا cross-platform هم می شنوید پس به راحتی در target Platform اجرا می شنود و عملا گزینه جدی برای تولید بدافزار محسوب می شنود.
ولی اگه کاربر گنو/لینوکس هستید و پاسکال بلد نیستید، توصیه میکنم یاد نگیرید. بجاش زبانهای دیگهای مثل python و ruby و java یاد بگیرید.
هر 3 تا زبان های قوی هستند جاوا زبان خسته کننده ای هست که در عین حال کاربر رو درگیر حافظه نمی کنه پس عملا برای دنیای امنیت زبان خوبی نیست ولی بسیار پرکاربرد و قدرتمند هست البته با قابلیت WORA .
پایتون زبان قدرتمند با توایع آماده زیاد که برای درگیر شدن با حافظه گزینه بهتری محسوب میشه و بسیار بسیار پر کاربرد از جمله در محیط های نظامی که طبیعتا وقتی هزینه و تلاش زیادی برای یادگیری همچنین زبان قدرتمند و دوست داشتنی می کنید در یک trade off زیبا باید از چیزی به اسم زندگیی خصوصیتون هم بگذرید و البته با روحیه کارکردن در محیط های نظامی. ;D
در صورت علاقه به کارهای ترکیبی می تونید سری به این پروژه ها بزنید(که البته توصیه نمیشه)
http://jpype.sourceforge.net
http://www.jython.org
و اما زبان مورد علاقه خودم Ruby که اگر چه گمنام مونده و در آینده ای نزدیک حتما حرف های بیشتری از این زبان خواهید شنید.
به عنوان پیشنهاد زبان های تحت وب رو پیشنهاد می کننم یادگیری CSS و HTml5 و یکی از 2 زبان ASP و PHP (تا اینجا وب 2) در نهایت تمرکز بروی rubyonrails (به عنوان یکی از ارکان وب 3)
http://rubyonrails.org/
https://www.ruby-lang.org/en/
:)
-
سلام وقت بخیر
سلام
ورودتون به انجمن اوبوتنو و این تاپیک خوش آمد میگم. از اطلاعات مفیدی که ارائه نمودید مچکرم. راستش مدتها میگذره و فرصتی دست نداده بود بیام و مطلب جدیدی بزارم. من بیشتر این تاپیک رو برای معرفی روش ها و تکنیک های برنامه نویسی تو لازاروس ایجاد کردم ولی بعضی مواقع درگیر مجادله های اینکه کدوم زبان بهتره و ... می شدم.
به زودی برمیگردم و سعی می کنم تاپیک رو به کلی متحول کنم ;D
یا حق
-
در مورد OpenGL (http://wiki.freepascal.org/OpenGL_Tutorial)داشتم جستجو میزدم که با این سایت آشنا شدم:
http://www.pascalgamedevelopment.com/content.php (http://www.pascalgamedevelopment.com/content.php)
-
یه سوال .من تو ویندوز با دلفی برنامه نوشتم.و عاشق سینتکس پاسکال شدم
توی لازاروس فریم ورک استفاده شده چیه؟همه یه چیزی میگن یکی میگه wx هست یکی میگه gtk هست
حتی بعضی ها میگن کیوت هست.ممنون میشم به سوالم جواب بدین
-
یه سوال .من تو ویندوز با دلفی برنامه نوشتم.و عاشق سینتکس پاسکال شدم
توی لازاروس فریم ورک استفاده شده چیه؟همه یه چیزی میگن یکی میگه wx هست یکی میگه gtk هست
حتی بعضی ها میگن کیوت هست.ممنون میشم به سوالم جواب بدین
سلام
لازاروس یک IDE هست که از کامپایلر پاسکال استفاده می کنه و میتونه از پوسته های زیادی برای ایجاد برنامه ها استفاده کنه. من تو گنو/لینوکس بیشتر gtk استفاده کردم ولی Qt هم دیدم که استفاده شده ولی راستش هنوز نحوه سوئیچ کردن بین اونها رو بلد نیستم.
فکر می کنم باید لازاروس مجددا کامپایل و ایجاد بشه تا نوع فریم ورک تغییر کنه.
یا حق
-
یه سوال .من تو ویندوز با دلفی برنامه نوشتم.و عاشق سینتکس پاسکال شدم
توی لازاروس فریم ورک استفاده شده چیه؟همه یه چیزی میگن یکی میگه wx هست یکی میگه gtk هست
حتی بعضی ها میگن کیوت هست.ممنون میشم به سوالم جواب بدین
1-
Raudus
Web-framework for Delphi and Lazarus
http://www.raudus.com/ (http://www.raudus.com/)
2-ExtPascal
ExtPascal is an Object Pascal (FreePascal/Lazarus and Delphi) wrapper/binding for Ext JS, a complete GUI Ajax framework, made in JavaScript, for Rich Internet Application (RIA) development
https://code.google.com/p/extpascal/ (https://code.google.com/p/extpascal/)
Supports Ext JS 3.2.1.
High performance with native code for Server side programming, no PHP required.
Uses FastCGI or CGI for Web Server communication.
Compatible with any Web Server supporting CGI or FastCGI protocols.
Statefull, keep-alive and multithread server applications.
Parses Ext JS HTML documentation to Object Pascal units.
Self-translates Object Pascal code to JavaScript code during execution.
Coding in full Object Pascal, minimal use of (X)HTML, CSS and JavaScript, but you must know very well the Ext JS framework.
AJAX programming using Object Pascal.
Full wrapper to all Ext JS classes, singletons and widgets.
Transparent support for all main web browsers: IE 6+, Firefox 1.5+, Safari 3+, Opera 9+ and Chrome 2+ on any client side platform (PCs, SmartPhones, iPhone, PDAs, etc)!
Server side multi-platform support through FreePascal 2.4.0 compiler. Tested on Windows, Linux and Mac OS X (Intel and PowerPC).
Thread Garbage Collector for all Ext JS classes and widgets.
Slim Services and EventLog support for Windows.
Daemon support for Posix platforms (Linux, Mac OS X, etc).
Produces small executables and consumes very low memory.
Direct debugging using Delphi, Lazarus or MSEide debuggers.
ExtP Toolkit by Phil Hess. Convert your desktop and client/server applications, made in Delphi/Lazarus, to Web 2.
Embedded Web Server option on Windows or Posix platforms, no Apache or IIS is required.
Optional Delphi/Lazarus style event handler.
Compatible with Delphi(7..2010) and FreePascal(2.4.0).
Integrated CodePress widget with Object Pascal syntax highlighting.
Pascal enumerations support for Ext JS framework.
Code completion enabled for all Ext JS elements.
و احتمالا کاربرد های دیگری نیز خواهد داشت
3-
Habari Web Components for Delphi and Free Pascal
Habari Web Components is a web application framework for small to medium size HTTP services, based on the popular open source TCP/IP library for Delphi and Free Pascal, Internet Direct (Indy). The library requires Internet Direct (Indy) 10.6 (license information)
http://www.habarisoft.com/habari_webcomponents.html (http://www.habarisoft.com/habari_webcomponents.html)
اون فری پاسکال بودنش امکان استفاده برای لازاروس رو هم فراهم میکنه و قابل توسعه است.
http://www.lazarus.freepascal.org/ (http://www.lazarus.freepascal.org/)
4-
Brook
Brook framework is the perfect Free Pascal framework for your web applications. It's pure Pascal. You don't need to leave your preferred programming language.
http://silvioprog.github.io/brookframework/ (http://silvioprog.github.io/brookframework/)
http://forum.lazarus.freepascal.org/index.php?topic=19225.0 (http://forum.lazarus.freepascal.org/index.php?topic=19225.0)
5-delphimvcframework
DMVCFramework (for short) is a powerful framework for web solution in Delphi
RESTful (RMM Level 3) compliant
Can be used in load balanced environment using memcached (memcached.org)
Fancy URL with parameter mappings
Specialied renders to generate text, html, JSON, XML
Powerful mapper to map json to objects and datasets to objects
Can be packaged as stand alone server, apache module (XE6) and ISAPI dll
Integrated RESTClient
Works with XE3, XE4, XE5 and XE6
For each functionalities there is at least a test case
There is a sample for each functionlities
There is a complete set of trainings about it, but the samples are included in the project
Experimental support for IOCP
Server side generated pages using eLua (Embedded Lua)
Specific trainings are available (ask me for a date and a place)
Messaging extension using STOMP (beta)
Simple and documented (right click "Save as...")
Completely unit tested
حتی از eLua هم پشتیبانی می کنه.
Server side generated pages using eLua (Embedded Lua)
سایت رسمی پروژه eLua :
http://www.eluaproject.net
و چند مورد دیگه.....
;)
طبیعتا جای خوشحالی داره که اکثر فریم ورک های فوق تحت وب هستند چون اکثر برنامه نویسان علاقه حضور در محیط های نظامی رو ندارند ولی اگر به هر دلیلی علاقه مند به حضور در محیط های نظامی هستید پیشنهاد میدم این پروژه رو دنبال کنید (http://forum.ubuntu.ir/index.php/topic,92472.0.html) .
-
چند تا سوال
1-تو لازاروس معادلی data snap هست؟به indy هم راضیم !
2-تو لازاروسی که از کیوت استفاده میکنه امکان برنامه نویسی qml هست؟
3-تو ide لازاروس میشه قسمت های فرم رو یه تیکه کرد؟چون واقعا رو اعصابه
-
چند تا سوال
1-تو لازاروس معادلی data snap هست؟به indy هم راضیم !
2-تو لازاروسی که از کیوت استفاده میکنه امکان برنامه نویسی qml هست؟
3-تو ide لازاروس میشه قسمت های فرم رو یه تیکه کرد؟چون واقعا رو اعصابه
سلام
۱- اگه منظورتون استفاده از برنامه نویسی سوکت است در لازاروس باید از Synapse استفاده کنید. امتحانش کردم زیاد سخت نیست ولی به راحتی Indy نیستش در عین حال متن باز و رایگان است.
اطلاعات تکمیلی رو میتونید در لینک زیر مشاهده کنید
http://wiki.freepascal.org/Synapse (http://wiki.freepascal.org/Synapse)
۲- من خودم تو قضیه کیوت و گنوم و ... موندم و درست نمی فهمم چطور میشه با لازاروس بین این محیط ها سوئیچ کرد و مزایا و معایبشون دقیقا چیه. اگه کسی ما رو هم روشن کنه ممنون میشم.
۳- این مطلب قبلا تو پست ها گفته شده بود ولی مجددا براتون میگزارم. باید یک بسته با نامی که در تصویر زیر مشخص شده رو نصب کنید. میبینید که محیط لازاروس و پنجره های مختلف اون به هم میچسبن وقتی صفحه رو به دلخواه خودتون مرتب کردید از منوی tools گزینه ی save window layout as default را کلیک کنید تا هر بار وارد لازاروس می شوید پنجره ها جابه جا نشن
(http://shahriary.staffcms.um.ac.ir/imagesm/1064/stories/lazarus/screenshot%20from%202014-08-02%20090842.png)
موفق و پیروز باشید
-
ما هم تمرین میکنیم سطحمون رو افزایش یدیم.
-
سلام
خیلی زود برگشتم .
برای نصب لازاروس ۲ فایل لازمه که دانلود بشن. البته به شرطی که نخواهید از روی مخازن نصب کنید. من با اوبونتو ۱۲.۰۴ برای نصب از مخازن ویرایش ۰.۹.۳۰.۲ امکان نصب داشت در حالی که این نسخه قدیمی هستش و از FPC 2.4.4 استفاده می کنه . در حال حاضر آخرین نسخه لازاروس 0.9.30.4 هست که از FPC 2.6.0 بهره می برد.
(FPC مخفف کامپایلر پاسکال رایگان هست)
http://sourceforge.net/projects/lazarus/files
(البته بعضی وقتا امکان دانلود برای همه از سایت sourceforge.net وجود نداره و به خاطر تحریم نمیزاره دانلود کنیم که من حتما اونا رو براتون یه جای دیگه آپلود می کنم تا بتونید دانلود کنید)
ویرایش های مختلف تو لینک بالا وجود داره که میتونید بسته به نوع سیستم عامل خودتون اون نسخه ای که مناسب هست رو دانلود کنید.
بعد از دانلود
فایل fpc-2.6.0-1.i386.deb.tar را از حالت فشرده خارج کنید و سپس ترمینال را باز کرده به پوشه اون برید و دستور زیر رو اجرا کنید تا مرحله اول نصب انجام بشه.
sudo dpkg -i *.deb
بعد فایل lazarus-0.9.30.4.i386.deb.tar رو از حالت فشرده خارج کنید و مثل مرحله قبل با استفاده از ترمینال به مسیر اون رفته و دستور زیر رو دوباره اجرا کنید
sudo dpkg -i *.deb
اگر مراحل بالا بدون اشکال نصب بشن لازاروس روی سیستم شما قابل دسترس خواهد بود
محیط لازاروس 0.9.30.4 در اوبونتو 12.04
(http://shahriary.staffcms.um.ac.ir/imagesm/1064/stories/screenshot%20from%202012-05-07%201250282.png)
یا حق
دادش دمت گرم قدیما خیلی با پاسکال و دلفی کار کرده و عاشقش بودم فکر میکردم همش پریده این پست من خیلی شاد کرد.همین الانه که برم سراغش \\:D/