This is handwriting from my LIFE… My life is DELPHI Programming !!!

ساده ترين راه براي تغيير متون پيغام هاي دلفي

سلام دوستان عزيز
امروز در مورد روشي صحبت ميكنم كه چند تا از دوستان هم قبلا از من پرسيده بودن و يك توضيحي كوچيكي داده بودم ولي گفتم حالا خوبه كه بصورت كاملتر يك توضيحي در موردش بدم.
خيلي از برنامه نويسان در هنگام نوشتن برنامه خود به زبان فارسي با پيغامهاي از پيش تعريف شده دلفي مشكل دارند. مثلا شما يك DBGrid روي فرمتون گذاشتيد و موقعي كه كاربر كليد Ctrl-Del رو فشار بده پيغام زير نمايش داده ميشه:

پيغام مربوط به حذف ركورد دلفي

پيغام مربوط به حذف ركورد دلفي
پيغام مربوط به حذف ركورد دلفي هست خوب حالا چطور اين پيغام رو تغيير بديم؟ براي انجام اينكار يك راه اينه كه خوب اول اينكه امكان حذف رو توي DBGrid غير فعال كنيم و بعد تو OnEvent مربوط به DataSet خودمون بگيم كه در هنگاه حذف كردن يك پنجره ديگه رو كه خودمون درست كرديم رو نمايش بده، اين يك راه خوب و لي خسته كننده هست حالا تازه اين براي يك كار بود حالا اگر براي همه قسمتهاي يك برنامه بخواهيم پنجره پيغامها رو خودمون درست كنيم ديگه به مشكل خواهيم خورد.
خوب راه حل ساده تر چيه؟ راه حل ساده اينه كه بريم اون پيغامهايي كه دلفي بصورت از پيش تعريف شده ميزاره تو برنامه رو تغيير بديم. چطوري؟ الان ميگم
تو مسير DELPHI\Source\VCL (كه البته بجاي DELPHI بايد همونجايي بريد كه دلفي اونجا نصب هست) يك سري فايل PAS هست كه بعضي از اونها تو اسمشون عبارت consts رو دارند. اين فايلها همونطور كه از اسمشون مشخصه يك سري Constant هايي رو تو خودشون دارند. حالا فايل consts.pas رو باز كنيد توش خواهيد ديد كه اون پيغامهاي yes و no و … رو تعريف كرده. و خيلي پيغامهاي ديگه اي رو كه با دستور MessageDlg مي تونيد ازش استفاده كنيد مانند زير:

unit Consts;
interface
resourcestring

SMsgDlgWarning = ‘Warning’;
SMsgDlgError = ‘Error’;
SMsgDlgInformation = ‘Information’;
SMsgDlgConfirm = ‘Confirm’;
SMsgDlgYes = ‘&Yes’;
SMsgDlgNo = ‘&No’;
SMsgDlgOK = ‘OK’;
SMsgDlgCancel = ‘Cancel’;

implementation
end.

در اين فايلها اون پيغامهايي كه با دستورات MessageDlg و يا ShowMessage نمايش داده ميشن رو ميتونيد ببينيد و تغيير بدين البته براي تغيير دادن چندتا نكته هست كه بايد رعايت كنيد كه در آخر ميگم.
به همين سادگي!!
تو همين شاخه اگر نگاه كنيد ميبينيد كه فايلهاي ديگه مانند ADOConsts براي پيغامهاي مربوط به ADO همچنين فايلهاي DBConsts, BDEConsts, VDBConsts هست كه براي پيغامهاي مربوط به BDE استفاده ميشه و …

نحوه تغيير دادن اين فايلها:
چند نكته در باب تغيير در فايلهاي Consts:
1- اول اينكه فايل رو در همون شاخه تغيير ندين چون اگر روزي دوباره دلفي رو نصب كنيد يا آپديت كنيد فايلها Overwritte ميشن و تمام زحمات شما به هدر ميره. بهترين راه اينه كه يك شاخه براي خودتون درست كنيد و همه اين فايلها رو كپي كنيد اونجا و بعد تغيير بدين. اينطوري مي تونيد در تمام برنامه هاتون از اونها استفاده كنيد.
2- دقت كنيد كه در بعضي جاها از يك سري عبارات استفاده شده مانند #s و #d حتما اينها بايد تو متن شما باشن. ميدونيد كه از اينها براي اضافه كردن يك متن ديگه در جايي كه اينها هستن در متن استفاده ميشه. همچنين دقت كنيد كه نام Const ها رو تغيير ندين تنها مقدار اونها رو تغيير بدين.
3- حال بايد از اين فايلها در برنامتون استفاده كنيد. براي استفاده مي تونيد مسير فايل ها رو كه خودتون درست كردين رو تو Project search path برنامه تون قرار بدين يا اينكه از منوي Project/Add to project رو انتخاب كنيد و اين فايلها رو به برنامه اضافه كنيد.
4- حالا برنامه تون رو دوباره كمپايل كنيد و ازش لذت ببريد.

سخن آخر
حالا باز بگين كه دلفي خوب نيست اين همه امكانات و قدرتمندي ها به سادگي در دسترس هستند كه هيچ جا ديگه نميشه پيداشون كرد.

موفق و پيروز باشيد

اتصال به بانك اطلاعاتي Access روي اينترنت

يكي از دوستان به نام عليرضا ضمن خجالت دادن من پرسيدن كه چطوري مي تونند به يك بانك اطلاعاتي كه روي اينترنت هاست شده از طريق برنامه شون متصل بشن.

اول اينكه ديتابيسهاي اكسس در واقع از نوع بانكهاي File-Based هستند و براي برنامه نويسي تحت شبكه و خصوصا وب زياد كارايي ندارند. به نظر من شما در هر صورت مشكلات زيادي براي انجام اينكار خواهيد داشت.

شما بايد در Connections String مربوط به ADO خودتون آدرس فايل .MDB مربوط به بانك رو قراربدين. حالا در صورتي كه اين فايل رو كامپيوتر خودتون نيست بايد بوسيله IP‌ هاست مورد نظر اينكارو بكنيد يك چيزي شبيه زير:

// assign connection string
strConString = ‘Provider=MS Remote;’ +
‘Remote Server=http://192.168.1.1;’ +
‘Remote Provider=Microsoft.Jet.OLEDB.4.0;’ +
‘Data Source=MyRemoteDB;Persist Security Info=False’;

موقع باز كردن هم بايد يوزر Admin و پسورد رو بدي البته من خودم تا بحال از اين روش استفاده نكردم.

ولي در كل اينكار به نظر من اصلا درست نيست كه بانك اطلاعاتي كه اصلا Client/Server نيست رو بخواي توي محيط TCP/IP استفاده كني. بهتره از SQL Server يا MySQL استفاده كني.

يك راه حل ديگه هم از استفاده ازنرم افزار هاي Remote ODBC ها هست. مثل اينكه من آدرسش رو در زير آوردم:

http://www.astatech.com/odbc/

در ضمن فكر كنم اگر اين آدرس رو هم بخوني چيزاي خوبي دستگيرت بشه .

http://msdn.microsoft.com/

در هر صورت چون من خودم از اين روش استفاده نكردم زياد نمي تونم كمكت كنم ولي اگر از دوستان كسي با اين روشها آشنايي بيشتري داره خوشحال ميشم به ما هم آموزش بده يا بصورت مقاله بده كه تو سايت بزارم.

موفق و پايدار باشيد

فونتهاي مناسب براي محيط برنامه نويسي

سلام دوستان عزيز و برنامه نويسان خوب،

اول اينكه از همه دوستاني كه در اين چند روز به من لطف داشتند و هم با كامنتهاشون و هم با ايميلهاشون منو مورد لطف قراردادند بسيار ممنونم.

اگر شما هم مثل من مدت زيادي رو در روز پشت كامپيوتر اونم براي برنامه نويسي مي گذرانيد بايد بدونيد كه بايد خيلي مواظب چشمهاتون باشيد و علاوه بر اون براي برنامه نويسان مهمتر اينه كه دقت در كد نويسي هم داشته باشند كه اين خودش هم يك انرژي مضاعفي رو مي خواد. ميدونيد كه در IDE دلفي بصورت پيش فرض از فونت Courier New براي نمايش كدها استفاده ميكنه. اين فونت اصلا فونت خوبي براي برنامه نويسي نيست چرا كه اول خوانا نيست بعد بين حروف l و 1 و I زياد تفاوتي نيست .

هم اين كه حروف o و Oو عدد 0 هم زياد قابل تشخيص از هم نيستند.

خوب حالا چاره چيه ؟ بايد يك فونتي باشه كه هم TTF باشه و هم اينكه تمامي اين مشكلات رو حل كرده باشه. خوشبختانه هميشه انسانهايي پيدا ميشن كه قبلا به اين چيزا فكر كرده اند و اقداماتي ميكنند و نتايج اونو رو هم در اختيار همه قرار ميدن (بطور رايگان!)

در زير من يك سري فونتهايي رو آدرس دادم كه همشون مخصوص برنامه نويسي هستند همشون هم رايگان قابل دانلود هستند.

اميدوارم كه براتون مفيد باشه

در ضمن براي تغيير فونت در دلفي (حالا بسته به ورژن دلفيتون) بايد از منوي Option در بخش Editor فونت كد نويسي رو تغيير بدين.

Raize Font

Proggy Fonts

Inconsolata

Bitstream Vera Fonts

Andale Mono

مقالات من در سایتها و وبلاگ های مختلف

سلام دوستان

امروز من بصورت کاملا تصادفی به یک سایتی برخوردم که نکات خوب و مفیدی رو در مورد موضوعات مختلف کامپیوتر، اینترنت، برنامه نویسی و … داشت. وقتی داشتم تو قسمت نکات برنامه نویسی اون می چرخیدم چشمم به یک مقاله افتاد که در مورد نکات کار در محیط IDE دلفی آورده بود. برام جالب بود و شروع کردم به خوندن که بعد از 2 خط خوندن متوجه شدم که این مقاله خود من هست که من 3 سال پیش هم تو وبلاگ گذاشتم و هم تو سایتهایی مثل IranDevelopers.com که الان دیگه نیست گذاشتم. فکر کنم تو انجمنها برنامهنویس هم باشه. بعد تو گوگل یک سرچ کردم دیدم تعداد زیادی سایت و وبلاگ از این مقاله استفاده کردن که خیلی خوشحال شدم که تونستم مقاله ای بنویسم که برای خیلی ها مفید بوده. ولی ای کاش که این سایتها و وبلاگ ها حداقل مرجع این مقاله و یا نام نویسنده رو هم می نوشتن که یک انگیزه ای می شد برای کار بیشتر.

البته من که هیچ گله ای ندارم و امیدوارم که دیگر مطالب من هم به این شکل مورد توجه قرار بگیرد.

لینک این مقاله هم در این وبلاگ اینه: http://delphi.rayanir.com/delphi-archives/

تعدادی از لینکهایی که من تو گوگل پیدا کردم هم اینها هستند:

www.delphi7.blogfa.com/post-37.aspx

pascallan.mihanblog.com/Post-19.ASPX

elearning-computer.blogfa.com/post-8.aspx

forums.webramz.com/showthread.php?t=533

www.avaxnet.com/archive/index.php/thread-48.html

mombaini2006.blogsky.com/?Date=1384-12

forum.majidonline.com/showthread.php?p=505020


bloger.blogfa.com/cat-119.aspx

itdelphi.blogfa.com

mombaini2006.blogsky.com/?Cat=7

www.hamedanprogramig.blogsky.com/?Cat=5

binyaz.com/showthread.php?p=1478427

hamedanprogramig.blogsky.com/?PostID=72

www.bspars.net/notesdel.html

www.iransongmusic.com/ftopic-104-next.html

www.persianforum.net/forum_posts.asp?TID=1341&PN=2

forum.p30world.com/archive/index.php/t-62927.html

delphi7.blogfa.com/8605.aspx

www.irtools.net/forum/showthread.php?t=7593

www.blofa.blogfa.com/cat-42.aspx

www.rask.blogfa.com/cat-36.aspx

yosafy.blogsky.com/?Cat=7

www.mino.blogfa.com/8410.aspx

amozeshpc.pib.ir/

www.rahkarenovin.com/html/modules.php?name=Forums&file=posting&mode=quote&p=448

www.rezadaniel.blogfa.com/

babakdelphi.blogsky.com/

و این داستان ادامه دارد…

از تمامی کسانی که با احترام به حقوق پدید آورندگان باعث رشد و اعتلای محتواهای فارسی در اینترنت می شوند بسیار سپاسگذارم

موفق باشید

معرفي نرم افزار جالب Notepad++

نرم افزار Notepad++يك ابزار بسيار قوي براي ويرايش فايلهاست كه براي ويرايش كدهاي زبانهاي مختلف برنامه نويسي هم ميشه ازش استفاده كرد. تعداد زيادي هم Plugin داره كه با اونها هم ميشه امكانات زيادي رو به اين نرم افزار اضافه كرد.

از همه مهمتر اينه كه اين نرم افزار قوي بصورت كدباز (Open Source) هست و شما هم ميتونيد اونو براي خودتون تغيير بدين به صورت كاملا رايگان. ورژن جديد اون هم در هنگام نصب مي تونيد زبان فارسي رو انتخاب كنيد. براي دريافت اين نرم فزار مي تونيد با سايت رسمي مراجعه كنيد.

http://notepad-plus.sourceforge.net/uk/site.htm

اميدوارم كه مفيد باشه

بازگشت دوباره

سلام دوستان عزيز و دلفي كاران

من از امروز پس از يك غيبت كبري سعي ميكنم كه دوباره به روز رساني اين وبلاگ رو شروع كنم.اميدوارم كه با كمك شما بتونم در اين مهم سربلند باشم. در ضمن من تصميم گرفتم كه فقط به مطالب دلفي نپردازم و در مورد مسائل ديگه هم اعم از برنامه نويسي و چيزايي كه مي تونم مطلب بزارم .

موفق و سربلند باشيد

كار با dbExpress و بانكهاي اطلاعاتي

با سلام دوستان

معمولاً بسياري از برنامه نويسان تازه كار وقتي كه مي خواهند تازه شروع به برنامه نويسي بكنند اول از همه سراغ ابزارهاي فرم سازي، چند رسانه اي و ديگر كامپوننتهاي جالب و جذاب دلفي مي روند.
اما بايد يك نكته را بدانيد كه در حال حاضر تقريبا بيش از 90 درصد نرم افزارهايي كه در بازار وجود دارند به نوعي با بانكهاي اطلاعاتي كار ميكنند و براي اينكه بتوان برنامه نويسي حرفه اي را فرا گرفت بايد حتما در زمينه بانكهاي اطلاعاتي اطلاعات دقيق و كاملي داشت و با انواع ابزارهاي موجود آشنايي كامل داشت.
همانطور كه شما ميدانيد و همه برنامه نويسان بزرگ دنيا هم به اين مسئله اشاره دارند يكي از قدرتهاي بي نظير دلفي ابزار ها و امكانات بسيار و ساده اي است كه براي كار با بانكهاي اطلاعاتي در طراحي شده است.
در اين مقاله من مي خواهم كمي در مورد dbExpress بنويسم . البته آموزش اين ابزار با يكي و دو مقاله انجام نشدني است من فقط شما را با آن آشنا ميكنم و چند مقاله هم در زير معرفي ميكنم كه ميتواند مفيد باشد.
dbExpress چيست؟
بعبارت ساده ميتوان گفت dbExpress يك ابزار سبك، قابل توسعه، چند پلت فرمي و با كارايي بالا براي ارتباط با سرورهاي بانك اطلاعاتي مي باشد. با استفاده از اين ابزار مي توان درون سيستمهاي Windows, .NET, Linux(Kylix) برنامه نوشت و درون همه آنها قابل استفادست. dbExpress كه در واقع بعنوان جانشيني براي BDE است با دلفي 6 معرفي شد و به شما اجازه برقراري ارتباط با سرور بانكهاي اطلاعاتي mySQL, Interbase, Oracle, MS SQL Server, Informix را ميدهد. البته امكان توسعه پذيري هم دارد كه برنامه نويسان مي توانند براي بانكهاي اطلاعاتي مختلف آنرا توسعه دهند.(dbExpress Drivers)
اما از مهمترين و بزرگترين ويژگي اين ابزار اينست كه دسترسي به بانكهاي اطلاعاتي با استفاده از unidirectional datasets (ديتا ستهاي يك طرفه)‌ ايجاد ميشود. اين ديتا ستهاي يك طرفه در واقع اطلاعات را درون حافظه بافر نميكنند و نمي توان از اين نوع ديتاست براي نمايش اطلاعات در ابزارهاي مانند dbGrid استفاده كرد و شما براي ساختن نمايش اطلاعات به كاربر بايد از كامپوننتهايي كه در تب dbExpress مي باشد مانند TDataSetProvider وTClientDataSet استفاده نماييد.
در واقع اين ديتاستهاي يك طرفه فقط وظيفه دارند كه اطلاعات را از بانكهاي اطلاعاتي بخوانند و امكان نوشتن، تغيير دادن و يا حذف كردن اطلاعات را به شما نميدهد.
البته شما وقتي كه مثلا با استفاده از dbExpress اطلاعات را از يك بانك مي خوانيد و روي فرم برنامه تون نمايش ميدهيد كاربر مي تواند اطلاعات را تغيير دهد، اضافه كند و يا حذف كند ولي با بسته شدن برنامه و دوباره اجرا شدن آن تمامي اطلاعات دبه حالت اول بر ميگردد. تمامي تغييرات انجام شده روي اطلاعات درون يك فايل log ذخيره مي شوند و در صورت بسته شدن برنامه تمامي آن از بين مي رود. براي ارسال آن تغييرات به بانك مي بايست از روشهايي استفاده كنيد كه در مقاله زير مي توانيد بيشتر در مورد آنها ياد بگيريد.
Getting Started with dbExpress
البته اگر فرصت شد سعي ميكنم ترجمه اي كوتاه هم كه شده از اين مقاله اينجا بزارم.
يك سري مقالات و آموزشهاي ديگر هم در اين زمينه هست كه در زير لينك اونها رو ميزارم:

موفق باشيد

سايت جديد و فعاليت بيشتر

با سلام
دوستان عزيز من بلاگ رو از MT‌ به WordPress تغيير دادم شايد كه بشه از اين به بعد بيشتر و بهتر در خدمت شما دوستان باشم. از امكانات جديد اين سيستم امكان ارسال نظر و پيگيري آن توسط ايميل خودتان است.
لطفا در هنگامي كه توسط بخش نظرات سئوالي را مي پرسيد گزينه “Notify me of followup comments via e-mail ” را در پايان صفحه تيك بزنيد تا به محض ارسال جواب و يا نظر ديگر توسط ايميل به شما خبر داده شود.
در ضمن دوستاني كه در زمينه برنامه نويسي و يا دلفي سايت و يا وبلاگي دارند به همين نوشته با دادن نظر آدرس سايت و وبلاگ خودتون رو وارد نماييد تا من در قسمت لينكهاي سايت قرار بدم.

در انتها اميدوارم كه با زهم بتونم در خدمت شما عزيزان باشم.

موفق باشيد

تازه هاي دلفي 2006 (What’s new in Delphi 2006)

با سلام
دوستان عزيزي كه منتظر بودن ببينند دلفي 2006 چه امكاناتي داره به سايت بورلند يك سري بزنند!!!
شما با ديدن اين امكانات خواهيد فهميد كه هنوز هم دلفي يكي از بزرگترين و بهترين محيطهاي برنامه نويسي در بين ديگر رقباي خود مبي باشد.
اينم لينك امكانات دلفي 2006 :
http://community.borland.com/article/0,1410,33411,00.html

در آينده من سعي ميكنم بيشتر از اين ابزار قدرتمند برايتان بنويسم.
موفق و پيروز باشيد

پاسخ به سئوالات دوستان

با سلام
بازم شرمنده که این دفه خیلی دیر شد جواب دادن به سئوالات…
آقا هادی پرسیدن که با installshield برنامه خودشونو ساختن ولی موقع نصب کردن برنامه کار نمیکنه؟ ج- راستش سئوال شما خیلی مبهم هست من متوجه نمیشم خطای خاصی میده موقع نصب یا اینکه برنامه هنگام اجرا خطا میده و یا … اگه کاملتر بگین شاید بتونم کمکتون بکنم.
خانم راضیه هم پرسیدن چطور میشه در خط عنوان فرم کلیدهای Close,minimize,maximize رو غیر فعال کنند؟ ج- اگر منظورتون از غیر فعال کردن برداشتن اونهاست شما اگر BorderStyle فرمتون رو از نوع bsNone بزارید تا هیچ حاشیه نداشته باشه فرمتون و همچنین میتونید در قسمت BorderIcons اونهایی که نمیخواهید رو False کنید.
خانم ماریا پرسیدن چطور میشه آیکون برنامه دلفی رو تغییر بدن؟ ج- از منوی Project > Option تو تب Application می تونید اینکارو بکنید.

ببخشید که به بقیه سئوالات نرسیدم . ضمنا دوستان حتما در گروه دلفی در یاهو عضو شوید اونجا خیلی بهتر میتونید کمک بگیرید و به دیگران در مورد دلفی کمک کنید.

موفق باشید

« مطالب قبلي