آموزش ویژوال فاکس پرو وبلاگ آموزش زبان برنامه نویسی ویژوال فاکس پرو Visual FoxPro http://learnvfp.mihanblog.com 2019-09-13T04:35:15+01:00 text/html 2018-04-14T10:52:10+01:00 learnvfp.mihanblog.com علی محمد‌ حسین‌ زاده معرفی محصولات و ابزارهای شما در این وبلاگ http://learnvfp.mihanblog.com/post/45 سلام به همه دوستان و همراهان<div><br></div><div>اگر شما برنامه نویس <b>فاکس‌پرو </b>یا <b>ویژوال فاکس‌پرو</b> هستید و برنامه (هایی) توسط این زبان برنامه نویسی تولید کرده اید، در صورت تمایل شما ما اینجا به معرفی برنامه شما میپردازیم. همینطور اگر ابزاری برای این زبان برنامه نویسی تولید کرده اید (حتی فقط یک تابع) که ممکن است به کار سایر برنامه نویسان این زبان بیاید، با خوشحالی هرچه تمام آن را معرفی خواهیم کرد.</div><div><br></div><div>توجه کنید که اگر برنامه شما تحت <b>داس</b> و یا <b>قدیمی </b>است، به هیچ عنوان اشکال ندارد مادام اینکه شما بتوانید تصاویری از برنامه را برای ما بفرستید.</div><div><br></div><div><font color="#ff0000" size="2"><b>توجه</b></font></div><div><font color="#ff0000" size="2"><b>هدف ما از این کار، معرفی برنامه نویسان فاکس‌پرو یا ویژوال فاکس‌پرو و همچنین محصولاتشان است.</b></font></div><div><font color="#ff0000" size="2"><b><br></b></font></div><div style="text-align: center;"><font size="2">دوستانی که مایل هستند لطفا از طریق نظرات همین پست و یا با ایمیل&nbsp;</font><a href="ئشهمفخ:learnvfp@hotmail.com" target="" title="">learnvfp@hotmail.com</a><font size="2">&nbsp;با ما در تماس باشند.</font></div> text/html 2018-04-13T17:35:01+01:00 learnvfp.mihanblog.com فرهاد شیری طراحی کلاس ها با تکنیک های شی گرایی و الگوهای طراحی (با طرح پروژه کاربردی) http://learnvfp.mihanblog.com/post/44 <font size="2" face="Mihan-Iransans"> </font><div align="justify"><font size="2" face="Mihan-Iransans">با سلام!</font><font size="2" face="Mihan-Iransans"><br>میخواهم درباره برنامه نویسی ماژولار و همچنین اینکه چگونه کد بنویسیم که از دوباره کاری و تکرار جلوگیری بشه!<br>و کد هایی که مینویسیم قابلیت استفاده مجدد داشته باشه و اصلا چطوری این تفکر تو خودمون تقویت کنیم که از این تکنیک ها همیشه استفاده کنیم تا برنامه هایی هرچه بهتر و مستحکم تر و بهینه تر و قابل اعتماد تولید بکنیم .<br>و برای اینکه به این هدف نزدیکتر شویم طی آموزشی کاربردی کلاس هایی طراحی خواهیم کرد و از آن ها برای کدنویسی شی گرا استفاده خواهیم کرد.<br>و نکته اینکه در ویژوال فاکس پرو، تمامی دستاورد های شی گرایی&nbsp;به طور کامل امکان استفاده وجود ندارد، برای اینکه اساسا ویژوال فاکس پرو یک محیط توسعه نرم افزار نیست بلکه یک پایگاه داده NATIVE فوق العاده کارا و قوی هست که در طول سالهای گذشته برخی امکانات برنامه نویسی شی گرایی به آن اضافه شده است آن هم&nbsp;به دلیل&nbsp;اینکه از والد خود که زبان قدرتمند سی پلاس پلاس می باشد به ارث برده است .<br>همانطور که می دانید شی گرایی از چهار بخش تشکیل شده است .<br>1- وراثت <br>2- پلی مورفیسم (چند ریختی) <br>3- نهان سازی <br>4- تجرید<br><br>برخی از تکنیکهای برنامه نویسی شی گرا که در ویژوال فاکس امکان تعریف آن وجود دارد می توان به وراثت و چند ریختی و نهان سازی اشاره کرد.<br>البته برخی هم همین سه اصل را در برنامه نویسی شی گرا مطرح میکنند ولی ماهیت ویژوال فاکس به نحوی هست که کلا از کلاسهای مجرد و همچنین از اینترفیس ها پشتیبانی نمی کند.<br></font></div><hr align="justify"><div align="justify"><font size="2" color="#CC0000" face="Mihan-Iransans">نکته برنامه نویسی :</font><font size="2" color="#CC0000" face="Mihan-Iransans"><br>البته در تعریف کلاسها در ویژوال فاکس امکان پیاده سازی (IMPLEMENTS) از یک لایبرری DLL(dynamic link library) وجود دارد و همچنین امکان استفاده از توابع&nbsp; لایبرری پیاده سازی شده نیز وجود دارد.</font><font size="2" color="#CC0000" face="Mihan-Iransans"><br></font></div><hr align="justify"><div align="justify"><font size="2" face="Mihan-Iransans">کلاس ارتباط ویژوال فاکس پرو با SQL SERVER (قسمت اول)</font><font size="2" face="Mihan-Iransans"><br>البته این نکته رو هم اضافه کنم فرض رو بر این داریم که شما دانشجوی عزیز قبلا مباحث آموزشی این وبلاگ رو مشاهده کردید و حداقل آشنایی هم با ویژوال فاکس پرو دارید.!<br>1- اولین گام یه متا فایل کلاس به نام SqlManagment.vcx (<a href="http://learnvfp.mihanblog.com/post/26" target="_blank" title="">آموزش ساخت کلاس</a>&nbsp;رو دوست خوبم آقای حسین زاده توی همین وبلاگ کاملا توضیح دادن) البته نام حتما نباید این باشد هر نامی که مایل هستید استفاده نمایید. و یک کلاس جدید داخل این متا فایل به نام daLayer با نوع custom ایجاد نمایید. <br></font></div><blockquote><div align="left"><font size="2" face="Mihan-Iransans">DEFINE CLASS dalayer AS custom</font><font size="2" face="Mihan-Iransans"><br></font><blockquote><font size="2" face="Mihan-Iransans">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Height = 18</font><font size="2" face="Mihan-Iransans"><br>&nbsp;&nbsp;&nbsp; Width = 18<br>&nbsp;&nbsp;&nbsp; Protected evaloeconect = 0<br>&nbsp;&nbsp;&nbsp; Protected affectedrec = 0<br>""= Protected lcconstr&nbsp; <br>Protected decryptcs = .F<br>"" = Name <br></font></blockquote><font size="2" face="Mihan-Iransans">&nbsp;&nbsp; </font><font size="2" face="Mihan-Iransans">ENDDEFINE <br><br></font></div></blockquote><div align="justify"><font size="2" face="Mihan-Iransans">و در این کلاس Property های مورد نیاز را تعریف میکنیم توجه داشته باشید که در وی فاکس تعریف یک خصیصه (Property) با سه نوع دستیابی قابل تعریف می باشند.</font><font size="2" face="Mihan-Iransans"><br>1- Public : (که بصورت پیش فرض هم نوشته نمی شود همراه با نام خصیصه) یعنی تمامی متدهای کلاس به آن دسترسی خواهند داشت و همچنین تمامی آبجکتهایی که ساخته می شوند امکان دسترسی خواندن و نوشتن این خصیصه ها را خواهند داشت .<br>2- Protected : یعنی فقط متدهای کلاس می توانند دسترسی نوشتن داشته باشند از بیرون کلاس فقط دسترسی خواندن وجود دارد.<br>3- Hidden : یعنی فقط متدهای کلاس قابلیت خواندن و نوشتن را دارند از بیرون کلاس حتی دسترسی خواندن هم وجود ندارد. <br>دسترس های شماره 2 و 3 امکان کپسوله کردن اطلاعات درون کلاس را برای ما پیاده سازی میکنند.<br>حالا شاید سوال کنید که پس چگونه به این مقادیر کپسوله شده دسترسی داسته باشیم از آنها اطلاعات بخوانیم و اطلاعات بنویسیم در سایر زبانهای شی گرا از روشهای مختلفی این کار صورت میگیرد که متدهای (Set/Get) از معروفترین آن می باشد ولی در ویژوال فاکس نام این دو متد access که معادل set و assign که معادل متد get می باشد تعریف می شوند و سطح دسترسی این متدها هم به صورت public تعریف می شوند.<br></font></div><hr align="justify"><div align="justify"><font size="2" color="#CC0000" face="Mihan-Iransans">نکته برنامه نویسی :<br>ویژوال فاکس پرو به حروف بزرگ و کوچک حساس نیست ولی از&nbsp; آنجائیکه می خواهیم ساختارمند کد نویسی کنیم کم کم این قوانین را در نامگذاری ها رعایت خواهیم کرد ومن به فراخور زمان این قوانین را خواهم گفت.<br>پس از این به بعد نام گذاری کلاسها را به روش Camel Case وبا یک حروف بزرگ در ابتدا خواهیم نوشت(Camel Case: یعنی نام ها را مانند کوهان شتر با یک حرف بزرگ و در ادامه کلمات با معنی را هم با حروف بزرگ شروع خواهیم کرد.)<br>ونام گذاری آبجکتها را با حرف کوچک تعریف خواهیم کرد.</font><font size="2" color="#CC0000" face="Mihan-Iransans"><br></font></div><hr align="justify"><div align="justify"><font size="2" face="Mihan-Iransans"><br>2- تعریف متدها :<br>در ویژوال فاکس پرو متد با استفاده از کلمه کلیدی Procedure تعریف میشود و به صورت پیش فرض هم دسترسی Public برای متد ها در نظر گرفته می شود و امکان تعیین سطح دسترسی برای متد ها نیز دقیقا مشابه تعریف خاصیت ها می توان هم Protected تعریف کرد وهم به صورت Hidden که البته واضح می باشد که تعریف یک متد با دسترسی Protected به معنای خصوصی (Private) کردن متد و تعریف و تغییر هم فقط در سطح کلاس می باشد پس بنابراین اگر متدی را به صورت محافظت شده تعریف نمایید در آبجکتهایی که می خواهید از این متد استفاده نمایید فقط دسترسی خواندن خواهید داشت و نمی توانید آن متد را تحریف نمایید و پیاده سازی تابع را تغییر دهید دقیقا مانند متدهایی که در برنامه نویسی #c آنها را اقیم کنیم (Sealed method) و یا در جاوا (Final Method).<br>&nbsp;و تعریف به صورت Hidden نیز یعنی سطح دسترسی در کلاس می باشد و آبجکتهای دیگر نه دسترسی خواندن دارند و نه دسترسی نوشتن در این متدها را دارند.<br>بنابراین اگر متدی را Public تعریف کنیم می توانیم هم در کلاس خود متد وهم در سایر کلاسها و آبجکتها این متد را هم دوباره نویسی کنیم که یعنی Overriding اتفاق افتاده است و هم می توانیم به ارث ببریم که Inheritance&nbsp; اتفاق افتاده است.<br>و اگر متد را با دسترسی Protected تعریف نماییم یعنی فقط این متد در کلاس صاحب متد پیاده سازی می شود ولی در آبجکتها و کلاسهای دیگر فقط امکان ارث بری از آن وجود خواهد داشت.<br>اکنون با این مقدمه چند متد به شکل زیر در کلاس مان تعریف خواهیم کرد.<br></font><font size="2" face="Mihan-Iransans"></font><div align="justify"><blockquote><div style="direction: ltr;" align="left"><font size="2" face="Mihan-Iransans">PUBLIC PROCEDURE sqlservercheck</font><font size="2" face="Mihan-Iransans"><br>&nbsp;&nbsp;&nbsp; PARAMETERS otherdatabasevisible AS boolean<br>&nbsp;&nbsp;&nbsp; #DEFINE mb_okbutton 0<br>&nbsp;&nbsp;&nbsp; #DEFINE mb_stopsign 16<br>&nbsp;&nbsp;&nbsp; </font><font size="2" face="Mihan-Iransans"><font size="2" face="Mihan-Iransans">Protected </font>SuccRet=.T.<br>&nbsp;&nbsp;&nbsp; WITH THIS<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; IF TYPE('oEconect')!='U'<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =SQLIDLEDISCONNECT(oeconect)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ENDIF<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; RELEASE oeconect<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; PUBLIC oeconect<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; IF .not. PEMSTATUS(_SCREEN,[lCconstr],5)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; IF FILE([CSQLMNGT.SSL])<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; SET CLASSLIB TO _encdeccryptor.vcx ADDITIVE<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; _decryptor=CREATEOBJECT([_encdecryptor])<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; _ls=_decryptor.decryptor()<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; IF FILE([CSQLMNGT.SSL]) AND _ls<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; RESTORE FROM csqlmngt.ssl ADDITIVE<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; _ls=_decryptor.encryptor()<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; RELEASE _decryptor<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; IF !otherdatabasevisible<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; IF type([m.ChangedDB])&lt;&gt;[L]<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; MainDataServer&nbsp; =iif(m.activedataformCheked,MainDataSource,alltrim(csetdatabasestr))<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ENDIF <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ENDIF<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; .lcconstr=csetconnectstr<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; _SCREEN.ADDPROPERTY([lCconstr],.lcconstr)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; _screen.AddProperty([LCDataRep],alltrim(csetdatabasestr)) <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ELSE<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MESSAGEBOX([CS is not Work!]+CHR(13)+[1-Copy File 'csqlmngt.ssl' from Servername\Hoa\inv-win\update-exe Folder]+CHR(13);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; +[2-if not found file 'csqlmngt.ssl' Run Setting.exe]+CHR(13);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; +[3-Please Contact by System Administrator],0+16+0,'System Error')<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; CLEAR EVENTS<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; CLOSE ALL<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; CLEAR ALL<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; QUIT<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ENDIF<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ELSE<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MESSAGEBOX([CS is not Work!]+CHR(13)+[1-Copy File 'csqlmngt.ssl' from Servername\Hoa\inv-win\update-exe Folder]+CHR(13);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; +[2-if not found file 'csqlmngt.ssl' Run Setting.exe]+CHR(13);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; +[3-Please Contact by System Administrator],0+16+0,'System Error')<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; CLEAR EVENTS<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; CLOSE ALL<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; CLEAR ALL<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; QUIT<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ENDIF<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ELSE<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; IF !otherdatabasevisible<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; IF type([m.ChangedDB])&lt;&gt;[L] <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; maindataserver&nbsp; =iif(m.activedataformCheked,MainDataSource,iif(type([csetdatabasestr])=[U],_screen.LCDataRep,csetdatabasestr))<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ENDIF <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ENDIF<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .lcconstr=_SCREEN.lCconstr<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ENDIF<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; oeconect = SQLSTRINGCONNECT(.lcconstr)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; IF oeconect &lt;= 0<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; LOCAL ARRAY laerror[1]<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; AERROR(laerror)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; MESSAGEBOX(laerror[2],mb_okbutton+mb_stopsign,[SQL Server Error:]+TRANSFORM(laerror[5]))<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; SuccRet=.F.<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ENDIF<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; .evaloeconect = oeconect<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; SuccRet=.sqlsetpropvalue(oeconect)<br>&nbsp;&nbsp;&nbsp; ENDWITH<br>&nbsp;&nbsp;&nbsp; RETURN SuccRet<br>ENDPROC<br><br></font><hr><font size="2" face="Mihan-Iransans"><br>PUBLIC PROCEDURE sqlsetpropvalue<br>&nbsp;&nbsp;&nbsp; PARAMETERS conhandle<br>&nbsp;&nbsp;&nbsp; #define _Idletime 0<br>&nbsp;&nbsp;&nbsp; #define _QueryTimeout 0<br>&nbsp;&nbsp;&nbsp; #define _Dispwar .T.<br>&nbsp;&nbsp;&nbsp; #define _Conectimeout 15<br>&nbsp;&nbsp;&nbsp; #define _Displog 3<br><br>&nbsp;&nbsp;&nbsp; </font><font size="2" face="Mihan-Iransans"><font size="2" face="Mihan-Iransans">Protected </font>RetSet=.T.<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; RetSet=IIF(SQLSETPROP(conhandle, [IdleTimeout], _Idletime)&gt;0,RetSet,.F.)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; RetSet=IIF(SQLSETPROP(conhandle, [QueryTimeOut], _QueryTimeout)&gt;0,RetSet,.F.)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; RetSet=IIF(SQLSETPROP(conhandle, [DispWarnings], _Dispwar)&gt;0,RetSet,.F.)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; RetSet=IIF(SQLSETPROP(conhandle, [ConnectTimeOut], _Conectimeout)&gt;0,RetSet,.F.)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; RetSet=IIF(SQLSETPROP(conhandle, [DispLogin], _Displog)&gt;0,RetSet,.F.)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; RetSet=IIF(SQLSETPROP(conhandle, [Asynchronous], .F.)&gt;0,RetSet,.F.)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; RetSet=IIF(SQLSETPROP(conhandle, [BatchMode], .T.)&gt;0,RetSet,.F.)<br>&nbsp;&nbsp;&nbsp; &nbsp; <br>&nbsp;&nbsp;&nbsp; RETURN </font><font size="2" face="Mihan-Iransans"><font size="2" face="Mihan-Iransans">RetSet</font>&nbsp; <br><font style="direction: rtl;">ENDPROC<br></font></font><div align="right"><hr><br><div align="right"><br></div></div></div></blockquote><div style="direction: ltr;" align="right"><div><div><div><font size="2" face="Mihan-Iransans">در ویژوال فاکس پرو برای متدها می توانید پارامتر تعریف نمایید و اگر نوع این پارامترها را در زمان طراحی کلاس هنگام نوشتن کدها تعریف ننمایید خود کامپایلر در زمان اجرای برنامه نوع پارامتر را براساس نوع ارسالی آرگومان متد تعریف خواهد کرد پس حتما الزام نیست که نوع پارامتر را در تعریف متد وارد نمایید ولی با اینکار کار برنامه نویسی شما سخت تر می باشد و کنترل نوع ها را باید خودتان انجام دهید پس همیشه سعی کنید که نوع آرگومان های ورودی را تعریف نمایید</font><br><font size="2" face="Mihan-Iransans">در ویژوال فاکس پرو می توانید هم یک مقدار داده ای از نوع اولیه ارسال کنید و هم می توانید یک رفرنس از یک آبجکت را به متد ارسال نمایید</font><br><font size="2" face="Mihan-Iransans">و در آن متد به یک آبجکت مشابه هم اشاره نمایید وبا آن کار کنید</font><br><font size="2" face="Mihan-Iransans">در مثال اول یک متد با ورودی یک عدد صحیح تعریف نموده ایم در این مثال چون داده های اولیه ارسال با مقدار می باشند بنابراین مقدار ورودی تابع اگر برگشت داده نشود مقدار آرگومان در محلی که به متد ارسال شده بدون تغییر خواهد ماند</font><br></div></div></div></div><blockquote><div style="direction: ltr;" align="left"><div align="right"><div align="right"><div align="right"><br></div><div align="left"><font size="2" face="Mihan-Iransans">*!*</font><span id="result_box" class="short_text" style="" lang="en"><span class=""><font size="2" face="Mihan-Iransans"> Define a method Call By Value</font><br></span></span><font size="2" face="Mihan-Iransans">PUBLIC PROCEDURE CallByValue<br>Parameters primitiveType&nbsp; AS integer <br>&nbsp;<br>primitiveType = primitiveType + 1 <br><br>return primitiveType <br><br></font></div></div></div></div></blockquote><div style="direction: ltr;" align="right"><div><div><div><div><div><font size="2" face="Mihan-Iransans">و در مثال بعدی یک متد با ورودی یک آبجکت از نوع تکست باکس تعریف کرده ایم در این مثال از ارسال با ارجاع شی استفاده کرده ایم بنابراین می توانیم از همان شی در همان کلاس استفاده نماییم و هر تغییر در شی مذکور در شی اصلی در جایی که به متد ارسال شده است نیز ثبت خواهد شد</font><br></div></div></div></div></div></div><blockquote><div style="direction: ltr;" align="left"><div align="right"><div align="right"><div align="left"><div align="right"><font size="2" face="Mihan-Iransans"><br></font><div align="left"><font size="2" face="Mihan-Iransans"><font size="2" face="Mihan-Iransans">*!*</font><span id="result_box" class="short_text" style="" lang="en"><span class=""><font size="2" face="Mihan-Iransans"> Define a method Call By reference.!</font></span></span></font><font size="2" face="Mihan-Iransans"><span id="result_box" class="short_text" style="" lang="en"><span class=""><font size="2" face="Mihan-Iransans"><font size="2" face="Mihan-Iransans"><span id="result_box" class="short_text" style="" lang="en"><span class=""><font size="2" face="Mihan-Iransans"> <br></font></span></span></font></font></span></span>DEFINE CLASS myClass AS Custom<br>&nbsp;&nbsp; PROCEDURE test2<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;PARAMETERS objTextBox AS TextBox , p as Object<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;objTextBox .Value = "this refrence.!" &amp;&amp; call by refernce<br>&nbsp;&nbsp;&nbsp; ENDPROCEDURE<br>&nbsp; ENDDEFINE<br></font></div><div align="left"><font size="2" face="Mihan-Iransans"><br>&nbsp; DEFINE CLASS sample1 AS Form<br>&nbsp; hidden myTxtBox = .f.&nbsp; &amp;&amp; <span id="result_box" class="short_text" style="" lang="en"><span class="">Define a property and determine its type by the compiler</span></span>&nbsp; <br>&nbsp; <br>&nbsp;&nbsp; PROCEDURE init <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *!* initialize property and Objects <br>&nbsp; &nbsp; &nbsp; &nbsp; myClass = createobject("myClass.vcx")<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; myTxtBox = createobject("TextBox") <br>&nbsp;&nbsp; ENDPROCEDURE<br><br>&nbsp;&nbsp; PROCEDURE Click_TextBox&nbsp;&nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; myClass.test2(this.myTxtBox)<br>&nbsp;&nbsp; ENDPROCEDURE<br><br>&nbsp;&nbsp; ENDDEFINE<br></font></div></div></div></div></div></div></blockquote><div style="direction: ltr;" align="right"><div><div><div><div><div><div><div><font size="2" face="Mihan-Iransans">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; در برنامه نویسی با ویژوال فاکس پرو برای دسترسی به متدها و خصوصیت های یک آبجکت می توانید از عملگر .(نقطه) ویا از علامت &lt;- نیز برای دسترسی استفاده نمایید دقیقا مشابه به والد خود زبان سی پس توجه داشته باشید علامت (&lt;-) فوق هیچ ربطی به عبارت های پیشرفته تعریف عبارتهای بی نام در زبانهای ساختار یافته شی گرا ندارد بنابراین </font><br></div></div></div></div></div></div></div></div><blockquote><div style="direction: ltr;" align="left"><div align="right"><div align="right"><div align="left"><div align="right"><div align="left"><div align="right"><div align="left"><font size="2" face="Mihan-Iransans">objTextBox .Value = "this refrence.!" &amp;&amp; call by refernce<br></font></div></div></div></div></div></div></div></div></blockquote><div style="direction: ltr;" align="right"><div><div><div><div><div><div><div><div><div><font size="2"><font face="Mihan-Iransans">و دستور زیر دقیقا یکسان می باشند</font></font><br></div></div></div></div></div></div></div></div></div></div><div style="direction: ltr;" align="left"><div align="right"><blockquote><div align="right"><div align="left"><div align="right"><div align="left"><div align="right"><div align="left"><div align="right"><div align="left"><font size="2" face="Mihan-Iransans">objTextBox -&gt; Value = "this refrence.!" &amp;&amp; call by refernce</font><br></div></div></div></div></div></div></div></div></blockquote><hr align="right"><div align="right"><font size="2" color="#CC0000" face="Mihan-Iransans"><font style="direction: rtl;">: نکته برنامه نویسی </font></font><br><font size="2" color="#CC0000" face="Mihan-Iransans">در ویژوال فاکس پرو در زمان ایجاد یک شی جدید و یا تعریف یک نوع داده اولیه امکان تعریف نوع آن امکانپذیر نمی باشد بنابراین در زمان اجرای برنامه نوع ها را کامپایلر تعیین میکند</font><br></div></div></div><div style="direction: ltr;" align="left"><div align="right"><hr></div></div><div style="direction: ltr;" align="right"><div><div><font size="2" face="Mihan-Iransans"><br>برای متدها همچنین امکان تعریف مقدار بازگشتی به محل ارجاع متد نیز وجود دارد با استفاده از دستور</font><br></div><blockquote><div align="left"><font size="2" face="Mihan-Iransans">Return مقدار برگشتی</font><br></div></blockquote><font size="2" face="Mihan-Iransans">و همچنین توجه نمایید که نوع مقدار خروجی متد چون تعریف نمی شود پس باید برنامه نویس توجه داشته باشد که چه نوعی را به عنوان بازگشت متد در حال دریافت می باشد تا از نوع درست آن استفاده نماید و همچنین در زمان طراحی فرم و کلاس دیزاین مد هم نمی توانید از نوع بازگشتی متد اطلاع داشته باشید<br>البته با دستور بازگشت امکان بازگشت مقادیر در زمان تعریف متدهای بازگشتی و یا ارسال یک مقدار به یک متد با استفاده ازنام آن متد امکانپذیر می باشد که در جای مناسب تر و در زمان نیاز به آنها اشاره خواهم کرد <br></font></div></div></div></div><font size="2" face="Mihan-Iransans"> </font> text/html 2018-02-26T12:38:22+01:00 learnvfp.mihanblog.com علی محمد‌ حسین‌ زاده سری ویدیوهای آموزشی - فرم‌ها در ویژال فاکس‌پرو http://learnvfp.mihanblog.com/post/43 <div>قبل از هر چیز بابت کیفیت نه چندان خوب ویدیوها عذرخواهی میکنم. احیانا اگر شما به سایت منبع این ویدیوها مراجعه کرده باشید خواهید دید که ویدیوها قدیمی و با فرمت فلش (swf) ذخیره شده اند که این کمی کار تبدیل به فرمت قابل قبول برای سرویس آپارت کمی مشکل کرده است.</div><div><br></div> در این سری ویدیوها به طور کلی نحوه ساخت یک فرم، اتصال آن به یک جدول و انجام کارهای عمومی مانند نمایش اطلاعات، گردش بین رکوردها، درج رکورد جدید، ویرایش و حذف یک رکورد در ویژوال فاکس پرو ویرایش 9 آموزش داده می‌شود.<div><br></div><div><ul><li>ویدیو اول موارد بالا را با استفاده از جادوگر فرم (Form Wizard) آموزش می‌دهد.</li><li>ویدیو دوم به صورت دستی یک فرم با تمامی امکانات فرمی که توسط جادوگر فرم ایجاد میشود را مرحله به مرحله کدنویسی کرده و آموزش می‌دهد.</li><li>در ویدیو آخر، مبحث بافرینگ اطلاعات در زمان ویرایش یک رکورد بحث و پیاده سازی می‌شود.</li></ul><div><br></div><div><br></div><div><div id="15199090042700347"><style>.h_iframe-aparat_embed_frame{position:relative;} .h_iframe-aparat_embed_frame .ratio {display:block;width:100%;height:auto;} .h_iframe-aparat_embed_frame iframe {position:absolute;top:0;left:0;width:100%; height:100%;}</style><div class="h_iframe-aparat_embed_frame"> <span style="display: block;padding-top: 56.2%"></span><iframe width="100%" height="100%" allowfullscreen="true" webkitallowfullscreen="true" mozallowfullscreen="true" src="https://www.aparat.com/video/video/embed/videohash/C6on0/vt/frame"></iframe></div></div></div> </div> text/html 2018-02-14T05:00:00+01:00 learnvfp.mihanblog.com علی محمد‌ حسین‌ زاده سری ویدیوهای آموزشی - گزارش‌ها در ویژال فاکس‌پرو http://learnvfp.mihanblog.com/post/42 در ادامه آموزش های ویدیوئی آقای گارفیلد هادسون، سه ویدئو آموزش گزارش سازی در ویژوال فاکس پرو را میتوانید در این&nbsp;<a href="https://www.aparat.com/v/FLIrz" target="_blank" title="">لیست پخش</a>&nbsp;مشاهده کنید.<div><br></div><div>در این سه ویدیو شما اصول اولیه ساخت یک گزارش، نمایش اطلاعات یک جدول و در ویدئو آخر نمایش اطلاعات از دو جدول رو فرا خواهید گرفت.</div><div><br></div><div><div id="15185890436902330"><style>.h_iframe-aparat_embed_frame{position:relative;} .h_iframe-aparat_embed_frame .ratio {display:block;width:100%;height:auto;} .h_iframe-aparat_embed_frame iframe {position:absolute;top:0;left:0;width:100%; height:100%;}</style><div class="h_iframe-aparat_embed_frame"> <span style="display: block;padding-top: 56.2%"></span><iframe width="100%" height="100%" allowfullscreen="true" webkitallowfullscreen="true" mozallowfullscreen="true" src="https://www.aparat.com/video/video/embed/videohash/TUj0K/vt/frame"></iframe></div></div></div><div><br></div><div><div>سایر ویدیوهای این سایت به زودی در اینجا معرفی و همچنین در کانال ویدیویی آموزش ویژوال فاکس پرو ارائه میشوند.</div><div><br></div><div>لطفا چنانکه این مطلب برای شما مفید واقع شد، در شبکه های اجتماعی به اشتراک بگذارید و همینطور نظرات خودتون رو با من در میان بگذارید.&nbsp;</div><div>با تشکر</div></div> text/html 2016-06-16T03:30:00+01:00 learnvfp.mihanblog.com علی محمد‌ حسین‌ زاده سری ویدیوهای آموزشی - توسعه یک برنامه ساده ویژوال فاکس پرو http://learnvfp.mihanblog.com/post/39 آقای&nbsp;<a href="http://www.garfieldhudson.com/" target="_blank" title="">گارفیلد هادسون</a>&nbsp;یک برنامه نویس ویژوال فاکس پرو و دات نت هست که در سایت شخصیشون به صورت ویدیویی اقدام به آموزش این زبان برنامه نویسی کردند.<div><br></div><div>تعدادی از ویدیوهای آموزشی در این سایت به صورت رایگان عرضه شده است و تعدادی به صورت پولی که در اینجا ویدیوهای رایگان این سایت با ذکر منبع و لینک به سایت ایشان و همینطور دسته بندی مناسب در اختیار شما قرار میگیرد.</div><div>این سری ویدیو رو میتوانید به صورت یک لیست آماده در سایت آپارات در 6 قسمت مشاهده کنید.</div><div><br></div><div>[http://www.aparat.com/v/kePY6]</div><div><br></div><div>سایر ویدیوهای این سایت به زودی در اینجا معرفی و همچنین در کانال ویدیویی آموزش ویژوال فاکس پرو ارائه میشوند.</div><div><br></div><div>لطفا چنانکه این مطلب برای شما مفید واقع شد، در شبکه های اجتماعی به اشتراک بگذارید و همینطور نظرات خودتون رو با من در میان بگذارید.&nbsp;</div><div>با تشکر</div> text/html 2016-06-13T03:30:00+01:00 learnvfp.mihanblog.com علی محمد‌ حسین‌ زاده فاکس پرو داس http://learnvfp.mihanblog.com/post/38 در حال گشت زنی در وب بودم که به یک مورد جالب برخوردم.<div><br><div>یک فایل Pdf که کلا زبان برنامه نویسی فاکس پرو و برخی دستورات آن را به صورت خلاصه و کافی توضیح داده است و تنها در حدود 40 صفحه شما میتوانید یک دید کلی به برنامه نویسی فاکس پرو پیدا کنید.</div><div><br></div><div>نکته جالب این ماجرا، تهیه شدن این فایل در یک شرکت مخابراتی در کشوری آفریقایی به نام مالاوی هست.</div></div><div><br></div><div>آدرس اصلی در قسمت لینک های مرتبط قرار داده شده است و جهت حفظ فایل و احتمال در دسترس نبودن آن، یک نسخه دیگر در&nbsp;<a href="https://onedrive.live.com/redir?resid=8BFC6850C8910CA4!170&amp;authkey=!AANMEpAlXnwzJl0&amp;ithint=file%2cpdf" target="_blank" title="">اینجا</a>&nbsp;آپلود شده است که شما میتوانید&nbsp;<a href="https://onedrive.live.com/redir?resid=8BFC6850C8910CA4!170&amp;authkey=!AANMEpAlXnwzJl0&amp;ithint=file%2cpdf" target="_blank" title="">دانلود</a>&nbsp;کنید.</div><div><br></div><div><div>لطفا چنانکه این مطلب برای شما مفید واقع شد، در شبکه های اجتماعی به اشتراک بگذارید و همینطور نظرات خودتون رو با من در میان بگذارید.&nbsp;</div><div>با تشکر</div></div> text/html 2015-05-15T06:29:48+01:00 learnvfp.mihanblog.com علی محمد‌ حسین‌ زاده فاکس پرو را ببینید http://learnvfp.mihanblog.com/post/36 در حال جستجو در اینترنت بودم که به ویدیوهای جالبی درباره فاکس پرو برخورد کردم که دیدم بد نیست که با شما در اینجا به اشتراک بزارم.<div><br><div>برای مشاهده تمام ویدیو ها به&nbsp;<a href="http://www.aparat.com/learnvfp" target="_blank" title="کانال ویدیویی آموزش فاکس پرو">کانال این وبلاگ</a>&nbsp;در&nbsp;<a href="http://www.aparat.com" target="_blank" title="آپارات">آپارات</a>&nbsp;مراجعه کنید.</div><div><br></div><div><br></div><div>[http://www.aparat.com/v/Eg6GS]</div> </div> text/html 2014-09-11T02:51:48+01:00 learnvfp.mihanblog.com علی محمد‌ حسین‌ زاده تاریخچه و آینده ویژوال فاکس پرو http://learnvfp.mihanblog.com/post/34 <div>نزدیک به 24 سال از عمر فاکس پرو میگذرد و این برنامه هنوز طرفداران زیادی در سرتا سر دنیا دارد.فاکس پرو از ابتدا برای کار با اطلاعات برنامه ریزی شد و به راحتی پاسخگوی نیاز برنامه نویسان و در نهایت کاربر نهایی است. در طول این مدت اتفاقات بسیاری باعث شدند که طرفداران این برنامه کم شوند اما همچنان هر روز تعداد زیادی به جمع برنامه نویسان فاکس پرو افزوده میشود. دلیل این را میتوان در راحتی و سرعت بالای برنامه نویسی در این محیط دانست.</div><div><br></div><div>در این مقاله سعی داریم تا با بررسی تاریخچه و اتفاقاتی که در طول این مدت رخ داده اند، علل و انگیزه های به انزوا کشاندن این نرم افزار قدرتمند را روشن کنیم.</div><div><br></div><div>امیدواریم تا با طرح این موضوع به بسیاری از سئوالات و ابهامات پاسخ داده باشیم.</div> text/html 2014-08-29T06:24:04+01:00 learnvfp.mihanblog.com علی محمد‌ حسین‌ زاده تنظیمات ویندوز جهت پشتیبانی از زبانهای راست به چپ http://learnvfp.mihanblog.com/post/29 <div>بروزرسانی شده در تاریخ 28 دی 1396</div><div><hr></div><div>پس از نصب ویژوال فاکس پرو اولین نکته ای که به ذهن هر فارسی زبانی میرسه، نحوه پشتیبانی ویژوال فاکس پرو از زبان فارسی است. به عبارت ساده تر امکان راست به چپ کردن پنجره ها، کنترل ها و سایر اجزا دیداری برنامه است.</div><div>همانطور که قبلا درباره این موضوع قبلا در&nbsp;<a href="http://learnvfp.mihanblog.com/post/6" target="" title="">این وبلاگ</a>&nbsp;بحث شده است، از ویرایش 7 ویژوال فاکس پرو به بعد با انجام یک سری تغییرات در زبان ویندوز، این امکان اضافه شده است و در پست قبلی به اعمال این تغییرات در ویندوز های 98، 2000 و XP اشاره شد.</div><div>در این پست قصد دارم که علاوه بر یادآوری نحوه اعمال تغییرات در ویندوز XP سایر ویندوزهای 7 و 8 را هم پوشش بدهم.</div> text/html 2014-08-20T04:53:48+01:00 learnvfp.mihanblog.com علی محمد‌ حسین‌ زاده برنامه مبدل بین دیتابیس های مختلف با قابلیت تغییر کدپیچ (از داس به ویندوز و بالعکس) - Data Manager http://learnvfp.mihanblog.com/post/33 <span style="background-color: rgb(255, 255, 255);"><span style="color: rgb(51, 51, 51); font-family: Tahoma, Verdana, Arial, Calibri, Geneva, sans-serif; font-size: 13px; text-align: right;">برنامه مدیریت اطلاعات (Data Manager) نرم افزاری است رایگان&nbsp;</span><span style="text-align: right;"><font color="#333333" face="Tahoma, Verdana, Arial, Calibri, Geneva, sans-serif"><span style="font-size: 13px;">جهت ارسال و دریافت اطلاعات بین دیتابیس های مختلف با قابلیت پشتیبانی تغییر کد پیج&nbsp;از داس به ویندوز و بالعکس (با پشتیبانی کد پیج&nbsp;ایران سیستم و سایه)&nbsp;</span></font></span><span style="color: rgb(51, 51, 51); font-family: Tahoma, Verdana, Arial, Calibri, Geneva, sans-serif; font-size: 13px; text-align: right;">یک محیط ساده و راحت برای کاربر که امکان خواندن جداول و فایلهایی با پسوند:</span></span><div dir="ltr"><span style="background-color: rgb(255, 255, 255);"><br style="color: rgb(51, 51, 51); font-family: Tahoma, Verdana, Arial, Calibri, Geneva, sans-serif; font-size: 13px; text-align: right;"><span style="color: rgb(51, 51, 51); font-family: Tahoma, Verdana, Arial, Calibri, Geneva, sans-serif; font-size: 13px; text-align: right;">CSV, SQL, XML, ACCESS (MDB), TEXT FILE (Fixed and Delemited File),&nbsp;</span><span style="color: rgb(51, 51, 51); font-family: Tahoma, Verdana, Arial, Calibri, Geneva, sans-serif; font-size: 13px; text-align: right;">Fox (win and dos), Paradox, Excel,&nbsp;</span><span style="color: rgb(51, 51, 51); font-family: Tahoma, Verdana, Arial, Calibri, Geneva, sans-serif; font-size: 13px; text-align: right;">Mysql, SqlSever</span><br style="color: rgb(51, 51, 51); font-family: Tahoma, Verdana, Arial, Calibri, Geneva, sans-serif; font-size: 13px; text-align: right;"><span style="text-align: right;"><font color="#333333" face="Tahoma, Verdana, Arial, Calibri, Geneva, sans-serif"><span style="font-size: 13px;">and other extended&nbsp;file :&nbsp;</span></font></span><span style="color: rgb(51, 51, 51); font-family: Tahoma, Verdana, Arial, Calibri, Geneva, sans-serif; font-size: 13px; text-align: right;">FreamWorkII, MicroSoft MultiPlan,Lotus 1-2-3</span></span><br> </div><div dir="ltr"><span style="background-color: rgb(255, 255, 255);"><span style="color: rgb(51, 51, 51); font-family: Tahoma, Verdana, Arial, Calibri, Geneva, sans-serif; font-size: 13px; text-align: right;"><br></span></span></div> text/html 2014-07-06T12:36:42+01:00 learnvfp.mihanblog.com علی محمد‌ حسین‌ زاده نصب فاکس پرو 2.6 داس http://learnvfp.mihanblog.com/post/32 <p class="MsoNormal" dir="RTL" style="text-indent: 0mm; text-align: right; direction: rtl; unicode-bidi: embed;"><span lang="FA">شاید هنوز کسانی باشند که نیاز داشته باشند فاکس پرو تحت داس رو اجرا کنند و یا حتی کسانی به جهت کنجکاوی، اما به هر دلیلی که هست اطلاع داشته باشید که حتی روی یک ماشین 64 بیت هم میتوانید فاکس پرو رو نصب و اجرا کنید ولی به ابزاری احتیاج دارید.<o:p></o:p></span></p><p class="MsoNormal" dir="RTL" style="text-indent: 0mm; text-align: right; direction: rtl; unicode-bidi: embed;"><span lang="FA">اگر شما هنوز روی ویندوز&nbsp;</span><span dir="LTR">XP</span><span dir="RTL"></span><span dir="RTL"></span><span lang="FA"><span dir="RTL"></span><span dir="RTL"></span>&nbsp;کار میکنید برای نصب و اجرا فاکس پرو تحت داس نباید مشکلی داشته باشید اما اگر از ویرایش بالاتر ویندوز و یا ماشین 64 بیتی استفاده میکنید باید در نظر داشته باشید که برای اجرای برنامه های تحت داس به یک شبیه ساز احتیاج دارید.</span></p> text/html 2014-06-22T08:46:01+01:00 learnvfp.mihanblog.com علی محمد‌ حسین‌ زاده تبدیل کدهای فاکس پرو داس و فاکس پرو 3.0 به ویژوال فاکس پرو 9.0 http://learnvfp.mihanblog.com/post/31 <p class="MsoNormal" dir="RTL" style="text-align:right;text-indent:0mm;direction: rtl;unicode-bidi:embed"><span lang="FA">پس از نصب ویژوال فاکس پرو اگر شما جزو کسانی باشید که در فاکس پرو تحت داس </span><span lang="AR-SA">برنامه هایی</span><span lang="FA"> نوشته باشید، اولین دغدغه شما بعد از نصب ویژوال فاکس پرو این است که آیا برنامه های تحت داس در ویندوز کار میکنند یا نه؟<o:p></o:p></span></p> <p class="MsoNormal" dir="RTL" style="text-align:right;text-indent:0mm;direction: rtl;unicode-bidi:embed"><span lang="FA">پاسخ شما بله است.&nbsp;<o:p></o:p></span></p> text/html 2014-05-31T09:21:04+01:00 learnvfp.mihanblog.com علی محمد‌ حسین‌ زاده محیط برنامه نویسی فاکس پرو در گذر زمان http://learnvfp.mihanblog.com/post/30 <font size="2"> فاکس پرو حدودا 30 ساله است و در این سی سال در عین حالی که ویرایش های مختلفی رو از اون دیدیم اما همیشه یک رابط کاربری آشنا برای ما داشته، یک صفحه ساده با نوار منو در بالای صفحه و یک پنجره کوچک دوست داشتنی به اسم Command که اون رو از سایر زبانهای برنامه نویسی متمایز میکند.</font><div><br></div><div> </div> text/html 2014-05-12T10:54:58+01:00 learnvfp.mihanblog.com علی محمد‌ حسین‌ زاده آرم های شخصی سازی شده فاکس پرو http://learnvfp.mihanblog.com/post/28 <font size="2"> به دلیل اینکه آرم فاکس پرو متعلق به مایکروسافت است&nbsp;و کسی اجازه استفاده از اون رو ندارد، بسیاری از سایتهایی که در موضوع فاکس پرو مطلب دارند و فعالیت میکنند برای خودشون یک آرم مرتبط درست کرده اند.</font><div><font size="2">بنا به درخواستی که در صفحه&nbsp;<a href="http://learnvfp.mihanblog.com/extrapage/collaboration" target="" title="">فراخوان همکاری</a>&nbsp;کردم برای طراحی لوگو، گفتم شاید بد نباشه دوستان نگاهی به چند تا نمونه زیر بندازن.</font></div><div><font size="2"><br></font></div><div style="text-align: center;"><a href="http://www.foxite.com" target="_blank" title=""><font size="2"><img hspace="0" border="0" align="baseline" vspace="0" src="https://static.asset.aparat.com/lp/1214884-1456-l.jpg" alt="www.foxite.com"></font></a></div><div><font size="2">در&nbsp;</font><a href="http://www.lenzor.com/p/XD1j0" target="" title="">این آلبوم</a><font size="2">&nbsp;تعداد بیشتری آرم رو میتونید مشاهده کنید.</font></div><div><hr><font size="2">گردآورنده: علی محمد حسین زاده</font></div><div><font size="2">منابع:</font></div><div><font size="2">اینترنت</font></div> text/html 2014-05-09T10:37:48+01:00 learnvfp.mihanblog.com علی محمد‌ حسین‌ زاده بسته بندی های فاکس پرو در گذر زمان http://learnvfp.mihanblog.com/post/27 <font size="2"> یکی از نکات جالبی که در جستجوهایم بهش برخوردم برای کنفرانس سال 2007، تاریخچه فاکس پرو بود. در سایت تاریخچه فاکس پرو قسمت جالبی وجود دارد به اسم بسته بندی های فاکس پرو و این ممکنه برای خیلی از ما که فاکس پرو رو در چندین دیسکت داشتیم و نصب میکردیم جالب باشد. به عنوان نمونه، تصویر زیر مربوط به بسته بندی فاکس‌بیس+ در سال 1989 است:</font><div><font size="2"><br></font><div><div style="text-align: center;"><img hspace="0" border="0" align="baseline" vspace="0" src="https://static.asset.aparat.com/lp/1212845-4188-l.jpg" alt="Fox Software Packaging FoxBase+/Mac 1989"></div><div><div><font size="2"><br></font><div><font size="2">بد نیست نگاهی به این مجموعه بندازیم تا نکات مختلفی از جمله شکل، قیمت و سیستم عامل های مختلف رو بیاد بیاریم.</font></div><div><font size="2">در&nbsp;</font><a href="http://www.lenzor.com/p/O2oqx" target="" title="">این آلبوم</a><font size="2">&nbsp;میتوانید تعداد زیادی از بسته بندی ها رو مشاهده کنید.</font></div><div><hr><font size="2">گردآورنده: علی محمد حسین زاده</font></div><div><font size="2">منابع:</font></div><div><font size="2">وب سایت&nbsp;<a href="http://foxprohistory.org" target="_blank" title="" style="">تارخچه فاکس پرو</a></font></div> </div> </div></div></div>