View Full Version : مباحث متفرقه
kia1349
چهارشنبه 18 شهریور 1383, 06:59 صبح
موضوعات متفرقه را در این قسمت مطرح کنید
kia1349
پنج شنبه 26 شهریور 1383, 11:15 صبح
این کد رو امتحان کنید
PUBLIC frm
frm = CreateObject("TForm")
frm.Visible = .T.
DEFINE CLASS TForm As Form
PROTECTED mClip
ADD OBJECT cmdClip As TCommand
ADD OBJECT cmdRestore As TCommand
PROCEDURE Load
THIS.decl && declare external functions
ENDPROC
PROCEDURE Init
STORE .F. TO THIS.MaxButton, THIS.MinButton
STORE 300 TO THIS.Width, THIS.Height
THIS.Caption = "Clipping mouse cursor area"
THIS.BorderStyle = 2
THIS.AutoCenter = .T.
THIS.cmdClip.Caption = "Clip"
THIS.cmdRestore.Caption = "Restore"
* saving initial clipping area
lpRect = REPLI (Chr(0), 16)
= GetClipCursor (@lpRect)
THIS.mClip = lpRect
THIS.Resize
ENDPROC
PROCEDURE Destroy
THIS.restoreInitStatus
ENDPROC
PROCEDURE Resize
lnTop = MAX(5, THIS.Height - THIS.cmdClip.Height - 5)
STORE lnTop TO THIS.cmdClip.Top, THIS.cmdRestore.Top
THIS.cmdRestore.Left = THIS.Width - THIS.cmdRestore.Width - 10
THIS.cmdClip.Left = THIS.cmdRestore.Left - THIS.cmdClip.Width - 2
ENDPROC
PROCEDURE clip
* lock the mouse cursor within the form area
MOUSE AT THIS.top, THIS.left PIXELS && put cursor inside the form
* give VFP a moment to update mouse position in its internal data
= INKEY (0.1)
lpPoint = REPLI (Chr(0), 8) && buffer for a POINT structure
= GetCursorPos (@lpPoint) && retrieve absolute mouse position
LOCAL absX, absY, lcCaptionHeight, lcFrameWidth,;
lcFrameHeight, lcRect
absX = ThisForm.buf2dword (SUBSTR(lpPoint, 1,4))
absY = ThisForm.buf2dword (SUBSTR(lpPoint, 5,4))
* retrieve some sizes to be used in calculating the area
lcCaptionHeight = GetSystemMetrics ( 4) && size of normal caption area
lcFrameWidth = GetSystemMetrics (32) && resiz.window frame width
lcFrameHeight = GetSystemMetrics (33) && resiz.window frame height
lcRect = REPLI (Chr(0), 16) && buffer for RECT structure
* set the RECT by the form position, and size
THIS.num2rect (absX, absY,;
absX + THIS.Width + lcFrameWidth,;
absY + THIS.Height + lcCaptionHeight + lcFrameHeight,;
@lcRect)
= ClipCursor (lcRect) && locked!
ENDPROC
PROCEDURE restoreInitStatus
= ClipCursor (THIS.mClip)
ENDPROC
PROCEDURE cmdClip.Click
ThisForm.clip
ENDPROC
PROCEDURE cmdRestore.Click
ThisForm.restoreInitStatus
ENDPROC
FUNCTION buf2dword (lcBuffer)
#DEFINE m0 256
#DEFINE m1 65536
#DEFINE m2 16777216
RETURN;
Asc(SUBSTR(lcBuffer, 1,1)) + ;
Asc(SUBSTR(lcBuffer, 2,1)) * m0 +;
Asc(SUBSTR(lcBuffer, 3,1)) * m1 +;
Asc(SUBSTR(lcBuffer, 4,1)) * m2
ENDFUNC
FUNCTION num2buf
PARAMETERS lnValue
#DEFINE m0 256
#DEFINE m1 65536
#DEFINE m2 16777216
LOCAL b0, b1, b2, b3
b3 = Int(lnValue/m2)
b2 = Int((lnValue - b3 * m2)/m1)
b1 = Int((lnValue - b3*m2 - b2*m1)/m0)
b0 = Mod(lnValue, m0)
RETURN Chr(b0)+Chr(b1)+Chr(b2)+Chr(b3)
PROCEDURE num2rect (lnLeft, lnTop, lnRight, lnBottom, lcBuffer)
lcBuffer = THIS.num2buf(lnLeft) + THIS.num2buf(lnTop)+;
THIS.num2buf(lnRight) + THIS.num2buf(lnBottom)
ENDFUNC
PROCEDURE decl
DECLARE INTEGER ClipCursor IN user32 STRING lpRect
DECLARE INTEGER GetCursorPos IN user32 STRING @ lpPoint
DECLARE INTEGER GetClipCursor IN user32 STRING @ lpRect
DECLARE INTEGER GetSystemMetrics IN user32 INTEGER nIndex
ENDPROC
ENDDEFINE
DEFINE CLASS TCommand As CommandButton
Width = 60
Height = 25
ENDDEFINE
kia1349
پنج شنبه 26 شهریور 1383, 11:16 صبح
اینم یکی دیگه
LOCAL oForm
oForm = CreateObject("Tform")
oForm.Show(1)
* end of main
DEFINE CLASS Tform As Form
Width=350
Height=160
BorderStyle=2
MaxButton=.F.
MinButton=.F.
Autocenter=.T.
Caption="Magnifier"
hForm=0
hDC=0
ADD OBJECT chMagnify As CheckBox WITH Value=.F.,;
Left=20, Top=20, Autosize=.T., Caption="Activate Magnifier"
ADD OBJECT chInvert As CheckBox WITH Value=.F.,;
Left=20, Top=56, Autosize=.T., Caption="Invert colors"
ADD OBJECT lbl1 As Label WITH;
Left=190, Top=20, Autosize=.T., Caption="Scale:"
ADD OBJECT cmbScale As ComboBox WITH Style=2,;
Left=240, Top=20, Width=70, Height=21
ADD OBJECT cmdClose As CommandButton WITH Cancel=.T.,;
Left=140, Top=112, Width=70, Height=27, Caption="Close"
PROCEDURE Init
ThisForm.decl
PROCEDURE Activate
IF THIS.hForm = 0
THIS.hForm = GetFocus()
THIS.hDC = GetDC(THIS.hForm)
ENDIF
PROCEDURE Release
IF THIS.hDC <> 0
= ReleaseDC(THIS.hForm, THIS.hDC)
ENDIF
PROCEDURE cmdClose.Click
ThisForm.Release
PROCEDURE cmbScale.Init
WITH THIS
.AddItem("Normal")
.AddItem("x 2")
.AddItem("x 3")
.AddItem("x 4")
.ListIndex=3
ENDWITH
PROCEDURE MouseMove
LPARAMETERS nButton, nShift, nXCoord, nYCoord
ThisForm.Magnify
PROCEDURE chMagnify.MouseMove
LPARAMETERS nButton, nShift, nXCoord, nYCoord
ThisForm.Magnify
PROCEDURE chInvert.MouseMove
LPARAMETERS nButton, nShift, nXCoord, nYCoord
ThisForm.Magnify
PROCEDURE lbl1.MouseMove
LPARAMETERS nButton, nShift, nXCoord, nYCoord
ThisForm.Magnify
PROCEDURE cmbScale.MouseMove
LPARAMETERS nButton, nShift, nXCoord, nYCoord
ThisForm.Magnify
PROCEDURE cmdClose.MouseMove
LPARAMETERS nButton, nShift, nXCoord, nYCoord
ThisForm.Magnify
PROCEDURE Magnify
#DEFINE SRCCOPY 0xCC0020
#DEFINE NOTSRCCOPY 0x00330008
#DEFINE cnDstWidth 600
#DEFINE cnDstHeight 140
IF ThisForm.chMagnify.Value
LOCAL cBuffer, nX, nY, hDstWin, hDstDC,;
nMode, nSrcWidth, nSrcHeight, nScale
hDstWin = GetActiveWindow()
hDstDC = GetWindowDC(hDstWin)
cBuffer = Repli(Chr(0), 8)
= GetCursorPos(@cBuffer)
= ScreenToClient(THIS.hForm, @cBuffer)
nX = buf2dword(SUBSTR(cBuffer, 1,4))
nY = buf2dword(SUBSTR(cBuffer, 5,4))
nScale = ThisForm.cmbScale.ListIndex
nSrcWidth = INT(cnDstWidth/nScale)
nSrcHeight = INT(cnDstHeight/nScale)
nMode = Iif(ThisForm.chInvert.Value, NOTSRCCOPY,SRCCOPY)
= StretchBlt(hDstDC, 10, 100, cnDstWidth, cnDstHeight,;
THIS.hDC,;
nX-nSrcWidth/2,;
nY-nSrcHeight/2,;
nSrcWidth, nSrcHeight, nMode)
ReleaseDC(hDstWin, hDstDC)
ENDIF
PROCEDURE decl
DECLARE INTEGER GetActiveWindow IN user32
DECLARE INTEGER GetCursorPos IN user32 STRING @lpPoint
DECLARE INTEGER GetWindowDC IN user32 INTEGER hwnd
DECLARE INTEGER GetDC IN user32 INTEGER hwnd
DECLARE INTEGER ReleaseDC IN user32 INTEGER hwnd, INTEGER hdc
DECLARE INTEGER ScreenToClient IN user32 INTEGER hWnd, STRING @lpPoint
DECLARE INTEGER GetFocus IN user32
DECLARE INTEGER StretchBlt IN gdi32;
INTEGER hdcDest, INTEGER nXOriginDest, INTEGER nYOriginDest,;
INTEGER nWidthDest, INTEGER nHeightDest,;
INTEGER hdcSrc, INTEGER nXOriginSrc, INTEGER nYOriginSrc,;
INTEGER nWidthSrc, INTEGER nHeightSrc, INTEGER dwRop
ENDDEFINE
FUNCTION buf2dword(lcBuffer)
RETURN Asc(SUBSTR(lcBuffer, 1,1)) + ;
BitLShift(Asc(SUBSTR(lcBuffer, 2,1)), 8) +;
BitLShift(Asc(SUBSTR(lcBuffer, 3,1)), 16) +;
BitLShift(Asc(SUBSTR(lcBuffer, 4,1)), 24)
kia1349
پنج شنبه 26 شهریور 1383, 11:18 صبح
اینم برای ارتباط با سایت news2news.com
البته باید online باشید
PUBLIC objForm
objForm = CreateObject("Tform")
objForm.Visible = .T.
* end of main
DEFINE CLASS Tform As Form
#DEFINE ccBaseAddr "http://www.news2news.com/vfp/"
#DEFINE ccCgiAddr "http://www.news2news.com/cgi-bin/w32query.php?quser=guest&"
Caption=" VFP code samples on " + ccBaseAddr
Width=760
Height=500
Autocenter=.T.
ShowTips=.T.
csList="cs" + SUBSTR(SYS(2015),3,10)
ADD OBJECT pframe As Tframe WITH Left=6, Top=5, Width=748, Height=440
ADD OBJECT lblUrl As Label WITH Left=12, Top=460, Autosize=.T.,;
ForeColor=Rgb(0,0,192), FontUnderline=.T.,;
TooltipText="Click to open"
PROCEDURE Init
DECLARE INTEGER ShellExecute IN shell32;
INTEGER, STRING, STRING, STRING, STRING, INTEGER
DECLARE INTEGER URLDownloadToCacheFile IN urlmon;
INTEGER lpUnkcaller, STRING szURL, STRING @szFileName,;
INTEGER dwBufLength, INTEGER dwReserved, INTEGER pBSC
THIS.pframe.Resize
THIS.PopulateList
PROCEDURE Destroy
THIS.pframe.pgList.lst.RowsourceType = 0
IF USED(THIS.csList)
USE IN (THIS.csList)
ENDIF
procedure resize
* Thanks Bruce :)
with this
stor .Width - 12 to .pframe.Width
stor .Height - 60 to .pframe.Height
stor .Height - 40 to .lblUrl.Top
endWith
PROCEDURE pframe.pgList.lst.InteractiveChange
ThisForm.lblUrl.Caption = ThisForm.GetUrl()
PROCEDURE lblUrl.MouseDown
LPARAMETERS nButton, nShift, nXCoord, nYCoord
= ShellExecute(0, "open", ThisForm.GetUrl(), "", "", 3)
PROCEDURE pframe.pgExample.Activate
ThisForm.DisplayExample
PROCEDURE pframe.pglist.lst.DblClick
ThisForm.pframe.ActivePage = 2
FUNCTION GetUrl
RETURN ccBaseAddr + "?example=" + ALLT(THIS.pframe.pgList.lst.Value)
PROCEDURE PopulateList
LOCAL cRequest, cTargetFile
cRequest = ccCgiAddr + "qtarget=examples&qmode=list"
cTargetFile = THIS.RemoteToLocal(cRequest)
IF Not EMPTY(cTargetFile)
CREATE CURSOR (THIS.csList) (id N(5), name C(200))
APPEND FROM (cTargetFile) TYPE DELIM WITH ,
WITH THIS.pframe.pgList.lst
.RowsourceType = 2
.Rowsource = THIS.csList
.ColumnWidths="40,500"
IF .listCount > 0
.listIndex = 1
ENDIF
.InteractiveChange
ENDWITH
ENDIF
PROCEDURE DisplayExample
LOCAL cRequest, cTargetFile
cRequest = ccCgiAddr + "qtarget=examples&qmode=source&qindex=" +;
ALLTRIM(ThisForm.pframe.pgList.lst.Value)
cTargetFile = THIS.RemoteToLocal(cRequest)
IF Not EMPTY(cTargetFile)
WITH ThisForm.pframe.pgExample.txtSource
.Value = FILETOSTR(cTargetFile)
.Refresh
ENDWITH
ENDIF
FUNCTION RemoteToLocal(cRequest)
LOCAL nResult, cTargetFile
cTargetFile = Repli(Chr(0), 250)
WAIT WINDOW NOWAIT "Downloading remote file..."
nResult = URLDownloadToCacheFile(0, cRequest, @cTargetFile,;
Len(cTargetFile), 0,0)
WAIT CLEAR
DOEVENTS
RETURN STRTRAN(cTargetFile, Chr(0), "")
ENDDEFINE
DEFINE CLASS Tframe As PageFrame
ADD OBJECT pgList As TpageList WITH Caption="List of examples"
ADD OBJECT pgExample As TpageExample WITH Caption="Source Code"
PROCEDURE Resize
WITH THIS.pgList
.lst.Width = THIS.Width - 14
.lst.Height = THIS.height - .lst.Top - 50
ENDWITH
WITH THIS.pgExample
.txtSource.Width = THIS.Width - 14
.txtSource.Height = THIS.height - .txtSource.Top - 50
ENDWITH
ENDDEFINE
DEFINE CLASS TpageList As Page && Page object
ADD OBJECT lst As ListBox WITH Left=5, Top=5, FontName="Arial",;
FontSize=10, ColumnCount=2, BoundColumn=1
ENDDEFINE
DEFINE CLASS TpageExample As Page && Page object
ADD OBJECT txtSource As EditBox WITH Left=5, Top=5,;
FontName="Courier New", FontSize=9, ForeColor = RGB(0,96,128)
ENDDEFINE
س.حمیدیانفر
چهارشنبه 01 مهر 1383, 14:28 عصر
:تشویق: :تشویق: :cake: :gift: :flower: :flower: :flower: :kiss: :kiss: :kiss: :kiss:
kia1349
پنج شنبه 02 مهر 1383, 06:21 صبح
:kiss:
naderigh
پنج شنبه 02 مهر 1383, 09:42 صبح
ضمن سلام
من میخواستم از داخل برنامه regional setting و number را number style بصورت فارسی (hindi) درآورم
چون برای ثبت اطلاعات و چاپ آن به اعداد فارسی نیاز دارم
البته از فونتهای فارسی نیز استفاده کرده ام ولی متاسفانه اعداد نمایش جالبی ندارد
و از right to left=.T. ولی در ورود اعداد در textbox از وسط شروع به ثبت میشود
و چون در بعضی از ویندوز ها 98 که بصورت دستی این کار انجام نیشود با یکبار خاموش و روشن شدن بصورت اولیه برمیگردد
naderigh
دوشنبه 06 مهر 1383, 09:45 صبح
اساتید جواب چی شد :cry:
kia1349
سه شنبه 07 مهر 1383, 06:05 صبح
من معمولا این کارو نمیکنم و از فونت badr در پارسا 99 یا B badr در فارسی ساز پارسا 2001 استفاده میکنم
naderigh
چهارشنبه 08 مهر 1383, 07:32 صبح
برای این فونت بعضی از اعداد جالب نیست مثلا عدد صفر و ....
واگر که این کار انجام گیرد از فونتهای بین المللی استفاده میکنیم و در ورودی و گزارشات جالبتر خواهد بود
اگر امکانی هست همکاری فرمائید
rezaTavak
چهارشنبه 08 مهر 1383, 15:18 عصر
اعداد فارسی اصلا حالب نیستند متاسفانه!
binyaz2003
چهارشنبه 08 مهر 1383, 22:12 عصر
شما می تونید با یک فونت ادیتور به جای عددهای انگلیسی فارسیش رو بگذارید و استفاده کنید که فکر کنم قبلا یکی از دوستان این کار رو کرده بود و یک فایل به اسم kodak درست یادم نیست گذاشته همینجا برایس استفاده :wink:
naderigh
پنج شنبه 09 مهر 1383, 09:08 صبح
با سلام و تشکر
میفرماپید که برای این موضوع راهی نیست
اگر برایتان امکان دارد ادرسهایی که بشود اینگونه موارد را بدست اورد را بدهید چون اینگونه موارد باعث کارایی بهتر فاکس برای کاربران میگردد
یا اینکه شماها که میتوانید موضوع را از منابع تامین کننده اینگونه موارد بخواهید
rezamim
جمعه 10 مهر 1383, 09:08 صبح
متاسفانه من هم چند وقتی است بدنبال این موضوع هستم ولی پیدا نکرده ام . البته به تازگی یکنفر قطعه کدی برایم فرستاده که اگر تست کردم و جواب داد در همین قسمت قرارش میدهم. البته خیلی تکنیکی نیست ولی اگر جواب بدهد شاید چاره دیگری نباشد.
reza1357
شنبه 11 مهر 1383, 07:23 صبح
سلام
یک راهی هست ولی امتحانش نکردم چون من بیشتر از فونتهای استاندارد ویندوز استفاده میکنم و بیشتر در xp کار می کنم
میشه از نرم افزارهای مثلا font Editor استفاده کنید و فونتهای مورد نظرتان را ویرایش کنید و صفر را به هر شکلی که بخواهید می توانید ان را تغییر دهید
naderigh
شنبه 11 مهر 1383, 07:37 صبح
مشکل من اینجاست که من میخواهم هم در ورود و هم در گزارشات عدد فارسی باشد و همانطوریکه میدانید حجم اعداد فارسی مقداری کوچکتر از اعداد انگلیسی است مثلا اگر یک تکست باکس برای پنج رقم فارسی در نظر بگیریم
زمانی که عدد فارسی است که کاملا درست ولی وقتی که انگلیسی میشود فضا کم است
naderigh
شنبه 11 مهر 1383, 07:41 صبح
با سلام خدمت شما اقا کیا
اگر فضولی نباشد میشود بپرسم که چرا این موضوعات ؛موضوع مهم؛ را باز کردید
و فرموده اید که فقط در همین فرومها سپوال و جواب صورت گیرد
kia1349
یک شنبه 12 مهر 1383, 06:38 صبح
این دسته بندی برای سهولت دسترسی همه دوستان به اطلاعات این فروم بوده و بنا به تقاضای دوستان به این شکل دسته بندی شده
البته من از دوستان راجع به دسته بندی موضوعات سوال کردم و کسی از دوستان نسبت به این نوع طبقه بندی (فعلی)انتقادی نداشت
درج کلمه "موضوع مهم" در کنار مباحث هم به این خاطر است که این قسمتها همیشه در دسته بندی موضوعات بعنوان موضوعات مهم تر در قسمت بالائی فروم قرار بگیرند تا دسترسی دوستان به آنها آسانتر باشد
البته باب انتقاد و پیشنهاد برای تمام دوستان و اساتید باز است و هرکس نظری داشته باشد با دیده منت و بعد از کسب نظر موافق سایر دوستان در این قسمت لحاظ میشود
شاید باور نکنید من خودم چند وقته که دنبال یکی از موضوعاتی میگردم که برای یکی از دوستان پست کردم ولی هنوز نتونستم بفهمم که اونو توی چه قسمتی پست کردم
و این فقط به خاطر آشفتگی بود که با ایجاد کردن موضوعات مختلف و بعضا بی ربط به متن سوال حاصل شده بود و بنا به پیشنهادات دوستان مقررشد تا تمام مباحث موضوع بندی شوند
البته من هم سعی کردم تا نحوه انتخاب موضوعات و چیدمان و آرایش آنها را از سایت universalthread الگو برداری کنم تا خطای کمتری به چشم بخورد
naderigh
یک شنبه 12 مهر 1383, 07:51 صبح
با سلام و تشکر
تمام مواردی که ذکر میکنم فقط جنبه پیشنهادی دارد
ببینید شما اگر بعنوان یک فرد معمولی وارد صفحه اصلی برنامه نویس شوید سرگروه موضوعات مثلا ویژوال بیسیک با مثلا چند مبحث دلفی با چند مبحث یا فاکس با 310 مبحث و .............
متوجه میشوید که دلفی تعداد مباحث بیشتری دارد و از آن میشود تغریبا نتیجه گرفت که پس تعداد افرادی که حداقل برنامه نویسی را دوست دارند و دنبال طرح سپوال و جواب هستند در مبحث دلفی بیشترند و همانطویکه میدانید با این اقدام جدید تعداد مباحث فاکس ثابت میماند
موضوع بعدی اگر ما در یک زمینه خاص سپوالی داشته باشیم سپوالات مطرح شده را مرور و بعضا به جواب مورد نظر خود میرسیم و اگر مورد نیازمان پیدا نشد انگاه اقدام به طرح آن مینماپیم
همانطوریکه میدانید تعداد مباحث قابل روپیت در هر صفحه چندین برابر تعداد سپوال و جوابهایی است که در یک صفحه جا میگیرد البته اگر جوابها فقط چند خط باشد نه چند صفحه و .......
و با گذشت زمان و مطرح نمودن سپوال و جوابها بر تعداد صفحات هر مبحث افزوده و این خود مشکلات خاص خودش را دارد
حال اگر شما بتوانید این موارد را در موضوعات جدید طوری بگنجانید که حداقل در هر مبحث بشود مبحث جدیدی مرتبط با همان مبحث اصلی را مطرح کرد خیلی عالی خواهد بود
kia1349
یک شنبه 12 مهر 1383, 11:22 صبح
در نگاه اول نظر شما قابل تعمق است ولی این را عرض کنم که پراکندگی موضوعات و تعدد موضوعات دلیل بر این نیست که تعداد بیشتری به آن زبان برنامه نویسی علاقه بیشتری دارند و بعضا مشاهده میشود که بعضی از پستها فقط یک جواب دارند و اونهم جوابی نیست که علمی بوده باشد بلکه اصطلاحا یک آف تاپیک است که اصلا ارزش علمی ندارد و سایر کاربران برای خالی نبودن عریضه اقدام به پست آنها میکنند
توضیحا عرض کنم که روزانه تعداد زیادی از پستهای نامربوط . تکراری. آف تاپیک. غیر علمی . غیر اخلاقی .و ...... توسط مدیران بخشها به بخش "مدیران" و بخش "سطل آشغال" منتقل میشود که تاکنون این مورد در این فروم مشاهده نشده است و هر کدام از دوستان این فروم خود به منزله یک مدیر نظارت کامل بر پستهای خود دارند
هر چند بنده اعتقاد دارم که تعداد کاربران محیطهای برنامه نویسی vb و delphi از فاکس پرو بیشتر است(که دلایل این موضوع قبلا در همین فروم مورد بحث قرار گرفته) لکن هر زبان برنامه نویسی موضوعات متمرکزی دارد که بعنوان قابلیتهای همان زبان مورد بحث میباشد و کم و بیش در تمام زبان های نسل سوم مشاهده میگردد
موضوعاتی از قبیل برنامه نویسی وب بیس . تهیه ریپورت . کلاسها . اکتیویکسها . فرمها . و ... اغلب از موضوعات رایج و بحث بر انگیز هر زبان برنامه نویسی است که ب کرات مورد سوال و جواب قرار میگیرد
به هر حال بنده از نظر جنابعالی نهایت استفاده را خواهم برد و خیلی دوست دارم تا کلیه دوستان این فروم هم در مورد پیشنهاد جنابعالی اظهار نظر نمایند تا تغییرات احتمالی مورد نظر دوستان را اعمال نمائیم
نکته آخر اینکه باب انتقاد و پیشنهاد در این فروم و صد البته مجموعه برنامه نویس کاملا باز بوده و هریک از مدیران میبایست از نظرات سازنده تمام اعضا (کمال استفاده برای پربارتر کردن مجموعه) استفاده نمایند
و اینکه بنده هیچگونه ارجحیتی نسبت به سایر دوستان ندارم مگر سابقه قبلی که باعث گردیده تا از طرف مدیریت محترم سایت (حاج مهدی گل) به این مسئولیت گماشته شوم
reza1357
یک شنبه 12 مهر 1383, 19:46 عصر
متوجه میشوید که دلفی تعداد مباحث بیشتری دارد و از آن میشود تغریبا نتیجه گرفت که پس تعداد افرادی که حداقل برنامه نویسی را دوست دارند و دنبال طرح سپوال و جواب هستند در مبحث دلفی بیشترند و همانطویکه میدانید با این اقدام جدید تعداد مباحث فاکس ثابت میماند
دوست گرامی
ببینید در بخش … مشاهده شده که یک موضوع چندین بار تکرار شده است و این امر باعث افزایش مباحث شده که نتیجه ان نارضایتی کاربران و عدم دسترسی به موضوعات مورد نظر می شود اگر نظم خاصی به بخش ها سرایت شود قطعا دسرسی و بهره برداری بیشتر خواهد شد و امار پستها و ایجاد موضوعات تکراری هم نسبتا کاهش می شود
یک سوال ایا در بخشی که 56 صفحه یا بیشتر داشته باشد می توان موضوع مورد نظر در کمترین زمان دسترسی داشته باشید :?:
اگرکل بخشها بهمین سبک ایجاد شوند دسترسی و استفاده از موضوعات خیلی راحت تر و پرثمرترخواهد بود :)
ما ایرانیا همیشه به ظاهر نگاه میکنیم نه به باطن :wink:
امیدوارم دوستان نارحت نشده باشند :oops:
با تشکر
علی اکبر
دوشنبه 13 مهر 1383, 16:36 عصر
اگر تعداد پستها دراین طرح جدید بسیار زیاد شود مثلا 20 یا حتی 100 صفحه
واگر فردی تازه به این بخش سر بزند یعنی قبلا موضوعات را دنبال نکرده باشد به نظر شما جالب است 100 صفحه را مطالعه کند تا مبحث مورد نظر خود را پیدا کند ؟؟؟؟
این طرح به شرطی قابلیت که مدنظر آقای حیدر کیا را دارد که بتواند درداخل مبحث موضوعات مهم یک طبقه جدید هم ایجاد گردد تازیر مجموعه موضوعات اصلی شود که فکر نمی کنم فعلا دراین سایت امکان پذیر باشد
قبلا هم گفته بودم نظر شخصی من این است که این موضوعات مهم به نکات کلیدی وتازه ها پرداخته شود تا تعداد پستها کمتر ومطالعه آنها مفید تر باشد یعنی بخش جهت خبرهاونتایج بحثهای معمولی گردد.
با تشکر از استاد محترم جناب آقای حیدرکیا
naderigh
دوشنبه 04 آبان 1383, 13:14 عصر
با سلام
من برنامه ای نوشته ام با کپی نمودن آن در برخی از کامپیوتر ها اجرا نمیگردد خطای program error
میگیرد و با نصب office آن خطا بر طرف میگردد
البته سه فایل dll مورد نیاز اجرای فاکس را نیز در همان شاخه کپی نموده ام
چه فایلی کسر میباشد
rezamim
سه شنبه 05 آبان 1383, 09:06 صبح
فکر کنم باید فایل کتابخانه ویژوال سی را هم کپی کنید . یعنی msvcrt.dll
rezamim
سه شنبه 05 آبان 1383, 09:09 صبح
ببخشید msvcr70.dll :oops:
naderigh
سه شنبه 05 آبان 1383, 10:50 صبح
با تشکر
من میخواهم اطلاعات ویندوز را به داس تبدیل کنم
ابزاری برای این موضوع دارید
rezamim
سه شنبه 05 آبان 1383, 20:57 عصر
بنده خیر
naderigh
چهارشنبه 06 آبان 1383, 08:08 صبح
با سلام
من از فایل dll برای اجرا استفاده کردم که این مشکل در بعضی از کامپیوترها هست
فایلهای dll به شرح زیر میباشد
Msvcr70.dll
Vfp7r.dll
Vfp7renu.dll
فایل کسری که با نصب office نصب میگردد چیست
rezaTavak
پنج شنبه 07 آبان 1383, 15:41 عصر
بستگی داره به اینکه در برنامه شما چی وجود داشته باشه مثلا Rtf یا MsGraph یا ... همه با نصب Office انجام میشه.
rezaTavak
پنج شنبه 07 آبان 1383, 16:01 عصر
البته یادم رفت Office فایلهای Runtime بیسیک را هم نصب میکند. ولی فایلهای شما برای فاکس کامله.
naderigh
شنبه 09 آبان 1383, 12:31 عصر
با سلام و تشکر
فعلا با نصب office این مشکل را حل میکنم
ولی برای تبدیل اطلاعات ویندوز به داس ابزاری هست :kaf:
naderigh
سه شنبه 12 آبان 1383, 13:06 عصر
میخواهم بانکهای دلفی را به فاکس تبیل نمایم ولی با import ویژوال فاکس ورژنهای 7و8و9 همگی فایلهای دلفی 3.5 و 4 را تبدیل منماید و بالاتر از انرا خطا میگیرد
لطفا راهنماپی فرماپید
rezaTavak
سه شنبه 12 آبان 1383, 23:14 عصر
با استفاده از InterBase و خود دلفی چرا انجام نمیدهید؟
naderigh
چهارشنبه 13 آبان 1383, 10:03 صبح
با سلام و تشکر
متاسفانه با دلفی و interbase کار نکردم
اگر امکان دارد توضیحاتی در باره ان بفرماپید
binyaz2003
یک شنبه 24 آبان 1383, 04:03 صبح
با سلام و عرض تبریک عید فطر
یک موضوع جالب(حداقل برای من)
چرا و برای چی اسم این برنامه ما رو فاکس(روباه) گزاشتن؟؟؟؟؟؟
rezaTavak
یک شنبه 24 آبان 1383, 14:02 عصر
چون روباه باهوشترین و زیرکترین حبوانات مشهوره و فاکس پرو از از پدرش Foxbase اسم خودشو به ارث برده. و اگه یه نگاهی به فاکس پرو بیاندازید می بینید خیلی هم باهوشه واقعاً!!! شاید به خاطر تکنولوژی Rushmore. اصلا کسی سرعت هاردش را توی داس و ویندوز مقایسه کرده؟ ببینه چقدر داس توی حافظه مخفی هارد بد عمل میکنه نسبت به ویندوز؟ البته تقصیر هم نداره فقط 640 کیلوبایت در اختیار داره. خب توی اون زمان با این امکانات کم فقط فاکس پرو بود که خوب کار میکرد و هنوز هم به نظر من از خیلی نرم افزارهای دیگه بهتر و ارحجتره.
یکی از خوبیهای فاکس هم اینه که احتیاج به ODBC نداره! و همین باعث سرعتش در پردازش بانکها میشه.
kia1349
دوشنبه 25 آبان 1383, 06:13 صبح
هر کاری رو در کوتاهترین زمان و با کمترین پیچیدگی و بهترین شکل ممکن انجام میده
naderigh
سه شنبه 13 بهمن 1383, 07:29 صبح
با سلام
من میخواهم سایز فایل pdf را توسط فاکس بدست آورم البته بدون استفاده از ()fopen
rezaTavak
سه شنبه 13 بهمن 1383, 12:54 عصر
خب با تابع Adir انجام بده.
javad_hosseiny
سه شنبه 13 بهمن 1383, 13:14 عصر
با سلام خدمت دوستان من می خواهم لیست ابجکت استفاده شده در یک فرم را بدست آورم (مثلا لیست label ها را داشته باشم که به هنگام تغییر فونت فرم بتوان اتوماتیک نام و تعداد label ها را بدست آورد و فونت آنها را نیز تغییر داد) و یا امکان این مطلب در فاکس وجود دارد که همانند دلفی به هنگام تغییر فونت و بقیه مشخصات از خاصیت وراثت استفاده کرد و خصلت فونت کلیه آبجکت ها ی استفاده شده در فرم تغییر پیدا کنند
binyaz2003
سه شنبه 13 بهمن 1383, 14:51 عصر
تعداد کنترل های روی فرم = controlcount
نحوه دسترسی
for i=1 to thisform.controlcount
messagebox(Thisform.controls[i].name)
endfor
rezaTavak
سه شنبه 13 بهمن 1383, 20:50 عصر
سلام
با روال Setall در فرم میتوان نیز به این منظور شما رسید. شما می توانید با این دستور تمام کنترلهای دارای مشخصه ذکر شده را تغییر دهید. Setall از مشخصه های کنترلهایی است که میتواند در خود کنترلی دیگر جای دهد.
شما در فاکس برای وراثت از کلاس استفاده کنید. یا ویژوال یا دستوری. منظور اینه که هر کنترلی بسته به اینکه از چه کلاسی باشه از وراثت استفاده می کنه بر عکس دلفی که از وراثت خود فرم استفاده میکنه.
naderigh
چهارشنبه 14 بهمن 1383, 12:13 عصر
جناب آقای توکل
با سلام و تشکر از لطف شما بسیار بسیار ........... سپاسگزارم :موفق:
rezaTavak
چهارشنبه 14 بهمن 1383, 19:10 عصر
البته با توجه به توضیحات جناب حسینی عزیز من ادامه دادم. تا توضیحات کامل بشه. البته من زیاد دلفی نمیدونم چون سی بلدم لازم ندیدم دلفی را دنبال کنم و فقط در حد آشنایی بلد شده ام.
کمک به یکدیگر در اینجا وظیفه است قربان. اگر باز هم بلد باشیم کمک میکنیم.
javad_hosseiny
پنج شنبه 15 بهمن 1383, 14:36 عصر
با تشکر از پاسخ آقا رضا و آقای بی نیازی
آیا تاکنون با این مشکل برخورد کرده اید که برنامه به هنگام طراحی و یا در داخل محیط فاکس درست کار کند ولی بعد از درست کردن exe با مشکل مواجه شود (مثلا در فرم ها ی من که از editbox استفاده کردم بعد از درست کردن exe خط اسکرول جهت پیمایش عمودی متن نمی آید ولی با کرسر درست عمل می کند یعنی اینکه آن ابجکت درست عمل می کند ولی خط اسکرول نمایش داده نشده)
ProgrammingLove
جمعه 16 بهمن 1383, 15:32 عصر
آیا تاکنون با این مشکل برخورد کرده اید که برنامه به هنگام طراحی و یا در داخل محیط فاکس درست کار کند ولی بعد از درست کردن exe با مشکل مواجه شود
من هم چند مورد داشته ام و مجبور شدم کلک رشتی بزنم . :(
rezaTavak
جمعه 16 بهمن 1383, 16:00 عصر
من از کنترلهای فاکس استفاده نمیکنم چون توی فارسی مشکل داره. مشکل کنترلهای فاکس را در قسمت Frm20.dll مطرح کرده ام که چرا کنترلهای فاکس درست نیستند.
binyaz2003
جمعه 16 بهمن 1383, 17:22 عصر
یک نکته جالب از فوروم universalthreade
STRTOFILE(FILETOSTR("avatar.zip"), "c:\ali.zip")
این کد فایلی رو که داخل فایل اجرایی قرار دادین رو در میاره و ذخیره می کنه مثلا در مثال بالا یک فایل فشرده به اسم ali
rezaTavak
جمعه 16 بهمن 1383, 22:40 عصر
چطوری اینجوری میشه؟
binyaz2003
شنبه 17 بهمن 1383, 11:19 صبح
یعنی حتی فایلهایی گرافیکی رو که تو فایل اجرایی هستند رو میشه درآورد
rezaTavak
یک شنبه 18 بهمن 1383, 13:25 عصر
سلام
من انجام دادم نشد که؟؟؟؟
binyaz2003
یک شنبه 18 بهمن 1383, 16:28 عصر
من فایلی رو در قسمت other files اضافه کردم و البته بصورت include و انجام شد
من انجام دادم نشد که؟؟؟؟
:گیج:
rezamim
یک شنبه 18 بهمن 1383, 18:14 عصر
نمیدونم این سئوال رو من خیلی وقت پیش کرده بودم و خط دستور زیر رو به من گفتند.
البته من هم نمیدونم چه جوری میشه که اینجوری میشه ولی خداییش خیلی خوب میشه.
فرض کنید فایل test.dll رو بصورت test.dl_ در قسمت text files پروژتون قرار دادین . برای کپی اون در مسیر defpath میتونین دستور زیر رو اجرا کنین.
lcDllName = "test.dll"
=STRTOFILE(FILETOSTR(STRTRAN(lcDllName, ".dll", ".dl_")), defpath + lcDllName)
اینا همش قدرت خداست :wink:
rahro
دوشنبه 19 بهمن 1383, 05:35 صبح
[b]سلام بر شما
آیا میشود فایلهای ایجاد شده با پسوند fxp را دوباره به prg تبدیل کرد ؟!!
رهرو
rezaTavak
دوشنبه 19 بهمن 1383, 09:28 صبح
جای دیگه هم جوابتون را داده ام. اما بله میشه با ریفاکس. اگه هم نداری توی همین بخش بگرد پیداش میکنی :wink:
binyaz2003
پنج شنبه 29 بهمن 1383, 13:32 عصر
چطوری میشه یک bmp رو از حافظه پاک کرد؟
مظورم اینه که من به یک image یک bmp می دم اما بعد که یک فایل دیگه رو ولی به همون اسم کپی می کنم و دوباره خاصیت picture رو تنظیم می کنم باز هم همون فایلی هست که پاک شده و وجود فیزیکی نداره
:گیج:
kia1349
جمعه 30 بهمن 1383, 12:29 عصر
:sorry:
ProgrammingLove
جمعه 30 بهمن 1383, 14:21 عصر
باید یه نصویر دیگه رو به Image نسبت بدین و بعد دوباره همون عکس قبلی رو
naderigh
سه شنبه 04 اسفند 1383, 07:30 صبح
با سلام و تسلیت ایام سوگواری امام حسین(ع) و یاران با وفایش
من یک برنامه نوشته ام که در شبکه و توسط چند کاربر اطلاعات بایستی ثبت گردد و اطلاعات ورودی مشابه هم و دریک جدول ثبت میگردد حال میخواهم که به محض ورود هر رکورد و ذخیره نمودن توسط هریک از کاربران برای کاربران دیگر در همان لحظه قابل روپیت باشد یا اصطاحا فرم ورودی هر کاربر refresh شود برای کاربران در حال کار
naderigh
سه شنبه 04 اسفند 1383, 07:42 صبح
در فرمها چگونه میشود از دستور CHRSAW([nSeconds]) استفاده کرد
naderigh
چهارشنبه 05 اسفند 1383, 07:21 صبح
آقایان لطفا کمک نمائید
binyaz2003
چهارشنبه 05 اسفند 1383, 09:45 صبح
حال میخواهم که به محض ورود هر رکورد و ذخیره نمودن توسط هریک از کاربران برای کاربران دیگر در همان لحظه قابل روپیت باشد
برای این قصد هیچ راهی جز refresh نمودن فرم نیست حالا شما باید از یک برنامه جانبی استفاده کنید مثلا با winsock یک برنامه بنویسید برای هر کاربر و لیست همه کاربرا و اسامی کامپیوترشون رو داشته باشید بعد با پروتکل UDP برای همه یک پیغام بفرستین در طرف گیرنده هم هر وقت پیغام دریافت شد فرم اکتیو رو رفرش کنه
naderigh
چهارشنبه 05 اسفند 1383, 10:11 صبح
آقا بسیار سپاسگزارم
ولی حیف شد
من در فرمها از گرید نیز اسفاده کردم برای نمایش اطلاعات و با کلیک روی ان فرم refresh میشود میخواستم که این کار بصورت اتومات و در لحظه ثبت انجام شود البته برای سایر کاربران چون برای کاربری که این ردیف را ثبت کرده باز هم فرم refresh میگردد
حال اگر زحمتی نیست در خصوص استفاده فرمان CHRSAW در کجا و کدام کنترل فرم
بایستی بکار گرفت
binyaz2003
چهارشنبه 05 اسفند 1383, 14:15 عصر
در خصوص استفاده فرمان CHRSAW
اگر شما هم مثال رو در علپ دیده باشید فکر کنم برای fox داس استفاده شه شما برای فرم خاصیت keypreview رو .t. کنید و بعد در واقعه keypress شما می تونید کلیدهای فشار داده شده رو تشخیص بدین
naderigh
پنج شنبه 06 اسفند 1383, 09:38 صبح
من بسیار متشکرم از لطف شما
هدف من از اینکه میخواهم از فرمان CHRSAW استفاده کنم این است که بعد از هر چند ثانیه فرم refresh شود
binyaz2003
پنج شنبه 06 اسفند 1383, 11:06 صبح
خوب یک تایمر بزارید
naderigh
شنبه 08 اسفند 1383, 07:22 صبح
باز هم ممنون از عنایت شما
همانطور که مستحضرید تایمر به ازاء زمانی که میدهی مدام در حال کار است ولی فرمان CHRSAW اگر کاربر مدتی کاربر کار نکند فعال میگردد
binyaz2003
شنبه 08 اسفند 1383, 10:08 صبح
اگر کاربر مدتی کاربر کار نکند فعال میگردد
شما باید این رو چک کنید و الا به خودی خود اجرا نمیشه ! تو هلپ که اینطور نوشته
naderigh
شنبه 08 اسفند 1383, 12:27 عصر
بسیار متشکرم فعلا طبق فرمایش شما با تایمر گرید را ریفرش میکنم و انشاءالله که مشکلی پیش نخواهد آمد
naghdi
سه شنبه 11 اسفند 1383, 19:14 عصر
سلام
دوستان اگر در پنجره command کلید ctrl+p را بزنید پنجره print فعال میشوم آیا دستوری هست که بتوان با آن پنجره print را فعال نمود .
البته برای page setup sys 1037 هست ولی برای print ندیدم.
متشکرم
binyaz2003
سه شنبه 11 اسفند 1383, 20:36 عصر
set printer on prompt
naghdi
جمعه 14 اسفند 1383, 19:39 عصر
سلام
ممنونم ولی وقتی یک فایل txt را با modify file test.txt باز میکنیم سپس از این command استفاده میکنیم
options فعال نمیشه و محتوای فایل هم پرینت نمیشه در صورتی که با کلید CTLR+p پرینت انجام میشه !
یا علی
binyaz2003
یک شنبه 16 اسفند 1383, 00:05 صبح
سلام
دیگه نمیدونم
ولی من با sys(1037) فکر کنم بود اگر propertis رو بزنیم مشخصات چاپگر رو میاره و قابل تغییرند مثل options من امتحان کردم
در ضمن اگر بخواهید پروی در چاپ بگیرید می تونید با دستور زیر وقتی کاربر چاپ رو زد اول پنچره انتخاب چاپگر و تنظیماتش بیاد :
preview form sample to printer prompt preview
naderigh
چهارشنبه 19 اسفند 1383, 11:52 صبح
من میخواهم فاصله تعداد (روز) بین دو تاریخ شمسی را درست بدست آورم چون با تابع
CTOD(dat2)-CTOD(dat1) میلادی را تبدیل میکند و چند روزی اختلاف دارد
binyaz2003
چهارشنبه 19 اسفند 1383, 14:15 عصر
شما از کلاسی که آقا کیا در مبحث برنامه های کاربردی گزاشتن استفاده کنید
naderigh
شنبه 22 اسفند 1383, 07:10 صبح
ممنون و متشکر :موفق:
binyaz2003
سه شنبه 09 فروردین 1384, 10:00 صبح
یک کار جالب : تشخیص نصب بودن sql server روی سیستم
objWMI = GetObject("winmgmts:\\")
cCadWMI = "Select * from Win32_Service Where Name = 'MSSQLServer'"
oBServ = objWMI.ExecQuery(cCadWMI)
If oBServ.Count > 0 Then
For Each objSer in oBServ
? "SQL Server is " + objSer.State + "."
Next
Else
? "SQL Server no esta instalado en este computador."
EndIf
منبع : www.davphantom.net
binyaz2003
سه شنبه 09 فروردین 1384, 17:53 عصر
ایندفعه 2 کار جالب : تشخیص نصب بودن theme ویندوز و فعال یا غیر فعال کردن اون
Declare Integer EnableTheming In "UxTheme.dll" Integer nEnable
=EnableTheming(.F.)
Inkey(5, "H")
=EnableTheming(.T.)
Declare Integer IsThemeActive in "UxTheme.dll" () As Long
nRet = IsThemeActive()
? "Themes: " + Iif(nRet = 0, "No activos","Activos")
منبع : www.davphantom.net
binyaz2003
دوشنبه 12 اردیبهشت 1384, 09:36 صبح
سلام
چطوری میشه این فرمولها رو عین تو کتابها تو فاکس نشان داد؟
rezaTavak
دوشنبه 12 اردیبهشت 1384, 10:05 صبح
سلام
قابل ویرایش باشه یا نه؟
یه راه داره:
از نرم افزار Office قسمت Equation استفاده کنید.
binyaz2003
دوشنبه 12 اردیبهشت 1384, 13:09 عصر
نه قابل ویرایش نباشه
البته اگر یک راهی هم برای نوشتنش باشه خوبه
rezaTavak
سه شنبه 13 اردیبهشت 1384, 11:34 صبح
سلام
من هر چی سعی کردم از دیروز تا حال نتونستم جای اون را در Office پیدا کنم. اگه موفق شدم به شما هم اطلاع میدهم.
binyaz2003
سه شنبه 13 اردیبهشت 1384, 11:58 صبح
من آفیس 2003 رو کامل نصب کردم اما نیست تو هلپشم نوشته اگر نیست نصبش کنید .
اما چطور و از کجا؟
rezaTavak
سه شنبه 13 اردیبهشت 1384, 23:14 عصر
فعلا اینو ببین
http://www.mathtype.com/msee
و این ضمیمه را البته Offce 2003 باید نصب کامل شده باشه.
binyaz2003
چهارشنبه 14 اردیبهشت 1384, 09:55 صبح
سلام
جدول مثالتون باز نمیشه
من بالاخره نصبش کردم.آیا این رو میشه به همراه برنامه برای اینستال برداشت؟
اون سایت هم که پولیه
از عکس هم نمیخوام استفاده کنم حالا میشه مثلا متن سوال رو هم تو همین نوشت؟
rezamim
جمعه 16 اردیبهشت 1384, 20:51 عصر
با سلام
میخواستم بدانم چطور میشه میزان حافظه مورد استفاده توسط برنامه کاربردی تولید شده را بدست آورد؟
و چطور برای یک برنامه حداقل مشخصات سخت افزاری را تعیین میکنند؟
با تشکر
rezamim
جمعه 16 اردیبهشت 1384, 20:52 عصر
سلام دوباره
بعد از عوض شدن سرور برنامه نویس مشکلاتی در به روز شدن سایت برای من پیدا شده . آیا شما هم این مشکل را دارید؟
rezaTavak
شنبه 17 اردیبهشت 1384, 12:15 عصر
سلام
آقای بینیاز (حسینی عزیز)
ببخشید فکر کنم یه چیزی جاگذاشتم! :oops:
راستش اینجوری میشه کار کرد:
یک جدول که فیلد جنرال داره و مثلا اسمش a باشه
Append General a class "Equation.3"
حالا روش که دوبل کیلک کنی (توی فرمی که ساختی از Ole) میتونی تغییرش بدی مثل فرمی که ساختم بعد از دکمه ویرایش دوبل کلیک کن.
در مورد نصب اون هنوز کاری نتونستم بکنم.
منظور از سایتی که دادم هم این بود که این شرکت برای میکروسافت این را طراحی کرده خود راهنمای برنامه گفت توی این سایت برید.
توی سایت میکروسافت هم به نتیجه ای نرسیدم.
توی MSDN هم چیزی پیدا نکردم.
ببخشید ولی من خیلی گشتم.
rezaTavak
شنبه 17 اردیبهشت 1384, 12:21 عصر
سلام
میخواستم بدانم چطور میشه میزان حافظه مورد استفاده توسط برنامه کاربردی تولید شده را بدست آورد؟
و چطور برای یک برنامه حداقل مشخصات سخت افزاری را تعیین میکنند؟
منظورتون فاکس پروست یا کلی؟
rezamim
شنبه 17 اردیبهشت 1384, 15:46 عصر
منظورم برنامه exe ای هست که ساختیم و حالا میخواهیم بدونیم موقع اجرا چقدر حافظه مصرف میکنه.
اصلا نمیدونم این حرفم درسته یا نه؟
binyaz2003
شنبه 17 اردیبهشت 1384, 21:11 عصر
در مورد نصب اون هنوز کاری نتونستم بکنم.
منظورتون برای نصب همراه برنامه هست؟
فیلد جنرال
اینطوری باید آفیس نصب باشه نه؟
rezaTavak
شنبه 17 اردیبهشت 1384, 21:14 عصر
سلام
برای اینکه بدونید حداقل مشخصات سخت افزاری چه هست بر اساس شماره نگارشی که کمپایل میشه همون مشخصات فاکس پرو را داره در واقع برنامه فاکس پروی که شما نوشته اید یک نسخه اجرایی کامل از خود فاکس پرو است یعنی همون فایلهای Dll که مورد نیاز فاکس پرو است همه چیز داره. در تحت داس یک برنامه حتی یک خطی کلی حجم داشت چون dll نداشت.
مثلا من از نگارش 7 استفاده میکنم بنابراین مشخصاتی که از نظر سخت افزاری برنامه فاکس پروی من داره عین مشخصات فاکس 7 است.
این بستگی به خیلی چیزها داره که حافظه مصرفی برنامه چقدر باشه. مثلا شما اگر یک بانک 100 مگابایتی را باز کنید خیلی حافظه می خواهید تا یک بانک مثلا 10 مگابایت. حداقل حجمی که فاکس با آن کار میکنه و پیشنهاد میشه 64 مگابایت است. (رم سیستم) که خود فاکس 7 مگا حدوداً نیاز داره.
rezaTavak
شنبه 17 اردیبهشت 1384, 21:24 عصر
سلام
در مورد کپی بدون نصب منظورم بود.
افیس که همه اش نه فقط Equation.
naderigh
یک شنبه 18 اردیبهشت 1384, 11:53 صبح
چگونه میشود پیغام MESSAGEBOX را رنگی نمود
فرض کنید پیغامی (شما باید پانصد ریال بپردازید) یعنی مقداری از پیغام رنگ جداگانه ای داشته باشد
binyaz2003
یک شنبه 18 اردیبهشت 1384, 12:12 عصر
باید یک کلاس برای خودتون بنویسید مسیجباکس این کار رو نمیکنه
rezamim
یک شنبه 18 اردیبهشت 1384, 12:59 عصر
ممنون آقای توکل
rezaTavak
یک شنبه 18 اردیبهشت 1384, 22:25 عصر
سلام
اختیار دارید. :flower:
rahro
دوشنبه 19 اردیبهشت 1384, 05:17 صبح
سلام
در تهیه یک فرم - من میخواهم نوع فونت و سایز فونت خود را جایگزین فونت و سایز پیش فرض سیستم نمایم چگونه میتوان اینکار رو کرد که دیگر مجبور نباشم برای هر شی این تغییرات را انجام دهم ؟
kia1349
دوشنبه 19 اردیبهشت 1384, 06:16 صبح
در تنظیمات فاکس tools>option>forms>template classes برای خودتون یک فرم با مشخصات دلخواه بسازید
و از این به بعد سیستم اونو براتون بیاره
rahro
سه شنبه 20 اردیبهشت 1384, 05:16 صبح
در تنظیمات فاکس tools>option>forms>template classes برای خودتون یک فرم با مشخصات دلخواه بسازید
و از این به بعد سیستم اونو براتون بیاره
اقای کیا سلام علیکم
من تازه از دنیای سیاه DOS به ویندوز امدم شما ادرس کلاس داده اید اخه مومن من یکی دوساعت که کتاب ویزوال فاکس 3 رو خواندم چیز زیادی از "کلاس" متوجه نشدم!! چطور ین کلاس رو بسازم
در ضمن آیا با این روش میتوانم همین مشکل رو در textbox وlabel حل میشود ؟ یعنی اونجا دیگه لازم نیست من هر دفعه فونت پیش فرض و سایز فونت و تغییر دهم ؟؟
:cry: :)
rahro
سه شنبه 20 اردیبهشت 1384, 05:20 صبح
در تنظیمات فاکس tools>option>forms>template classes برای خودتون یک فرم با مشخصات دلخواه بسازید
و از این به بعد سیستم اونو براتون بیاره
آقای کیا سلام علیکم
من تازخ از دنیای DOS وارد دنیای ویزول فاکس شده ام "کلاس" سر در نمی اورم یکی دو تا ساعت کتاب ویزوال فاکی پرو 3 و مطالعه کردم ولی متوجه نشدم اگر میشه جامع توضیح بدین :cry:
در ضمن آی با این روش مشکل من در txtbox و label حل میشه ؟؟
binyaz2003
سه شنبه 20 اردیبهشت 1384, 08:52 صبح
شما باید برای شی هاتون هم یک کلاس بسازید مثلا فونتشون چی باشه یا right to left باشن و alignment=right باشه برای ساختن کلاس :
File->New->class
حالا اسم کلاس رو می نویسید در گزینه بعد شما تعیین می کنید که شی پایه کلاس چی باشه مثلا یک فرم برای template و در انتها مشخص می کنید که در چه فایلی قرار بگیره
rahro
سه شنبه 20 اردیبهشت 1384, 22:14 عصر
شما باید برای شی هاتون هم یک کلاس بسازید مثلا فونتشون چی باشه یا right to left باشن و alignment=right باشه برای ساختن کلاس :
File->New->class
حالا اسم کلاس رو می نویسید در گزینه بعد شما تعیین می کنید که شی پایه کلاس چی باشه مثلا یک فرم برای template و در انتها مشخص می کنید که در چه فایلی قرار بگیره
با سلام خدمت تمامی دوستان
جناب بی نیاز : من موارد شما را اجرا کردم ولی نتیجه نگرفتم . در کل معنای ساده کلاس چیه ؟ :mad: برای چه مواقعی استفاده میشه ؟ یک مثال ساده وشفاف بزنید 0خواهش میکنم
binyaz2003
سه شنبه 20 اردیبهشت 1384, 23:17 عصر
در یک کلاس می تونه چند شی موجود باشه
شما هر کدوم از این شی ها رو هر طور که دلتون بخواد مشخصاتشو تعیین می کنید یا حتی یک مشخصه به اون اضافه میکنید و ذخیره اش می کنید
حالا هر وقت نیاز داشته باشین از اون استفاده میکنید
مثال :
شما نیاز دارید فرمهای برنامه همه یک فونت خاص و مثلا right to left باشه و آیکون مخصوص داشته باشه و همیشه وسط باشه و ... حالا اگر بخواهید هر دفعه که یک فرم جدید باز می کنید تمام این خواص رو ست کنید کلی وقتگیر خواهد بود و می تونید در عوض یکبار این مراحل رو انجام بدید و ذخیره کنید از این پس از فرم ذخیره شده استفاده می کنید
این یک نمونه ساده است اما کارهای خیلی زیادی رو میشه براحتی با کلاسها انجام داد
rezaTavak
شنبه 24 اردیبهشت 1384, 19:07 عصر
سلام
آقای بینیاز اینجا یک ویرایشگر علمی برای فرمولهای ریاضی است:
http://www.texmacs.org/index.php3
البته تحت gnu.
naghdi
جمعه 27 خرداد 1384, 20:37 عصر
سلام
من یک سوال داشتم من خیلی سعی کردم نام یک فایل رو به محتوای یک متغیر کاراکتری تغییر نام بدم ولی ...
ممنون میشم!
مثال
"name="84-03-27
binyaz2003
جمعه 27 خرداد 1384, 21:50 عصر
Changes the name of a file to a new name.
RENAME FileName1 TO FileName2
Parameters
FileName1 TO FileName2
Specifies the file name to change and the new file name. Include a file extension for each file. If the file extensions are not included, the default extension .dbf is assumed. If you rename a free table that has an associated .fpt memo file, be sure to rename the memo file. Include a period (.) after the file name to rename a file that doesn't have an extension.
Do not use RENAME to change the name of a table in a database; RENAME does not change the name of the table in the database. Use RENAME TABLE to change the name of a table in a database.
Include paths with either or both file names if the files are not on the default path. If FileName1 and FileName2 are in different directories or folders, FileName1 is moved into the directory or folder of FileName2.
When you issue RENAME, FileName2 cannot already exist and FileName1 must exist and cannot be open.
FileName1 and FileName2 can contain wildcard characters such as * and ?. For example, to rename all program files with the extension .prg in the current directory or folder to backup files with extension .bak, issue RENAME *.prg TO *.bak.
naghdi
شنبه 28 خرداد 1384, 14:30 عصر
سلام
بله من با این دستور آشنا هستم
ولی من بجای FileName2 میخواهم از یک متغییر استفاده کنم . با این دستور فکر نکنم بشه!!
binyaz2003
شنبه 28 خرداد 1384, 15:18 عصر
متغیر رو داخل یک جفت پرانتز بزارین یا اگر باز هم نشد از & استفاده کنید
kia1349
چهارشنبه 01 تیر 1384, 16:49 عصر
اگر از fsoیا همون file system object استفاده کنید میشه
در ebook هائی که به دوستان داده ام مثال آن وجود دارد
naderigh
یک شنبه 09 مرداد 1384, 13:16 عصر
با سلام
من برنامه ای نوشته ام که به صورت شبکه و همزمان از طریق چند کاربر ثبت اطلاعات انجام میشود چگونه میتوانم date و time سرور را داشته باشم چون به ان در بانک اطلاعاتم نیاز دارم چون بعضی مواقع تاریخ کامپیوتر های کاربران باهم مغایرت دارد و یکنواخت نیست
binyaz2003
یک شنبه 09 مرداد 1384, 19:48 عصر
شما می تونید یک جدول با یک فیلد تاریخ زمان داشته باشین و یک رکورد جدید ایجاد کنید و زمان و تاریخ رو خواهید داشت
naderigh
سه شنبه 11 مرداد 1384, 07:14 صبح
منظورتان را متوجه نشدم
ببینید من برای تاریخ و ساعت فیلدهای جداگانه ای در نظر گرفته ام و هنگام ثبت time و date در ان ذخیره میشود و date , time دستگاهی است که از طریق ان ثبت انجام شده ولی من میخواهم time , date سرور را ذخیره نمایم مخصوصا time را
kia1349
چهارشنبه 12 مرداد 1384, 18:22 عصر
In Microsoft Windows NT 4.0, Windows 2000, Windows XP, and Windows Server 2003, you can obtain the date and time from a server by using the NET command line utility with the following syntax:
NET TIME \\ServerName
Note Specify the server name whose time you want to query in the following line:
server_name = "yourservername"
ببخشید که کد درست دیده نمیشود فایل ضمیمه را از انتهای همین پیام میتوانید دانلود کنید
یا به آدرس زیر مراجعه کنید
http://support.microsoft.com/default.aspx?scid=kb;en-us;249716
* NetRemoteTOD's first parameter is a pointer to a
* Unicode string that contains the server name.
*
* The second parameter is a pointer to a byte array
* that contains a pointer to a TIME_OF_DAY_INFO structure
* The '@' in front of the second parameter ('integer @')
* dereferences this pointer to the byte array. Later in the
* program, the program uses RTLMoveMemory() to
* dereference the pointer this byte array contains
DECLARE INTEGER NetRemoteTOD IN netapi32 STRING @, INTEGER @
* Note that the source address ('inbuffer') is declared as an integer,
* to be consistent with the second parameter in NetRemoteTOD above.
DECLARE INTEGER RtlMoveMemory IN win32api ;
STRING @outbuffer, ;
INTEGER inbuffer, ;
INTEGER bytes2copy
* the TIME_OF_DAY_INFO structure
* contains 11 DWORDs and 1 long, for
* a total of 48 bytes. Therefore, tdbuffout is
* initialized as:
tdbuffout=REPLICATE(CHR(0), 48)
tdbuffin = 0
* the server name must be converted to Unicode
* This API function behaves differently depending on
* whether the target is a Win2000 computer or not -
*
* If Win2000, the servername must be preceded by "\\";
* otherwise, it must not.
server_name = "s-karkonan"
try_server_name = STRCONV(server_name, 5)
rc = NetRemoteTOD(@try_server_name, @tdbuffin)
IF rc = 0
* copy the contents pointed to by the address in tdbuffin to
* tdbuffout
=RtlMoveMemory(@tdbuffout, tdbuffin, 48)
ELSE
* call failed. Therefore, the target is possibly a Win2000 box;
* Retry the function call, prepending "\\" to the server_name
try_server_name = STRCONV("\\" + s-karkonan, 5)
rc = NetRemoteTOD(@try_server_name, @tdbuffin)
IF rc = 0
* copy the contents pointed to by the address in tdbuffin to
* tdbuffout
=RtlMoveMemory(@tdbuffout, tdbuffin, 48)
ELSE
? "NetRemoteTOD() call failed. Return code is: ", rc
RETURN
ENDIF
ENDIF
* Pick out the appropriate parts of the TIME_OF_DAY_INFORMATION
* buffer. This buffer will contain the UTC (Universal Coordinated
* Time) of the server, and must be adjusted by TOD_TIMEZONE minutes
* for the correct local time.
* str2long() converts the DWORDS and LONGS from their string
* representation back to numbers.
tod_month = str2long(SUBSTR(tdbuffout, 37, 4))
tod_day = str2long(SUBSTR(tdbuffout, 33, 4))
tod_year = str2long(SUBSTR(tdbuffout, 41, 4))
tod_hours = str2long(SUBSTR(tdbuffout, 9, 4))
tod_mins = str2long(SUBSTR(tdbuffout, 13, 4))
tod_secs = str2long(SUBSTR(tdbuffout, 17, 4))
* Subtract this bias (times 60, to obtain seconds)
* from the datetime value to obtain the
* server's local time
*
* Alternatively, to convert the server's local time to
* the workstation's local time, use the Win32 API function
* SystemTimeToTzSpecificLocalTime, available under
* Windows NT only.
tod_timezone = str2long(SUBSTR(tdbuffout, 25, 4)) * 60
serverdatetime = DATETIME(tod_year, tod_month, tod_day, ;
tod_hours, tod_mins, tod_secs)
? "UTC time of server is: ", serverdatetime
? "Server's local time is: ", serverdatetime - tod_timezone
************************************************** ***********
FUNCTION str2long
************************************************** ***********
* passed: 4-byte character string (m.longstr) in low-high ASCII format
* returns: long integer value
* example:
* m.longstr = "1111"
* m.longval = str2long(m.longstr)
PARAMETERS m.longstr
PRIVATE i, m.retval
m.retval = 0
FOR i = 0 TO 24 STEP 8
m.retval = m.retval + (ASC(m.longstr) * (2^i))
m.longstr = RIGHT(m.longstr, LEN(m.longstr) - 1)
NEXT
RETURN m.retval
naderigh
چهارشنبه 19 مرداد 1384, 07:30 صبح
با سلام خدمت تمامی دوستان
من مشکلی دارم به این شکل در برنامه گزارشات را برای کاغذ a4 طراحی نمودم ولی بعدا پرینتر مورد استفاده olivetti نواری(کوچک) نصب کرده ام ولی گزارشاتی که بایستی به شکل a4 و تمام صفحه نمایش داده شود نیمه کاره و ناقص نمایش میدهد
لطفا راهنمائی فرمائید
binyaz2003
چهارشنبه 19 مرداد 1384, 17:39 عصر
یک راه در یک فوروم خارجی گفتند که البته اون برای حل این مشکل بود که اگر گزارشی را landscape طراحی کردیم و روی یک کام÷یوتر که چا÷گر نداره نصب کنیم اونوقت به اندازه a4 نشان میده
گفتند که گزینه save printer enviroment رو از منوی print فکر کنم حذف کنید شاید مشکل شما هم حل شه؟
kia1349
پنج شنبه 20 مرداد 1384, 16:26 عصر
ریپورت خود را باز کنید و از قسمت منوی file>print setup نوع کاغذ و خروجی خود را انتخاب کنید
کاغذ a4 را تمامی پرینتر ها ساپورت میکنند ولی اگر احیانا این سایز وجود نداشن میتوانید سایز دلخواه خود را در قسمت custom طراحی کنید و پس از آن گزارش خود را ذخیره کنید
naderigh
شنبه 22 مرداد 1384, 09:09 صبح
با تشکر
به حضورتان عرض شود که من گزارشات را همانطوریکه شما فرموده اید تنظیم کرده بودم و پروژه را ساخته ام
و در کامپیوتری که پرینتر معمولی نصب و فعال است که مشکلی ندارد ولی کامپیوتری که پرینتر نواری کوچک نصب و فعال است این مشکل هست
maeoi
جمعه 04 شهریور 1384, 12:02 عصر
سلام به همگی دوستان
من به تازگی با فروم شما آشنا شده ام و همچنین به تازگی (8-7) ماه است که با فاکس کار می کنم و البته چند تا برنامه هم نوشته ام. دوست دارم با راهنمایی شما استادان عزیز بیشتر در این زمینه یاد بگیرم. البته موضوعی که منو کمی گیج کرده زیادی تاپیک ها می باشد که نمی دانم برای مطرح کردن سوالاتم کجا باید بروم.
با تشکر
rezaTavak
جمعه 04 شهریور 1384, 14:27 عصر
سلام
ضمن خوش آمد به شما اول شما می تونید سرچ کنید و بعد اگر پیدا نشد در یک تاپیک جدید بپرسید.
binyaz2003
شنبه 26 شهریور 1384, 10:26 صبح
فونت Courier New با اعداد فارسی
مناسب برای گزارشات
گزارشات در پیش نمایش به هم نمی ریزند و اعداد هم فارسی است.
www.binyazPrpograms.com
bahram_m
چهارشنبه 30 شهریور 1384, 06:43 صبح
من میخواهم از پرینتر های سوزنی برای چاپ کردن داخل ویندوز استفاده کنم ولی سرعت آن خیلی پایین است نسبت به dosباید چکارکنم (برای ریپورت ها)
rezamim
چهارشنبه 30 شهریور 1384, 16:28 عصر
بنظر من هیچ کار ( در مورد فونت فارسی البته )
kia1349
شنبه 02 مهر 1384, 05:44 صبح
راستی جناب rezamim فونت yekan عدد صفر را بصورت یک دایره کوچک چاپ میکند
فکر کنم یه وقتی دنبال همچین چیزی بودید البته من هم تازه این فونت رو دیدم
arash2005
شنبه 02 مهر 1384, 14:00 عصر
سلام جناب کیا
یه سوال داشتم
میخوام وقتی برنامه ای رو اجرا میکنم صفحه اصلی ویژوال نمایش داده نشه البته من از منو سازی خود فاکس استفاده کردم و خاصیت SCREEN.VISIBLE=F گذاشتم اما بازم نمایش میده البته اگه از منو سازی خود فاکس استفاده نشه این خاصیت درست عمل میکنه
من باید چیکار کنم ممنون موفق باشی
binyaz2003
شنبه 02 مهر 1384, 14:48 عصر
لطفا قبل از سوال جستجو کنید
شما باید دستورذ Screen=Off را در فایل پیکر بندی برنامه config.fpw در شاخه جاری برنامه قرار بدین
binyaz2003
یک شنبه 10 مهر 1384, 13:20 عصر
کلاس مرتب سازی اطلاعات کرسر در گرید به بخش دانلود سایت بی نیاز اضافه شد.
با این کلاس شما تنها با نوشتن یک خط فرمان به کاربر امکان این را می دهید که با کلیک بر روی هدر ستون ها بصورت صعودی و نزولی اطلاعات را مرتب کند
naderigh
دوشنبه 11 مهر 1384, 07:23 صبح
چگونه میشود که نام پرینتر فعال set as default ویندوز را داشته باشیم چون چندین پرینتر نصب شده و با هر پرینتر خاص گزارش خاصی میخواهم پرینت بگیرم
binyaz2003
دوشنبه 11 مهر 1384, 08:41 صبح
http://www.vfug.org/files/print_br.zip
binyaz2003
دوشنبه 11 مهر 1384, 08:53 صبح
?"Printer info"
ShowPrinters(0)
?"More printer info"
ShowPrinters(1)
PROCEDURE ShowPrinters(nMode)
n=APRINTERS(aa,nMode)
FOR i= 1 TO n
?i
FOR j = 1 TO ALEN(aa,2)
??"---",aa[i,j]
ENDFOR
ENDFOR
RETURN
naderigh
چهارشنبه 13 مهر 1384, 08:30 صبح
اقا بی نهایت از عنایت شما سپاسگزارم ولی من فعلا از فاکس 7 و ویندوز 98 استفاده میکنم و خطا میگیرد
با فرمان SET( "PRINTER", 2 ) مشکل حل گردید
علی کلاهدوزان
یک شنبه 17 مهر 1384, 12:01 عصر
سلام و تشکر
علی کلاهدوزان
سه شنبه 19 مهر 1384, 13:54 عصر
کسی نمی دونه بوق اسپیکر خود کیس رو موقع نصب بودن اسپیکرهای کارت صوتی چطوری میشه در آورد توی ویژوال فاکس
kia1349
پنج شنبه 21 مهر 1384, 09:33 صبح
اینو امتحان کردی ؟
chr(7) for beep
علی کلاهدوزان
پنج شنبه 21 مهر 1384, 10:23 صبح
آقا دیگه مارو خیلی دست کم گرفتی وقتی کارت صوتی سیستم نصبه خوب این chr(7 کار نمی کنه
kia1349
جمعه 22 مهر 1384, 12:42 عصر
دوست عزیز سوالتو خوب متوجه نشدم ببخشید
اینم کدی که میخواهی
DECLARE Sleep IN kernel32 INTEGER dwMilliseconds
DECLARE INTEGER Beep IN kernel32 INTEGER dwFreq, INTEGER dwDur
= Beep1(100)
= Beep1(300)
= Beep1(200)
= Beep1(300)
= Beep1(400)
= Beep1(100)
= Beep1(300)
= Beep1(500)
PROCEDURE Beep1 (lnFreq)
= Beep(lnFreq, 90)
= Sleep (20)
علی کلاهدوزان - اصفهان
یک شنبه 24 مهر 1384, 10:54 صبح
آقا من مجبور شدم اسم کاربریم رو عوض کنم دیگه رمزم رو قبول نمی کرد در ضمن دست شما درد نکنه که این همه کمک می کنید . یک سوال دیگه من یک کتاب از توابع api توی vb خریدم که توی اون توابعی است که visual foxproنمی شناسه مگه api ها عمومی نیستن در ضمن من قواعد ورود api ها در vfp رو کاملا رعایت کردم . باید چیکار کرد ؟
kia1349
یک شنبه 24 مهر 1384, 15:44 عصر
تمام توابع api برای محیطهای برنامه نویسی تحت ویندوز قابل شناسائی و اجرا هستند
برای اطلاعات بیشتر به سایت www.news2news.com مراجعه کن
kia1349
دوشنبه 25 مهر 1384, 07:42 صبح
اینم برای قطع کردن صدای بلندگوی داخل کامپیوتر (البته با تنظیمات نه برنامه نویسی)
وارد رجیستری شوید ( گزینه Regedit در منوی Run ) و به دنبال آدرس زیر بگردید:
HKEY_CURRENT_USERControl PanelSound
در صورت نبود با کلیک راست و انتخاب New و بعد String Value را انتخاب کنید و پوشه جدید را Beep بنامید ( حرف B بزرگ تایپ شود ) و با دابل کلیک در قسمت Value data کلمه No را وارد کنید سپس سیستم را Restart کنید.
kia1349
دوشنبه 25 مهر 1384, 07:43 صبح
تغییر دادن عنوان پنجره ی مرورگر اینترنت
عنوانی که در پنجره ی مرورگر اینترنت همواره به چشم میخورد ، عنوان Microsoft Internet Explorer است ، اما شما می توانید هر عنوانی را که دوست دارید به جای آن قرار دهید. برای مثال شما می توانید این عنوان را به MY Browser یا هر چیز دیگر که مایل باشید ، تغییر دهید.
رجیستری را باز کرده و ابتدا این کلید را در آن پیدا کنید :
HKEY_CURRENT_USERSoftwareMicrosoftInternetExploreM ain
یک متغیر جدید از نوع String و به نام Windows Title بسازید و عنوان مورد نظرتان را به آن بدهید.
توجه: اگر متغیر Windoes Title را حذف کنید، عنوان مادرزادی پنجره ی مرورگر اینترنت روی کار خواهد آمد.
kia1349
دوشنبه 25 مهر 1384, 07:43 صبح
مخفی کردن یک پارتیشن ( Drive )
به Run می رویم و بعد تایپ می کنیم(همان diskmgmt.msc (disk management snap-in بر روی هارد مورد نظر راست کلیک کرده و...Change drive letter and paths را انتخاب بعد از آن نام درایو را Remove می کنیم.
نکته: اطلاعات بر روی هارد شما قرار دارد و از بین نمی رود و فقط در My Computer دیده نمی شود ولی در diskmgmt.msc دیده می شود.
برای دیدن دوباره ی هارد مورد نظر به همان محل رفته و Drive Letter را Add می کنیم.
kia1349
دوشنبه 25 مهر 1384, 07:44 صبح
نشان دادن روایت ویندوز روی دسکتاپ
روایت های اولیه ویندوز، شماره ی روایت خود را روی میز تحریر نشان میدادند. اما این ویژگی از ویندوزهای بعدی برداشته شد. اگر شما در محیطی هستید که پی بردن سریع به شماره ی روایت ویندوز اهمیت دارد میتوانید با این ترفند آن را دوباره فعال کنید. رجیستری خود را باز کرده و این کلید را در آن جستجو کنید:
HKEY_CURRENT_USERControl PanelDesktop
یک مقدار جدید از نوع DWORD بسازید و نام Paint Desktop Version را به آن بدهید. اگر بخواهید شماره ی روایت ویندوز را روی میز تحریر ببینید باید مقدار 1 را برای آن تعیین کنید. روشن است که با تعیین کردن مقدار صفر برای این مهمان جدید شماره روایت ویندوز در میز تحریر نمایش داده نمیشود.
kia1349
دوشنبه 25 مهر 1384, 07:50 صبح
از طریق این سایت میتوانید عکس های دلخواه خود را به TXT تبدیل کنید.
امروز یه سایت پیدا کردم که کار جالبی رو به صورت انلاین انجام میده به این صورت که یک عکس شما بهش میدین و در عرض چند ثانیه تبدیل به TEXT میکنه قبلا دیده بودم که بعضی از سایت های تصویر رو که میدادیم به صورت ASCII برامون در می اوردن ولی این خیلی بهتر چون رنگ بندی عکس رو هم تو متن میزاره البته به شرطی که حالت Grayscale رو انتخاب نکنید (حجمشم خوب از ASCII خیلی بیشتره) برای رفتن به صفحه تبدیل کننده هم از ادرس زیر استفاده کنید:
http://www.text-image.com/convert
علی کلاهدوزان
دوشنبه 25 مهر 1384, 11:20 صبح
من توی پارامتر دادن به تابعی که با api می سازیم مشکل دارم اون چطوریه . در ضمن یه سوال دیگه فونت منوها رو میشه بزرگتر کرد یا حتی فونتش رو عوش کرد منظورم منوهای اصلی بالای صفحه است آخه خیلی ریزه مخصوصا وقتی فارسی بشه
binyaz2003
یک شنبه 15 آبان 1384, 09:14 صبح
http://www.frappr.com/profox
اسمتون رو ثبت کنید!
rezaTavak
یک شنبه 06 آذر 1384, 16:48 عصر
سلام
چند وقت پیش دوستمون آقای بینیاز (حسینی) یک چیزی راجع به بیرون کشیدن یک فایل از فایل Exe گفتند با دستور Strtofile خب اگه ممکنه بگید برعکسش هم میشه؟ یعنی اضافه کردن یک فایل به فایل Exe؟
binyaz2003
یک شنبه 06 آذر 1384, 17:17 عصر
اگر منظورتون بعد از کامپایل کردن باشه که جواب نه است
rezaTavak
یک شنبه 06 آذر 1384, 23:39 عصر
سلام
اگه ندونیم داخل فایل Exec چی بوده هم میشه؟ یعنی با *.* ؟
اگه ممکنه یه مثال دوباره بزنید. آخه اون دفعه هر کاری کردم نشد!
naderigh
سه شنبه 08 آذر 1384, 11:18 صبح
من یک مشکل با فاکس 7 و ویندوز 98 داشتم که یک عبارت به شکل 02خ40115 حرف خ را به ابتدای عبارت منتقل میکند یعنی خ0240115 را نمایش میدهد ولی در فاکس 9 و ویندوز xp این مشکل نیست این مشکل چگونه در 98 و فاکس 7 درست میشود
rezaTavak
سه شنبه 08 آذر 1384, 12:59 عصر
سلام
تو کجا مشکل داره؟ گزارش یا فرم؟ یا جدول؟
naderigh
شنبه 12 آذر 1384, 07:24 صبح
ذخیره این عبارت در جدول مشکل دارد
naderigh
دوشنبه 14 آذر 1384, 08:35 صبح
کسی جواب نداد ؟
یک سئوال دیگر
من با یک prg به شکل With _Screen که در help نیز هست حالت .Closable=.T. قرار داده ام حال من با کلیک روی Closable میخواهم از من تائید خروج را بخواهد برای clear event و سپس خروج از برنامه
binyaz2003
دوشنبه 14 آذر 1384, 19:41 عصر
شما از on shutdown استفاده کنید مخصوص همین کار هست
rezaTavak
دوشنبه 14 آذر 1384, 21:39 عصر
سلام
"من یک مشکل با فاکس 7 و ویندوز 98 داشتم که یک عبارت به شکل 02خ40115 حرف خ را به ابتدای عبارت منتقل میکند یعنی خ0240115 را نمایش میدهد ولی در فاکس 9 و ویندوز xp این مشکل نیست این مشکل چگونه در 98 و فاکس 7 درست میشود" + "ذخیره این عبارت در جدول مشکل دارد"
خب از کجا مطمئنید؟
بگذارید من امتحان کنم.
جواب میدم.
naderigh
سه شنبه 15 آذر 1384, 10:52 صبح
اقا بسیار بسیار متشکرم
binyaz2003
جمعه 18 آذر 1384, 21:07 عصر
قسمت مقالات سایت www.binyazprograms.com راه اندازی شد.
rezaTavak
جمعه 18 آذر 1384, 22:48 عصر
سلام
موفق باشید.
hamed_m
شنبه 19 آذر 1384, 00:45 صبح
شما از on shutdown استفاده کنید مخصوص همین کار هست
The ON SHUTDOWN code only executes if a QUIT command is issued
موفق باشید.
rezaTavak
شنبه 19 آذر 1384, 11:30 صبح
سلام
نه اینطور نیست ON SHUTDOWN زمانی ماشه اش کشیده میشه که شما از فاکس پرو یا برنامه نوشته شده با فاکس پرو بخواهید خارج شوید. و طریقه استفاده هم :
ON SHUTDOWN do myprg می تواند باشد. یا
ON SHUTDOWN EXECSCRIPT('IF MESSAGEBOX("Are you sure?",48+4)=6'+CHR(13)+"Quit"+CHR(13)+"ENDIF")
hamed_m
شنبه 19 آذر 1384, 13:12 عصر
من تا نسخه 8 ندیدم که اگر با استفاده از دکمه قرمز بستن از فرم خارج بشیم ماشه اش کشیده بشه. به هر حال امتحان میکنم شاید تفاوت کرده باشه.
در هر حال برای اجرای برنامه موقع خروج از فرم من از کوئری آنلود استفاده میکنم.
ممنون.
rezaTavak
شنبه 19 آذر 1384, 18:20 عصر
سلام
دکمه قرمز چیه؟
hamed_m
یک شنبه 20 آذر 1384, 04:01 صبح
بنا رو بر این گذاشتم که از ایکس پی با استایل استاندارد استفاده بشه. به هر حال منظورم دکمه بستن فرم بود.
سربلند و موفق باشید
koli
سه شنبه 22 آذر 1384, 13:42 عصر
با سلام
لطفا راهنمایی کنید: برای شروع کار با Foxpro کدام نسخه را معرفی میکنید؟
koli
یک شنبه 27 آذر 1384, 16:06 عصر
اگر سوال بی معناست و یا حتی بی ربط و نامربوط است حداقل میتونه دلیلی بر جسارت نوسنده اش باشه مبنی بر اعتراف غیرمستقیم بر ناآگاهی اش. اما به هیچ وجه نمیتونه دلیلی باشه که جوابش رو ننویسین و بی تفاوت از کنارش بگذرین!! در بسیاری از نرم افزارها این فرضیه هست که همیشه ارتقا نرم افزار که با افزایش امکاناتش همراه هست؛ لزوماً با بهبود کارایی اون نسبت مستقیم نداره!
بهر حال... از بذل توجه تان بسیار متشکرم
binyaz2003
یک شنبه 27 آذر 1384, 16:55 عصر
اصلا اینطور نیست
شما می تونید با ورژن 9 شروع کنید تنها مشکل نبود کتاب هست که اگر از انگلیسی شکایت نداشته باشید راهنماش یک مرجع کامل هست
binyaz2003
جمعه 02 دی 1384, 11:45 صبح
چهارمین مقاله با عنوان تجربیات در سایت www.binyazprograms.com آپلود شد.
binyaz2003
جمعه 09 دی 1384, 15:55 عصر
حتما اسمتون رو اینجا ثبت کنید :
http://fox.wikis.com/wc.dll?Wiki~Update~WillMicrosoftMarketVFP~VFP
naghdi
چهارشنبه 14 دی 1384, 21:39 عصر
برای جلوگیری از اجرا مجدد برنامه چه کاری باید کرد؟
ممنون
البته از روش ساخت یک فایل و چک کردن آن منظورم نیست.
binyaz2003
پنج شنبه 15 دی 1384, 12:09 عصر
شما می تونید لیست برنامه های در حال اجرا رو از این تابع بدست بیارید و بفیه اش حله :
= enumerateProcess()
FUNCTION enumerateProcess
lcComputer = '.'
loWMIService = Getobject('winmgmts:' ;
+ '{impersonationLevel=impersonate}!\\' + lcComputer + '\root\cimv2')
colProcessList = loWMIService.ExecQuery ;
('Select * from Win32_Process')
Create Cursor Process (Name c(20),Id i,Thread i,pagefile i,pagefault i,workingset c(20))
Index On Name Tag Name
For Each loProcess In colProcessList
Insert Into Process (Name,Id,Thread,pagefile,pagefault,workingset);
VALUES (loProcess.Name,loProcess.ProcessID,loProcess.Thre adCount,loProcess.PageFileUsage,;
loProcess.pagefaults,loProcess.WorkingSetSize)
Next
BROWSE normal
naghdi
پنج شنبه 15 دی 1384, 15:08 عصر
با درود
sytax error line 12
با درودی دیگر بار
binyaz2003
پنج شنبه 15 دی 1384, 15:36 عصر
من تست کردم با فاکس 8 مشکلی نداره
naghdi
جمعه 16 دی 1384, 17:40 عصر
این احتمال وجود داره چون من از فاکس 9 استفاده میکنم البته sp1 هم نصب کردم ولی نشد.
در هر صورت ممنون .
naderigh
سه شنبه 20 دی 1384, 12:15 عصر
اقا بسیار عالی است دست شما درد نکنه اقای binyaz
و خطا از فاصله ای است که بین عبارت loProcess.Thre adCount افتاده است
rezamim
سه شنبه 27 دی 1384, 12:29 عصر
این لینکو ببینید
http://www.tiobe.com/index.htm?tiobe_index
جهش 48 به 20 جالبه ولی جایگاه 20 ؟
نظر شما چیه؟
rezaTavak
سه شنبه 27 دی 1384, 17:07 عصر
سلام
بد نیست اما جالبه! ولی به نظر من جایگاه ۲۰ براش کمه. حداقل از خیلی جهات فاکس قویه!
rezaTavak
سه شنبه 27 دی 1384, 17:08 عصر
راستی اگر کسی خواست زبان انتخاب کنه راهنمای خوبی است و زبانهای رایج دنیا را نشان میده.
rezamim
سه شنبه 27 دی 1384, 21:54 عصر
در سایتی نوشته بود که این جهش عجیب بدلیل SEDNA و طرفداران نسبتا زیاد اونه
پدرخوانده
چهارشنبه 28 دی 1384, 13:08 عصر
اما انصافا من حکمت برتری جایگاه وی بی (شماره 5) بر ویژوال فاکس (جایگاه 20) را ندانستم
به نظر من هرچه ابزار (ole,tools,active-x,...) که بخواهی در وی بی استفاده کنی به راحتی در محیط فاکس نیز می تونی استفاده کنی (در خیلی مواقع من از نمونه مثالهای محیط وی بی جهت استفاده از این ابزار استفاده می کنم) از جهت مدیریت دیتابیس نیز حداقل بعض وی بی است که از اکسس استفاده می کند و سرعتش نیز در کل بعض اکسس است
بحث بر اتصال به دیتابیس اینجنین های بزرگ همچون mysql,ms-sql باشد که فاکس نیز مشکلی ندارد
و در کل مدیریت کنترل خطا و بسیاری از پارامترهای دیگر بهتر از وی بی است
(البته قیاسم با نسخه دات نت وی بی نیست)
rezamim
چهارشنبه 28 دی 1384, 20:31 عصر
البته بنظر میاد تعداد کاربران هم در رده بندی موثر هست
rezamim
پنج شنبه 29 دی 1384, 21:15 عصر
وب سایت ما هم به روز شد
www.homapg.com
binyaz2003
یک شنبه 02 بهمن 1384, 21:58 عصر
تبریک آقا رضا
خیلی برنامه داشتینمعلومه خیلی فعالید
فقط اگر هی پنجره باز نمیشد داخل فریم بودند بهتر بود
موفق باشید
rezaTavak
دوشنبه 03 بهمن 1384, 07:53 صبح
سلام
این نرم افزارها با چی نوشته شده؟؟
naghdi
دوشنبه 03 بهمن 1384, 11:41 صبح
با درود
اگر دستوری وجود داره که در هنگام ورود تاریخ اشتباه پیغام invaled date را بشود کنترل نموند به من اطلاع بدهید ممنون.
هدف: جهت دریافت تاریخ شمسی .
و در صورت دریافت تاریخ blank پیغام invaled date ظاهر شود.
binyaz2003
دوشنبه 03 بهمن 1384, 12:15 عصر
چرا از کلاس تاریخ آقای توکی استفاده نمی کنید؟
naghdi
دوشنبه 03 بهمن 1384, 19:56 عصر
سلام
اگر امکان داشته باشه لینک این کلاس را اعلام کنید
ممنون
rezamim
دوشنبه 03 بهمن 1384, 20:28 عصر
تبریک آقا رضا
خیلی برنامه داشتینمعلومه خیلی فعالید
فقط اگر هی پنجره باز نمیشد داخل فریم بودند بهتر بود
موفق باشید
راستش بخاطر این اینطوری درست کردم که امکانش باشه که چند تا پنجره با هم باز بشه
rezamim
دوشنبه 03 بهمن 1384, 20:30 عصر
سلام
این نرم افزارها با چی نوشته شده؟؟
با FoxPro تحت DOS و Visual Foxpro
binyaz2003
دوشنبه 03 بهمن 1384, 21:14 عصر
http://www.barnamenevis.org/forum/attachment.php?attachmentid=107&d=1121659712
rezaTavak
سه شنبه 04 بهمن 1384, 07:53 صبح
با FoxPro تحت DOS و Visual Foxpro
احسنت!!! موفق باشید.
rezamim
سه شنبه 04 بهمن 1384, 12:36 عصر
احسنت!!! موفق باشید.
سلامت باشید
binyaz2003
جمعه 07 بهمن 1384, 00:52 صبح
کسانی که عضو SednaX هستند و یا کسانی که علاقه به دانستن اطلاعات بیشتر دارند می تونند این پادکست 37 دقیقه ای رو از اینجا
http://akselsoft.libsyn.com/index.php?post_id=51461
گوش کنند
binyaz2003
جمعه 07 بهمن 1384, 20:02 عصر
ویرایش دوم کلاس گرید بی نیاز با امکانات زیر :
مرتب کردن یک ستون صعودی و نزولی
تعیین تولتیپ ToolTip یک ستون بوسیله مقدار فیلد
تعیین اینکه کدام ستونها نمایش داده بشوند یا نه توسط کاربر
جستجوی یک رکورد خاص توسط کاربر
www.universalthread.com
reza_z
شنبه 08 بهمن 1384, 10:38 صبح
سلام
ایا در فاکس پرو میشه hwnd کنترلهای روی فرم را بدست آورد ؟
binyaz2003
شنبه 08 بهمن 1384, 14:41 عصر
کنترل های فاکس hwnd ندارند
rezaTavak
شنبه 08 بهمن 1384, 19:22 عصر
سلام
من با SPY++ سعی کردم کار را دنبال کنم اما فاکس پرو اصلا استاندارد نیست!
binyaz2003
شنبه 08 بهمن 1384, 22:07 عصر
ببینید چطوره؟
binyaz2003
دوشنبه 17 بهمن 1384, 19:50 عصر
ویژوال فاکس 4 پله ترقی کرد!
http://www.tiobe.com/tpci.htm
rahro
سه شنبه 02 اسفند 1384, 05:06 صبح
سلام
میخواستم در یک فرم برای انتخاب یک لیست از combo و textbox استفاده کنم ,بدین ترتیب که اگر شماره کد مربوطه در textbox درج شد نام مربوطه در combo نمایش داده شود و در صورتی که کد اشتباه بود کاربر بتواند از لیست مربوطه در combo انتخاب خود را انجام دهد. اطلاعات موجود در این combo از یک جدول به یک آرابه دو بعدی فراخوانی میشود که شامل کد و نام میباشد و combo اطلاعات خود را از این آرایه میگیرد, مشکل اینجاست که گاهی combo مربوطه به جای نمایش نام تنها شماره کد را نمایش میدهد چگونه میتوانم این مشکل رو حل کنم ؟
شایان ذکر است builder - combo مربوطه گزینه renge of the array رو انتخاب کردم که columns آرایه رو به 2 تا 2 و rows رو از 1 تا 99 تغییر داده ام که اولین عنصر آرایه کد و دومین نام میباشد
رهرو
rezaTavak
سه شنبه 02 اسفند 1384, 07:20 صبح
سلام
اگر فیلدی که در آن ذخیره میشه عددی باشه کامبو عدد نشون میده و اگر کاراکتری کاراکتر.
اما من برای شما یک پیشنهاد دیگه میکنم:
به جای استفاده از این تکنیک شما از یک کلاسی که من با fm20 نوشتم و در این سایت قرار داده استفاده کنید.
serchcombo کاراکتر به کاراکتر متناظر با تایپ جستجو می کند. اگر پیدا نکردید بگید براتون دوباره بذارم.
ضمنا از توجهتون و عدم مطرح کردن سوال در دو جا کمال تشکر را دارم. خیلی لطف کردید.
rahro
سه شنبه 02 اسفند 1384, 08:50 صبح
سلام
اگر فیلدی که در آن ذخیره میشه عددی باشه کامبو عدد نشون میده و اگر کاراکتری کاراکتر.
اما من برای شما یک پیشنهاد دیگه میکنم:
به جای استفاده از این تکنیک شما از یک کلاسی که من با fm20 نوشتم و در این سایت قرار داده استفاده کنید.
serchcombo کاراکتر به کاراکتر متناظر با تایپ جستجو می کند. اگر پیدا نکردید بگید براتون دوباره بذارم.
ضمنا از توجهتون و عدم مطرح کردن سوال در دو جا کمال تشکر را دارم. خیلی لطف کردید. سلام
فکر میکنم مطلب اینجانب رو بد برداشت کردید!
من میخواستم بعد از وارد کردن عدد در تکست باکس کامبو نام را نمایش بده و از این دستور در valid استفاده کردم
find1=.f.
FOR ki=1 TO ALEN(hazineh,1)
IF hazineh(ki,1)=this.Value
thisform.combo3.ListIndex=ki
find1=.t.
EXIT
ENDIF
ENDFOR
IF find1=.t.
thisform.combo3.Enabled=.f.
ELSE
thisform.combo3.Enabled=.t.
endif
fm20 روز جستجو کردم در 5 تاپیک مورد یافت تنها اسم آن برده شده بود
اگر ممکنه زحمت لینک مربوطه را بکش
متشکرم
رهرو
rezaTavak
سه شنبه 02 اسفند 1384, 09:39 صبح
سلام
اولا عذر می خواهم که پیام شما ویراش شد چون بهتر که کد چپ به راست باشه
اما من کل کلاسهایی که باهاشون کار می کنم را گذاشتم برای دابلود دوباره میگذارم.
ولی جواب من را ندادید که فیلد ذخیره شما عددی است یا غیر عددی؟
rahro
سه شنبه 02 اسفند 1384, 13:05 عصر
سلام
اولا عذر می خواهم که پیام شما ویراش شد چون بهتر که کد چپ به راست باشه
اما من کل کلاسهایی که باهاشون کار می کنم را گذاشتم برای دابلود دوباره میگذارم.
ولی جواب من را ندادید که فیلد ذخیره شما عددی است یا غیر عددی؟
سلام
من عذر میخواهم زیرا به نحوه تایپ زیاد آشنا نیستم .
پروژه ذیل تکه جدا شده از پروژه اصلیست.
میشه لطف کنید اون رو که عین مصداق فوق میباشد رو تست کنید در ضمن تقاضا دارم
موارد ذیل رو دقت بفرمائیدکه:
1- پروژه تا موقعی که exe نشده درست جواب میده یعنی دقیقا" چیزی که من میخوام ولی بعد از exe کردن خراب میشه !!
امتحان کنید. یکباره بصورت معولی و دفعه بعد exe کنید!!!!!!!!!
2- آیا راه کاری بهتر از این رو سراغ دارید ؟ من میخواهم حتی المقدور از آرایه استفاده کنم
منتظر رفع ایراد واشکال و ارائه هر گونه پیشنهاد بهترازطرف شما دوستان هستم
متشکرم
رهرو
rezaTavak
سه شنبه 02 اسفند 1384, 21:19 عصر
خب برنامه شما را من عوض کردم ناراحت نشید اما زیاد استاندارد نیست. مثلا از متغیر عمومی اگر استفاده کنید به مشکل بر می خورید من آرایه شما را در form.hazineh ذخیره کردم.
دوم اینکه من فقط cboCenter1 را درست کردم.
سوم مشکل شما به دلیل خط زیر بود:
COPY TO ARRAY hazineh FIELDS nam,kod
همچنین در valid
LOCAL nFind
nFind = ASCAN(THISFORM.hazineh, THIS.Value, 1, ALEN(THISFORM.hazineh,2), 2)
IF nFind > 0 && IF find!
THISFORM.cboCenter1.Value = THISFORM.hazineh[nFind, 1]
THISFORM.cboCenter1.Enabled = .F.
ELSE
THISFORM.cboCenter1.Enabled = .T.
THISFORM.cboCenter1.ListIndex = 1
ENDIF
rahro
چهارشنبه 03 اسفند 1384, 05:08 صبح
نمی دانم چگونه از لطفتون تشکر کنم
تقاضایی دارم و آن اینکه در خصوص بعضی از کدهایی که اضافه کرده اید توضیحاتی دهید آخه من این نمونه کد نویسی رو در هیچ کتابی و یا پروژه ای ندیدم
شما در تکست باکس مربوطه در رویداد lostfocus بعداز کدی که برای تغییر حالت رنگ به پیش فرض درج شده بود کد this.valid رو اضافه کردید! میشه بگوئید این کد چکار میکنه ؟!!
و شما در رویداد valid که در کد نویسی بالا نیز مشهود است این کد را نوشته اید thisform.hazineh[nfind,1
این کد یعنی چی!؟ من تنها میدانستم که با thisform فقط شی ها رو صدا میزنند در حالی که !!!!!!
بحرحال بی نهایت متشکرم
رهرو
rezaTavak
چهارشنبه 03 اسفند 1384, 09:58 صبح
سلام
رویه ها و رویدادها در واقع تکه های برنامه هستند که به طور معمول رویه توسط کدی که برنامه نویس می نویسد فراخوانی می شود و روداید بر اثر وقوع رویداد مرتبط. در واقع رویداد رویه ای است که بسته به شرایط خاصی اتفاق می افتد. خب من هم در برنامه هایم می توانم این رویداد را به صورت رویه صدا بزنم.
THIS.Valide()
or
THIS.Valide
هر کلاس می تواند دارای مشخصه ای باشد که آرایه نیز هست برای تعریف آرایه در کلاس باید :
laArrayName[10,10]
در منوی اضافه کردن مشخصه به کلاس بکار برد. این کمک خواهد کرد که یک آرایه در مثلا فرم ذخیره شود و تمام کنترلهای دیگر هم به آن دسترسی داشته باشند و شما دیگر لازم نیست که آن را به صورت عمومی تعریف کنید.
همچنین شما برای جستجو در آرایه از روش حلقه استفاده کرده اید اما تابعی به اسم ASCAN هست که این کار را برای شما انجام می دهد.
شما به کنترلهایتان اسامی درست بدهید مثلا cboCenterBodjet1 گرچه تایپ آن طولانی است اما درک آن سریعتر است در برنامه طولانی.
راستی یکبار شاکی شده بودی چیزی که گداشته بود دانلود نشده اگر دقت کنید می بیند همین که آقای رهرو دانلود کرده ولی درست نشان داده نمی شود!
توضیح: رویداد event - رویه procedure - مشخصه properties
rahro
چهارشنبه 03 اسفند 1384, 10:55 صبح
سلام
شاید این بهترین و بزرگترین چیزی بود که تا کنون از ویژوال فاکس آموختم از شما متشکرم .
نوشته بودید:من آرایه شما را در form.hazineh ذخیره کردم.
این آرایه رو دیدم ولی چگونه اینکار رو کردید!؟ ببخشید ولی واقعا" تا کنون با این موضعات آشنا نشده ام
خواهش میکنم در این خصوص بیشتر توضیح دهید مطمئنم بیشتر کسانی که تازه با ویژوال آشنا شده اند این مبحث برایشان خیلی شیرین و اموزنده است
رهرو
rezaTavak
چهارشنبه 03 اسفند 1384, 11:23 صبح
سلام
فاکس پرو اینقدر ریزه کاری داره که اگر بدونید برنامه نویسی توش خیلی راحت و خوب میشه.
این کارها را بکنید :
۱- از منوی from گزینه new property را انتخاب کنید
۲- در name آرایه خود را تعریف کنید مثلا: laArray1[100,10]
۳- بعد از بستن این فرم در پنجره properties این باید باشد: laArray1[100,10] و مقدار آن .F. که آن را نمی توانید تغییر دهید.
۴- برای دسترسی به هر عنصر آن باید: THISFORM.laArray1[nRow,nCol] مثلاTHISFORM.laArray1[5,3]
خب به عنوان یک آرایه معمولی با آدرس بالا در عر جای فرم قابل دسترسی است همچنین در کلاسها هم به همین منوال با این تفاوت که دیگر به جای THISFORM باید آدرس کلاس باشد.
rahro
چهارشنبه 03 اسفند 1384, 13:06 عصر
در تابع ascan منظور از گزینه nSearchColumn ,nFlags چه میباشد من سعی کردم help رو ترجمه کنم ولی چیزی عایدم نشد
متشکرم .
rahro
پنج شنبه 04 اسفند 1384, 09:28 صبح
در تابع ascan منظور از گزینه nSearchColumn ,nFlags چه میباشد من سعی کردم help رو ترجمه کنم ولی چیزی عایدم نشد
متشکرم .
دوستان کسی نیست در این خصوص کمک کنه !
rezaTavak
پنج شنبه 04 اسفند 1384, 12:16 عصر
سلام
اینترنتم خراب بود نتونستم امروز صبح سر یزنم.
اما گزینه های ascan
1- نام آرایه ای که می خواهد در آن جستجو شود
۲- چیزی که می خواهید جستجو شود
۳- از چندمین عنصر شروع شود؟
۴- چند تا عنصر جستجو شود؟
۵- اگر آرایه دوبعدی بود کدام ستون آن؟
۶- اما در مورد فلاگ:
فرض کن چهار بیت داری بیت اول از سمت راست به چپ هر کدام یک بود فلاگ مخصوص روشن می شود فلاگها ۰ اگر روشن بود یعنی بزرگ بودن و کوچک بودن حروف فرقی ندارد فلاگ یک در نگارشهای قدیمی استفاده میشد و فلاگ ۲ یعنی دقیقا برابر مثلا ali=alireza اما اگر این فلاگ روشن باشد این صحیح نیست. (به عنوان قانون کلی اگر excat off باشد فقط له تعداد اولین سمت بررسی می شود. البته از ansi هم قافل نشوید)
و فلاگ آخری شماره ردیف را بر می گرداند.
توضیحات راهنمای فاکس پرو شما را بیشتر کمک می کند اگر خواستی بگو بیشتر توضیح بدم.
rahro
شنبه 06 اسفند 1384, 07:56 صبح
متشکرم جناب تاوک
آیا روشی هست که در ویژوال فاکس 9 خرابی فایلها رو ترمیم کرد!؟ ( صدمات ناشی از برق رفتگی و غیره که باعث خرابی هندل فایل میشه)
rezaTavak
شنبه 06 اسفند 1384, 10:15 صبح
سلام
بله!
یک شما باید از استراکچر فایل dbf آگاه باشید (که در راهنما است) و آن را با توابع سطح پایین باز کنید و تر میم کنید.
یک راه ساده این است که
۱- شما یک کپی از جدول که در آن چیزی نیست تهیه می کنید (قبل از خرابی) مثلا من یک شاخه در برنامه هایم دارم به اسم cleandbf که تمام جداول و شاخصها و... در آن است اما هیچ اطلاعاتی در اینها نیست برای ترمیم هر جدول را به شاخه tmp هم که درست کرده ام کپی میکنم.
۲- جدول خراب و سالم را با vfp7 باز میکنم.
۳- داده های آن را به جدول سالم در شاخه tmp کپی میکنم.
۴- فایل خراب را پاک و فایل tmpرا جایگزین میکنم.
البته منظور از vfp7 فایلهای اجرایی هستند که توسط این نگارش ترجمه شده و نیاز به فایلهای زمان اجرای نگارش مذکور هم هست.
ضمنا من «محمد رضا توکل» هستم و برای یکتا بودن در اینترنت از rezatavak در همه جا استفاده میکنم (:
rahro
شنبه 06 اسفند 1384, 10:19 صبح
سلام
منظورم بیشتراین بود که اینکار توسط برنامه ای نوشته شده و توسط شخص کاربر انجام شود !؟
آیا شما در این خصوص برنامه ای دارید ؟
میشه لطف کنید برای من و دیگران بگذارید
rezaTavak
شنبه 06 اسفند 1384, 10:28 صبح
سلام
من دارم اما به درد خودم می خوره.
چشم درست می کنم می ذارم شاید یک ماهی طول بکشه چون آخره ساله و نگارش برنامه من هنوز مشکل دارم سرم خیلی شلوغه اما از این شب عید!
binyaz2003
شنبه 06 اسفند 1384, 22:22 عصر
امان!!!!!!!!!!!!!!
rezaTavak
سه شنبه 09 اسفند 1384, 08:13 صبح
سلام
یه فایل خراب کم حجم بذارید اینجا من ببینم چکارش می تونم بکنم.
البته آقای جواد حسینی گذاشته بودند من هر چی گشتم پیدا نکردم.
rahro
سه شنبه 09 اسفند 1384, 08:20 صبح
سلام
آیا تابعی وجود دارد که مشخص کند در یک فرم در بین چندین تکست باکس , کرسر در کدام یک قرار دارد؟
از این تابع میخواهم در کد نویسی استفاده کنم !
و آیا تابعی وجود دارد که بتواند تشخیص دهد در حال حاضر کدام تکست باکس یا شی فعال است که بشود کرسر را به آنجا منتقل کرد؟
متشکرم
rezaTavak
سه شنبه 09 اسفند 1384, 10:18 صبح
سلام
بله:
*ActiveForm in FormSet
*ActiveObject in others!
البته یه چیزی اینکه فقط کنترلهایی که می شه توش کنترل اضافه کرد دارند.
rahro
سه شنبه 09 اسفند 1384, 11:33 صبح
استاد اصلا متوجه نشدم !!
آیا اینها تابع هستند؟!
چطور میتوان مشخص کند در یک فرم در بین چندین تکست باکس , کرسر در کدام یک قرار دارد؟
چطور میتوان تشخیص دهد در حال حاضر کدام تکست باکس یا شی فعال است که بشود کرسر را به آنجا منتقل کرد؟ خروجی و دستورالعمل استفاده از آنها چگونه است
لطف میکنید اگر جامع تر توضیح دهید.
رهرو
rezaTavak
سه شنبه 09 اسفند 1384, 14:45 عصر
سلام
راستش خودم کار نکردم چون موردش پیش نیومده و چون من از کلاس در فرمهام استفاده میکنم کنترل اونها آسون تره.
kia1349
سه شنبه 09 اسفند 1384, 15:49 عصر
یه فاکس پرو کار باید همیشه برنامه foxplus رو داشته باشه
این برنامه تحت داس کار میکنه و تمام جدولهای خراب رو باز میکنه
توجه:وقتی یک فایل خراب رو باز کردید از استراکچر اون یه کپی بگیرید و با دستور کپی تمام اطلاعات رو به جدول جدید کپی کنید
مهم:اگر شما در جدول خراب رکوردهایی داشته باشید که برای delete شدن مارک دار شده باشند در زمان کپی این فیلدها هم کپی میشوند ولی در جدول جدید هیچ مارکی براشون گذاشته نمیشه
نکته:foxplus چون به هدر جداول کاری نداره به این خاطر میتونه اونها رو باز کنه و تقریبا 95 درصد از خرابی جداول مربوط به خرابی هدر جداول میباشند
rezaTavak
سه شنبه 09 اسفند 1384, 18:27 عصر
سلام
ولی من اینو می خوام با خود فاکس انجام بدم.
rezaTavak
سه شنبه 09 اسفند 1384, 23:44 عصر
سلام
اونهایی که فایل خراب شده دارند این را امتحان کنند و در ویژوال 9 نمی توانند باز کنند.
********** تذکر مهم **********
ممکن است اطلاعات شما را خراب کند مواظب باشید!!!!!!!!!!!!!!!!!!!!!!!!!!!! اول از فایل خود پشتیبان بگیرد
********** تذکر مهم **********
اول فایل باز میشود و میزان ها محاسبه می شود و تناقضها گزارش می شود اگر تناقضی بود درست میکند.
**********************************************
*
* Show Record Number, Length Header,
* Length Record, FileSize,
* Current File Size
*
**********************************************
FUNCTION RepairDbf
LPARAMETERS tcFileName
IF TYPE("tcFileName")<> "C"
? "No Parameter!"
RETURN -1 && No parameter!
ENDIF
LOCAL ARRAY laFileProperties[1,2]
LOCAL lnFileLen, lnRecNo, lnLenRec, lnLenHeader
ADIR(laFileProperties, tcFileName)
lnFileLen = laFileProperties[2] && File Size
lnFileHandle = FOPEN(tcFileName,2)
IF lnFileHandle < 1
? FERROR(), ErrorFileLowLevelWork()
RETURN -2 && Can't Open File!
ENDIF
FSEEK(lnFileHandle, 4)
lnRecNo = FREAD(lnFileHandle, 4) && Record Number
lnLenHeader = FREAD(lnFileHandle, 2) && Length Header
lnLenRec = FREAD(lnFileHandle, 2) && Length Record
lnRecNo = BytestringToNumber(lnRecNo)
lnLenHeader = BytestringToNumber(lnLenHeader)
lnLenRec = BytestringToNumber(lnLenRec)
&& Show Numbers
?"Record Number:", lnRecNo
?"Length Header:", lnLenHeader
?"Length Record:", lnLenRec
?
?
?
?"File Length:", lnFileLen
?"Currecnt Must:", lnRecNo*lnLenRec+lnLenHeader
?"Diffrent is:", lnFileLen - lnRecNo*lnLenRec+lnLenHeader
IF lnFileLen - lnRecNo*lnLenRec+lnLenHeader <> 0 AND ;
MESSAGEBOX("Currect Size file?",16+4)=6
&& if filesize not correct and IF Press Yes
FCHSIZE(lnFileHandle, lnRecNo*lnLenRec+lnLenHeader)
ENDIF
FCLOSE(lnFileHandle)
RETURN 0
ENDFUNC
**************************************************
* THIS FUNCTION GET STRING OF BYTE AND RETURN
* EQUVALENT NUMBER
*
*
*
**************************************************
FUNCTION BytestringToNumber
LPARAMETERS tcStr
LOCAL i, lcHex
lcHex = ""
FOR i = LEN(tcStr) TO 1 STEP -1
lcHex = lcHex + RIGHT(TRANSFORM(ASC(SUBSTR(tcStr,i,1)),"@0"),2)
NEXT
RETURN EVALUATE("0x" + ALLTRIM(lcHex))
ENDFUNC
************************************************** *
* THIS FUNCTION GET STRING OF BYTE AND RETURN
* EQUVALENT NUMBER
*
*
*
************************************************** *
FUNCTION ErrorFileLowLevelWork
LOCAL ARRAY laArray[31]
laArray[2] ="File not found"
laArray[4] ="Too many files open (out of file handles)"
laArray[5] ="Access denied"
laArray[6] ="Invalid file handle given"
laArray[8] ="Out of memory"
laArray[25] ="Seek error (can't seek before the start of a file)"
laArray[29] ="Disk full"
laArray[31] ="Error opening file"
RETURN laArray[FERROR()]
ENDFUNC
این کد را با:
SET PROCEDURE to repairdbf.prg
RepairDbf("Path\tablename.extention")
فرا بخوانید.
naderigh
چهارشنبه 10 اسفند 1384, 08:32 صبح
اقایان لطفا بفرمائید چگونه میشود اتومات از اطلاعات در یک ساعت خاص از شبانه روز کپی گرفت
جهت اطلاع برنامه شبانه روز در حال کار میباشد
rezaTavak
چهارشنبه 10 اسفند 1384, 18:39 عصر
سلام
بستگی داره.
اینکه برنامه تحت شبکه است؟ چند نفر در هر لحظه کار می کنند؟ ساعت 2 شب هم کسی در حال کار با برنامه است؟ کمترین ساعتی که از برنام استفاده می شه چه ساعتیه؟ برنامه شما چند تا جدول داره؟ و...
مثلا اگر یه تایمر روی یک فرم مخفی بگذارید و این کار را به آن بسپارید و در شبکه باشید و 3 نفر در حال کار باشند سه نسخه گرفته میشود!
اول شرایط محیط کارتون را بررسی کنید.
rezaTavak
پنج شنبه 11 اسفند 1384, 10:17 صبح
سلام
برنامه ترمیم Dbf را حتی یکنفر هم امتحان نکرده؟؟؟؟
البته من خودم جواب گرفتم خواستم مطمئن بشم.
rahro
پنج شنبه 11 اسفند 1384, 11:19 صبح
سلام
برنامه ترمیم Dbf را حتی یکنفر هم امتحان نکرده؟؟؟؟
البته من خودم جواب گرفتم خواستم مطمئن بشم.
استاد عزیز سلام
باور کنید هر چی سعی کردم یک فایلی رو معیوب کنم نشد که نشد!
در حین وارد کردن اطلاعات به بانک در یک حلقه نامحدود چندین بار سیستم خود را ریست کردم ولی نشد ! لج کرده !
بحرحال از لطف شما متشکرم
Behnam Azadi
پنج شنبه 11 اسفند 1384, 11:44 صبح
سلام استاد
من یک دیتابیس فاکس تحت داس دارم که به اس کیو ال سرور 2000 import کردم. ولی فونتش بهم ریخته. لطف می کنید اگه راهنمایی کنید.
متشکرم.
rezaTavak
پنج شنبه 11 اسفند 1384, 12:10 عصر
سلام
آقای رهرو ممنون. فقط منطق برنامه را ببینید مشکل نداره؟ آخه من فهمیدم که اگر فایلی باز نشه اندازه اون بزرگتر از ان چیزی هست که باید باشه و از همین ترفند بهره بردم.
آقا بهنام اول شما باید اطلاعاتتون را به ویندوز تبدیل می کردید.
naderigh
پنج شنبه 11 اسفند 1384, 13:46 عصر
با تشکر از شما اقای توکل
برنامه مورد نظر من شبانه روز در حال کار میباشد ولی از 10 یا 12 شب تا 7 صبح کاربران تغریبا یک نفر میاشد ولی در سایر اوقات پنج شش نفری همزمان کار میکنند در خصوص نوع تایمر و چه مقادیری لطفا راهنمائی فرمائید
rezaTavak
پنج شنبه 11 اسفند 1384, 22:01 عصر
سلام
سعی می کنم برنامه ای به شما بدم البته یک دو روز دیگه. حجم اطلاعاتتون چقدره؟
چند تا فایله؟
naderigh
شنبه 13 اسفند 1384, 09:04 صبح
حجم اطلاعاتی که میخواهم کپی بگیرم فقط اطلاعات یک روز میباشد و زیاد نیست
یا بعبارتی ورودیهای یک روز را و فعلا یک فایل میباشد
البته اگر بشود که کل اطلاعات نیز در یک روز خاص در هفته کپی بصورت اتومات گرفت که خیلی جالب میشود
rezaTavak
شنبه 13 اسفند 1384, 09:12 صبح
سلام
یعنی برای هر روزی یک فایل دارید؟!؟
binyaz2003
یک شنبه 14 اسفند 1384, 00:50 صبح
3 محصول جدید بی نیاز در سایت آپلود شد
www.binyazprograms.com
naderigh
یک شنبه 14 اسفند 1384, 07:27 صبح
با سلام
جناب اقای توکل خیر قربان یک فایل ورودی دارم که اطلاعات ورودی یک روزه در آن ثبت میگردد و یک فایل مرکزی ... از روی فایل ورودی هر روز ورودی همان روز تحت عنوان یک فایل با نام تاریخ میخواهم ذخیره گردد و .....
rezaTavak
یک شنبه 14 اسفند 1384, 08:47 صبح
یک فایل ورودی دارم که اطلاعات ورودی یک روزه در آن ثبت میگردد و یک فایل مرکزی ... از روی فایل ورودی هر روز ورودی همان روز تحت عنوان یک فایل با نام تاریخ میخواهم ذخیره گردد و .....
ببینید از حرفهای شما معلومه که می خواهید مثلا فایلهای امروز با ۱۳۸۴۱۲۱۴.dbf ذخیره گردد؟
خب با این حساب شما فقط ساعت ۲۴:۰۰ باید از اطلاعات پشتیبان تهیه کنید. و چون فقط همان روز باید باشد برنامه عملا از ساعت ۲۴:۰۰ تا اتمام کپی باید متوقف گردد. اگر درست گرفتم بگید شروع کنم.
rahro
یک شنبه 14 اسفند 1384, 11:02 صبح
سلام
من در خصوص محیط data environment این رو میدونم که میشه بانکهای اطلاعاتی خود را در این محیط add کرده و بعد از رابطه های احتمالی از آن استفاده کرد و محیطی واقعا ساده و مورد پسند میباشد ولی مواردی که برایم مبهم است این است
1- آیا استادان انجمن این محیط رو برای بازکردن بانکها و استفاده از آن محکم می بینند و یا سعی میکنند با select و use و ایجاد رابطه ها دستی از بانکهای اطلاعاتی استفاده کنند؟
2- آیا در صورتی نخواهیم از این روش استفاده کنیم تنها راه ارتباط موقت بانکها اطلاعاتی فقط همین روش است ؟
3- مشاهده کردم که میشه یک بانک اطلاعاتی رو چندین بار توسط این دستور add کرد آیا و این کار توصیه میشود؟
4- در هنگام استفاده از این روش , در کد نویسی برای فراخوانی بانک مربوطه تنها دستور
select nametable مرا به مقصود خود میرساند آیا روش بهتر و محکمتری برای باز کردن بانک مربوطه وجود دارد؟
5- این بانکها در چه ناحیه ای باز میشوند؟ و روش تشخیص ناحیه در این روش چیست ؟
و در آخر اگر از این محیط استفاده های دیگر و بهتری هم میشود خوشحالم میشوم از شما بیاموزم
مرا یاری در فرا گیری علم یاری کنید
رهرو
rezaTavak
یک شنبه 14 اسفند 1384, 11:58 صبح
سلام
۱- یعنی چی محکم می بینیم؟ این DataEnvironment یک شی است اگر مفاهیم شی گرایی را بدانید دیگر هیچ سوالی باقی نخواهد ماند.
۲- اگر ارتباط از طریق داس را بلد باشید می توانید مثل آن عمل کنید ولی کارتان بهمراتب سخت می شود. و کدهای شما غیر استاندارد و بدون در نظر گرفتن شی گرایی.
۳-چرا چند بار یک بانک باید use بشه؟ اینکار از سیستم و برنامه منابع اضافی در خواست خواهد کرد.
۴- باز هم محکم یعنی چه؟
۵- این بانکها در DataSession ها باز می شود. بر خلاف تحت داس که یک همچین چیزی نداره. چچون این یک شی است. اگر یک فرم باز دارای بانک باشد و در خط فرمان دستور Set
زده شود تا لیست فایلهای را ببینید یک کامبو بالای صفحه هست که به اسم DataSessin شما را مشخص میکند. محیط پیش فرض برای کار در فاکس پرو Default است. هر فرم دارای DataSession مخصوص به خود است که به همین شی در فرم تعریف می شود.
برای استفاده از این محیط میتوانید از شی
THISFORM.DataEnvironment.Cursor1.
استفاده کنید. و جدول اطلاعاتی را به صورت یک شی در آورید. این کار شی گرایی شما را زیاد خواهد کرد.
naderigh
دوشنبه 15 اسفند 1384, 10:11 صبح
جناب اقای توکل همانطوریکه شما میفرمائید
arash2005
دوشنبه 15 اسفند 1384, 13:16 عصر
سلام
من یه برنامه برای گرفتن اطلاعات و ریسیت کردن یه ساعت حضور غیاب مدل
pw1400
میخوام . البته با فاکس داس . اگه کسی داره لطفا کمک کنه .
اگه برای فروش هم بود من میخام
فقط خیلی عجله دارم
ممنون از زحمات مدیران سایت
rahro
دوشنبه 15 اسفند 1384, 21:02 عصر
سلام جناب تاوک
منظورم از محکم, قابل اطمینان برای پروژهای بزرگ , بود اخه بیشتر پروژ هایی که دوستان در سایت گذاشته بودند از این روش استفاده نکردند.
سوالی دیگر هم داشتم و ان اینکه چطور میتوانم یک آرایه دو بعدی رو به یک گرید متصل کنم . منظورم اینه بجای استفاده از table از آرایه استفاده کنم
متشکرم
kia1349
سه شنبه 16 اسفند 1384, 06:17 صبح
خود شرکت دنیای پردازش این برنامه رو تحت داس و با زبان فاکس دارد
زنگ بزنید شرکت و با آقای حکیمی صحبت کنید
rezaTavak
سه شنبه 16 اسفند 1384, 07:57 صبح
سلام
جناب رهرو:
برنامه نویسی شی گرا یک موضوع به اثبات رسیده است. گرچه سرعت در این نوع برنامه ها بسیار کندتر است اما درک برنامه از لحاظ کلی بیشتر است. محدود کردن برنامه در یک چیز کوچک.
مثل زمانی که برنامه نویسی ساختیافته و غیر ساختیافته مطرح بود. استفاده از دستور Goto آن زمان توصیه نمی شد. امروز هم همین است. شی گرایی محض توصیه می شود. که جاوا سردمدار آن است.
اما در مورد آرایه در گرید هم قبلا بحث شده است. بایستی آن به طور موقت داخل یک جدولی یا ویو کپی شود.
naderigh
چهارشنبه 17 اسفند 1384, 09:00 صبح
اقای توکل برنامه کپی لطفا ....
rezaTavak
چهارشنبه 17 اسفند 1384, 19:54 عصر
سلام
دارم مینویسم
خیلی سرم شلوغه . چشم
rezaTavak
چهارشنبه 17 اسفند 1384, 23:28 عصر
سلام
ببخشید آخر سال همه گرفتارند:
************************************************** ************************************************
* Procedure Make backup on midnight
* Last Update : 03/08/2006
* By : M.R.TAVAKOL
* Parameters:
* TableName : table name that you chack it
* Path : path for filename destention
* Attention*************Attention*************Attent ion
* ***** Warning: if you use timer in other part of program
* it can be slow or siop your codes!
* ***********************
************************************************** ************************************************
LPARAMETERS tcTableName, tcPath
#DEFINE MESSAGEUSERBYANOTHER "ÈÇä˜ ÑÇ ˜Óí ÏíÑ ÈÇÒ ˜ÑÏå ÇÓÊ"
#DEFINE MESSAGEFILENOTFOUND "ÝÇíáí Èå Çíä ÇÓã æÌæÏ äÏÇÑÏ"
_SCREEN.AddObject("tmrBackup","tmrMyTimer")
_SCREEN.tmrBackup.cPathBackup = tcPath
_SCREEN.tmrBackup.cTableName = tcTableName
DEFINE CLASS tmrMyTimer as Timer
Interval = 1000 && On a minute.
cTableName = '' && Table Name that you want to create backup
cToday = ''
cBackUpname = ''
cPathBackup = ''
PROCEDURE INIT &&Initial Properties
LOCAL o
o = THIS
o.cToday = o.ToDay()
o.cBackupName = o.cToDay+".DBF"
ENDPROC
************************************************** ************************************************
* Procedure Make backup on midnight
* Last Update : 03/08/2006
* By : M.R.TAVAKOL
* Parameters:
* None
* Return: Today
*
*
************************************************** ************************************************
FUNCTION ToDay
LOCAL lcPreDateSet, lcPreCenturySet, lcToDay
lcPreDateSet = SET("Date")
lcPreCenturySet = SET("Century")
SET CENTURY ON
SET DATE YMD
lcToDay = STRTRAN(DTOC(DATE()),"/","")
SET CENTURY &lcPreCenturySet
SET DATE &lcPreDateSet
RETURN lcToday
ENDFUNC
************************************************** ************************************************
* THIS Procedure check for midnight and if occure create backup
* Last Update : 03/08/2006
* By : M.R.TAVAKOL
* Parameters:
* none
*
* Return Values:
* none
*
************************************************** ************************************************
PROCEDURE timer
WITH THIS
LOCAL lcToday
lcToDay = THIS.Today()
IF lcToday > THIS.cToday
.Makebackup(.cTableName, .cPathBackup+"\"+.cBackUpname )
.cToday = lcToday
.cBackUpname = .cToday +".dbf"
ENDIF
ENDWITH
ENDPROC
************************************************** ************************************************
* THIS Function Make backup
* Last Update : 03/08/2006
* By : M.R.TAVAKOL
* Parameters:
* TableName : table name that you chack it
* FileName : path and filename destention
* Return Values:
* -1: Table Open By Another
* -2: Table Dose not exist?!
* 0: Successful!
*
************************************************** ************************************************
FUNCTION MakeBackup
LPARAMETERS tcTablename, tcDestFile
LOCAL lnUseByAnother, lnPreSelect, lnSelectUse
lnUseByAnother = UseByAnother(tcTablename)
lnPreSelect = SELECT(0)
DO CASE
CASE INLIST(lnUseByAnother,1,3)
MESSAGEBOX(MESSAGEUSERBYANOTHER,16)
RETURN -1
CASE lnUseByAnother=2
lnSelectUse = USEDBF(tcTablename)
COPY TO (tcDestFile)
IF lnSelectUse = 2
USE
ELSE
SELECT (lnPreSelect)
ENDIF
RETURN 0
MESSAGEBOX("Ok")
CASE lnUseByAnother=4
MESSAGEBOX(MESSAGEFILENOTFOUND,16)
RETURN -2
ENDCASE
ENDFUNC
ENDDEFINE
************************************************** ************************************************
* THIS Function determin Table use by another
* Last Update : 02/16/2004
* By : M.R.TAVAKOL
* Parameters:
* TableName : table name that you chack it
* Return Values:
* 1: File Open By Another share
* 2: File Not Open By Another
* 3: File Open Exclusive
* 4: File Dose not exist!
************************************************** ************************************************
FUNCTION UseByAnother
LPARAMETERS lcTableName &&TableName And Path and Extention Must Be Entered
LOCAL lnFileHandle1
lnFileHandle1=FOPEN(lcTableName,0)
IF lnFileHandle1>0 THEN
=FCLOSE(lnFileHandle1)
lnFileHandle1=FOPEN(lcTableName,2)
IF lnFileHandle1<0
RETURN 1 && File Open By Another Share
ELSE
=FCLOSE(lnFileHandle1)
RETURN 2 && File not Open By Another
ENDIF
ELSE
IF FILE(lcTableName)
RETURN 3 && File Open Exclusive
ELSE
RETURN 4 && File Dose not exist!
ENDIF
ENDIF
ENDFUNC
************************************************** ************************************************
* THIS Function use or select table
* Last Update : 02/16/2004
* By : M.R.TAVAKOL
* Patameters:
* table name that select or use
* Return Values:
* 1: select only
* 2: select new area and use
*
* Remeber: it work on this datasession
*
************************************************** ************************************************
FUNCTION USEDBF
LPARAMETERS tcTableName
IF USED(tcTableName)
SELECT (tcTableName)
RETURN 1
ELSE
SELECT 0
USE (tcTableName)
RETURN 2
ENDIF
ENDFUNC
البته چیزی که هست اینه که با سرعت نوشتم و مشکل حتما داره خودتون روش تست کنید.
روش صدا زدن:
CreateBackup("table.dbf","c:\")
naderigh
پنج شنبه 18 اسفند 1384, 07:09 صبح
اقا بسیار بسیار سپاسگزارم
rahro
پنج شنبه 18 اسفند 1384, 12:08 عصر
سلام
جناب رهرو:
برنامه نویسی شی گرا یک موضوع به اثبات رسیده است. گرچه سرعت در این نوع برنامه ها بسیار کندتر است اما درک برنامه از لحاظ کلی بیشتر است. محدود کردن برنامه در یک چیز کوچک.
مثل زمانی که برنامه نویسی ساختیافته و غیر ساختیافته مطرح بود. استفاده از دستور Goto آن زمان توصیه نمی شد. امروز هم همین است. شی گرایی محض توصیه می شود. که جاوا سردمدار آن است.
اما در مورد آرایه در گرید هم قبلا بحث شده است. بایستی آن به طور موقت داخل یک جدولی یا ویو کپی شود.
اقا رضا سلام
من بانکهای اطلاعاتی خود را در محیط DataEnvironment باز نموده ام و با توجه به گفته شما در خصوص گرید , یک table که نام آنرا از توابع ایجاد یک نام به صورت تصادفی بدست آوردم بصورت زیر ساختم
file_new=SYS(2015)
SELECT 0
create table &file_new (mol n(10),mbpr n(10), datpr c(10), mbgh n(10), datsr c(10), rd n(3))
و این table رو به گرید اتصال دادم ولی در انتها کارم که میخواهم این table رو حذف کنم خطای
file is use رو دریافت میکنم چطور میتوانم این فایل رو ببندم و حذف کنم
با فرمان use به تنهایی امتحان کردم مثمر ثمر نبود !؟
rezaTavak
پنج شنبه 18 اسفند 1384, 12:38 عصر
سلام
شاید DataSession درست نباشد.
اول با تابع used باز بودن جدول را تست کنید.
rahro
جمعه 19 اسفند 1384, 10:27 صبح
سلام
شاید DataSession درست نباشد.
اول با تابع used باز بودن جدول را تست کنید.
سلام
منظورتون رو در خصوص خط اول متوجه نشدم
اینکار رو کردم فرمان used نشان میده که فایل بازه ولی فرمان use نمی تواند فایل رو ببندد!؟
خواهش میکنم یک دفعه دیگه پست قبلی مرا مطالعه کنید و ببنید ایرادی ندارد!؟
منتظرم
رهرو
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.