ورود

View Full Version : set all



ashkan_gorg
پنج شنبه 10 مرداد 1387, 16:49 عصر
سلام من یک command دارم که توش میخوام بنویسم که تمام شی های داخل فرم top=thisform.coomand1.top+5 ولی این command ی که کلیک میکنم روش top آن تغییر نکنه یعنی اینکه همه اشیای داخل فرم خاصیتش تغییر کنه به غیراز این.اگه راهی به غییر از setallهم هست بگین ممنون میشم

binyaz2003
جمعه 11 مرداد 1387, 02:12 صبح
For i=1 To Thisform.ControlCount
If Thisform.Controls(i).Name<>"command1"
Thisform.Controls(i).Top=Thisform.Controls(i).Top+ 5
Endif
Endfor

ashkan_gorg
یک شنبه 13 مرداد 1387, 12:35 عصر
ولی همه کنترل ها وobjectهای داخل فرم را نمایش نمیده آخه wait window قرار می دم فقط چندتاازکنترل ها رو نمایش میده

ashkan_gorg
یک شنبه 13 مرداد 1387, 16:35 عصر
من داخل یک فرم چندتاcommandbuttonدارم که روی آن راshape قرار میدم باید درinit چه چیزی بنویسم که کل commandbottonها وتمامی شی ها یکباره روی shape قرار بگیرند

NewFoxStudent
یک شنبه 13 مرداد 1387, 18:06 عصر
This.Shape1.zOrder(1)

ashkan_gorg
یک شنبه 13 مرداد 1387, 18:55 عصر
zorderباید برابر با 0 باشد ولی من میخوام که کل اشیا را برابر با zorder 0قرار بدم باید چکارکنم نمیخوام دونه به دونه بنویسم میخوام یکدفعهzorder کل اشیارابرابر با 0قراردهم

rezaTavak
یک شنبه 13 مرداد 1387, 19:59 عصر
یک ارایه هست به اسم Controls با یک حلقه این آرایه را استفاده کن و کاری که می خواهی انجام بده.

مثل همانی که در پست ۲ است.

ashkan_gorg
یک شنبه 13 مرداد 1387, 20:23 عصر
این آرایه تمام آبجکت های داخل فرم را نمایش نمیده واز بعضی ها هم میگذره مثلا 10تاcommandهست 6تا را بیشتر نمایش نمیده

rezaTavak
دوشنبه 14 مرداد 1387, 07:28 صبح
امکان ندارد چطوری چک میکنید؟

NewFoxStudent
دوشنبه 14 مرداد 1387, 11:45 صبح
شما میخواهید shape که روی فرم هست زیر تمام کنترلها قرار بگیره
اگه منظورتون رو درست فهمیده باشم دستوری که نوشتم این کار و انجام میده

ashkan_gorg
دوشنبه 14 مرداد 1387, 13:39 عصر
نمی دونم ولی این کاررا نمیکند برای همین فرم را uploadمیکنم ممنون میشم کمک کنید21305

NewFoxStudent
سه شنبه 15 مرداد 1387, 10:36 صبح
دستوراتی که در init فرم نوشتید پاک کنید و فقط از این دستور استفاده کنید

this.shape1.zOrder(1)

ashkan_gorg
سه شنبه 15 مرداد 1387, 12:34 عصر
برای کنترل اونهایی که در فرم قرار دارند مثل یک progresbar که ازطریق ocx/load مشوند باید چکار کردن چون آنهارا به صورت یک کنترل نمیشناسه

NewFoxStudent
سه شنبه 15 مرداد 1387, 12:37 عصر
وقتی شما از دستور zorder(1) برای یک کنترل استفاده میکنید
در زمان اجرا اون کنترل زیر تمام کنترلهای فرم قرار میگیره
من با progressbar هم تست کردم جواب داد

NewFoxStudent
سه شنبه 15 مرداد 1387, 12:39 عصر
FOR i=1 TO this.ControlCount
WAIT WINDOW this.Controls(i).Name
ENDFOR

این دستورات تمام کنترلهای روی فرم رو دربر میگیره
فرقی هم نمیکنه که چه کنترلی باشه

ashkan_gorg
دوشنبه 21 مرداد 1387, 13:43 عصر
ببخشید من میخوام از توی یک فایل Prg بنویسم که thisformset.form2.visible=.t. اینو توی فایل prg چه جوری بنویسم؟

NewFoxStudent
دوشنبه 21 مرداد 1387, 14:10 عصر
فرض کنید فرم ست رو با نام NewFormSet ذخیره کردید


do form NewFormset
NewFormSet.Form2.Visible = .T.


یا


Do Form NewFormSet
_vfp.Forms.Item("form2").visible = .t.

ashkan_gorg
دوشنبه 21 مرداد 1387, 15:28 عصر
در حالت معمولی درست کار میکند ولی showwindow=1 یا 2 قرار میگیرد دستور را خطا میگیره

NewFoxStudent
سه شنبه 22 مرداد 1387, 08:12 صبح
برای حالت Intoplevelform
باید دستورات فوق رو در فرمی که toplevel هست بکار ببرید

NewFoxStudent
سه شنبه 22 مرداد 1387, 13:05 عصر
_Vfp.forms.Item("FormName").Visible = .T.
این دستور برای تمام حالات کار میکنه
من امتحان کردم جواب داد

ashkan_gorg
سه شنبه 22 مرداد 1387, 13:15 عصر
درسته ولی پروژه exe میشه دیگه خطا میگیره

NewFoxStudent
سه شنبه 22 مرداد 1387, 14:38 عصر
برای حالت exe باید به جای _VFP از نام پروژه استفاده کنید
فرض کنید پروژه شما با نام MyPrj روی هارد ذخیره شده

myprj.forms.item('FormName').Visible = .T.
یا


_Vfp.ActiveProject.Application.Forms("FromName").Visible = .T.