رفتن به مطلب
  • 0

غیر فعال کردن بقیه دکمه در مولتی پنل


alirezakazemizaroomi

سوال

سلام

من تو مولتی پنل یه دکمه دارم که برا دانلود ،حالا میخوام وقتی یکی از این دکمه های دانلودو زدم تا وقتی که فایل دانلود میشه همه این دکمه های دانلود که رو مولتی پنل هستن غیر فعال بشن وبعد از اینکه دانلود تموم شد دکمه های دانلود دوباره فعال بشن؟ کدش چطوری میشه؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

ارسال‌های توصیه شده

 

اینو ی امتحانی بکنید :

Sub JobDone (job As HttpJob)

    If job.Success=True And job.jobName = "job3" Then
	 ProgressDialogHide
    name= pat(1)
    Dim o As OutputStream
    o = File.OpenOutput(dier, name, False)
    File.Copy2(job.GetInputStream, o)
    o.Close
    job.Release
    ToastMessageShow("فایل دانلود و ذخیره شد",True)
	nb.setProgress(100,100,False )
	nb.ContentInfo = 100&"%"
	nb.AutoCancel=True
	nb.Notify(1)
		timer2.Enabled = False

 	Else If job.Success = True And job.JobName = "update1" Then
   Dim ou As OutputStream
   File.Delete(File.DirInternal,"film.db")
   ou = File.OpenOutput(File.DirInternal,"film.db",False)
   File.Copy2(job.GetInputStream,ou)
   ou.Close

Else If job.Success =  False Then

'اینجا بیا دکمه هارو غیر فعال کن مثلا :

Button1.Enabled = False
Button1.Visible =   False

End If

 

 

سلام

ببینید

کلا تو جاب دان فقط باید بیاین enable یا visible کنید

چون چه دانلود درست شه یا نه، شما باید دکمه هاتون معلوم باشن

پس وقتی که روی دانلود زدین و کد دانلود رو نوشتید، بقیه دکمه هارو یا رنگشونو تیره کنید یا visible = false کنید و در جاب دان، چه درست بود چه غلط، به حالت قبل برگردونید

من تو مولتی پنل یه دکمه دارم که برا دانلود ،حالا میخوام وقتی یکی از این دکمه های دانلودو زدم تا وقتی که فایل دانلود میشه همه این دکمه های دانلود که رو مولتی پنل هستن غیر فعال بشن وبعد از اینکه دانلود تموم شد دکمه های دانلود دوباره فعال بشن؟

یعنی من دراصل یه دکمه دانلود دارم که تو مولتی پنل تکرار شده وهر کدومو میزنم یه لینک جدا رو دانلود میکنن من مشکلم اینه که نمیدونم که تو تگ دکمه دانلودم چه کدی بنویسم که اگه یه بار دکمه دانلود زده شد تا دانلود تموم نشده دیگه نشه دکمه دانلودو زد،کدهایی که گفتین روهم تو جاب دان وهم تو آیتم کلیک دکمه دانلود نوشتم ولی عمل نمیکنه؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

شما با تگ و سندر کار میکنی دیگه؟

مثلا اینطوری

button1.tag = cur.getstring("link")

sub button

dim bt as tag
bt = SENDER
linkDowload ba estefade as bt
bt.visible = false

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

شما باید اون دکمه ای که سندرتون هست رو روش عمل انجام بدید

لینک ارسال
به اشتراک گذاری در سایت های دیگر

شما با تگ و سندر کار میکنی دیگه؟

مثلا اینطوری

button1.tag = cur.getstring("link")

sub button

dim bt as tag
bt = SENDER
linkDowload ba estefade as bt
bt.visible = false

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

شما باید اون دکمه ای که سندرتون هست رو روش عمل انجام بدید

این اون دکمه ای که زدمو ویزیبلشو فالس میکنه ولی من میخوام به غیر از این دکمه ای که زدم بقیه دکمه ها ویزیبلشون فالس بشه

لینک ارسال
به اشتراک گذاری در سایت های دیگر

چیزی الان به ذهنم میرسه اینه که بیاین اون باتنی که دانلودش تموم شده تگ اش رو توی فایل تکست یا دیتابیسی ذخیره کنید ، بعد موقعی ورود به برنامه فایل تکست رو بخونید و توی حلقه فور موقع ایجاد مولتی پنل شرط بذارید که از اون لینک ای که توی دیتابیس هست بگذره و باتن اش رو ایجاد نکنه.

سلام

من داخل لایوت "scv" فقط ScrollView1 رو تعریف کردم؛وداخل لایوت"pnl" یه پنل به نام Panel1 تعریف کردم وداخل Panel1 دکمه btdown که دکمه علاقه مندیم هستو تعریف کردم.

کدام اینطوریه:

کدای ساب گلوبالز:
Sub Globals
 Dim pat() As String
Private sql1 As SQL
Dim Stopint As Int=10%y
Private Cur1 As Cursor
Private Panel1 As Panel 
Private btdown As Button
Private ScrollView1 As ScrollView
End Sub

کد اکتیویتی کریت:

Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("scv")

If File.Exists(File.DirInternal,"film.db")=False Then
    File.Copy(File.DirAssets,"film.db",File.DirInternal,"film.db")
    End If

sql1.Initialize(File.DirInternal,"film.db",False)
    Cur1=sql1.ExecQuery("SELECT * From tbl33 WHERE id BETWEEN 1 AND 10 ")
    For i=0 To Cur1.RowCount-1
Cur1.Position=i
    Dim p As Panel
    p.Initialize("p")
    ScrollView1.Panel.AddView(p,0,Stopint,100%x,100%Y)
    Stopint=Stopint+25%x
    p.LoadLayout("pnl")
    Panel1.Color=Colors.RGB(3,36,72)
ScrollView1.Panel.Height=Stopint
    btdown.tag = Cur1.GetString("url") & "#" & Cur1.GetString("name") & "#" & Cur1.GetString("sal") & "#" & Cur1.Getint("fav") & "#" & Cur1.Getint("id")
    Panel1.tag = i
If Cur1.GetInt("fav") = 1 Then
    btdown.SetBackgroundImage( LoadBitmap(File.DirAssets,"zz.png"))
    Else
    btdown.SetBackgroundImage( LoadBitmap(File.DirAssets,"6.png"))
    End If
next
End Sub

کد دکمه علا قه مندیم اینه:

Sub btdown_Click

Dim ay As Button
    ay = Sender
Dim pat() As String = Regex.split("#",ay.tag)

If pat(3) = 1 Then     
Cur1=sql1.ExecQuery("SELECT * From tbl33 WHERE id BETWEEN 1 AND 50")
Cur1.Position =pat(4)
    sql1.ExecNonQuery("UPDATE tbl33 SET fav= 0 where id=" &pat(4))
    ay.SetBackgroundImage(LoadBitmap(File.DirAssets,"6.png"))
    ToastMessageShow("از لیست علاقه مندی ها حذف شد",False)
    Else
    Cur1=sql1.ExecQuery("SELECT * From tbl33 WHERE id BETWEEN 1 AND 50")
Cur1.Position =pat(4)
    sql1.ExecNonQuery("UPDATE tbl33 SET fav= 1 where id=" &pat(4))
    ay.SetBackgroundImage(LoadBitmap(File.DirAssets,"zz.png"))
    ToastMessageShow("به لیست علاقه مندی ها اضافه شد",False)
    End If
end sub

ولی فقط میشه یکبار رو دکمه کلیک کرد و اون یکبار درست کار میکنه مثلا وقتی کلیک میکنی میگه به علاقه مندیها اضافه شد و اگه دوباره رو همون دکمه کلیک کنی بازم میگه به علاقه مندیها اضافه شد باید چیکارش کنم تادرست بشه؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

ممنون از جوابت

RemoveView کردم ولی فرقی نکرد؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

شما با تگ و سندر کار میکنی دیگه؟

مثلا اینطوری

button1.tag = cur.getstring("link")

sub button

dim bt as tag
bt = SENDER
linkDowload ba estefade as bt
bt.visible = false

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

شما باید اون دکمه ای که سندرتون هست رو روش عمل انجام بدید

ویزیبل دکمه ای که روش کلیک کردمو فالس میکنه ولی وقتی برنامه رو دوباره باز میکنم خود به خود ویزیبلش true میشه؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام.

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

 

کلیت کار به این شکله شاید خودتون بتونید درست کنید ، نشد که کدتون رو بذارید.

Sub button1_Click
	Dim btn As Button
	btn=Sender

	For Each v As View In scrollview1.Panel.GetAllViewsRecursive
	If v<>btn Then
		v.Enabled=False
	End If
	Next
End Sub

میاد اول روی دکمه ای که کلیک شده در حال حاضر sender اش میکنه به btn تا نگهش داره.

بعد اومدم با حلقه فور ویو های اسکرول ویو رو چک کردم و گفتم اگه ویوهایی که داری میگردی توش btn نبود غیرفعالش کن.

اینجوری میاد تمام ویو هارو غیرفعال میکنه ، به جز باتنی که روش کلیک شده بوده.

 

البته میشه شرط هایی هم به کار برد که ویو های دیگه رو کار نداشته باشه و فقط دکمه دانلود هارو غیرفعال کنه.

مثل:

اگر این ویو باتن بود...

اگر این باتن تگ اش این بود (که تشخیص داده بشه باتن دانلود هست)...

و....

لینک ارسال
به اشتراک گذاری در سایت های دیگر

 

بعد از اتمام دانلود کافیه این کد رو قرار بدی.

	For Each v As View In scrollview1.Panel.GetAllViewsRecursive
		v.Enabled=True
	Next

ممنون درست شد  :gol:

الان یه مشکل دیگه داشتم ؛اینکه اگه بخوایم فقط اون دکمه ای که روش کلیک شد برا همیشه حذف بشه باید چیکار کرد؟بلدم اون دکمه ای رو که روش کلید شدو حذف کنم ولی وقتی دو باره برنامه رو باز میکنم خود بخود اون دکمه باز فعال میشه؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

الان بقیه دکمه ها غیر فعال شدن ،حالا وقتی دانلود تموم شدبازم اونا هنوز غیر فعال اند چطوری بعداز تموم شدن دانلود دوباره ویو هارو فعال کنم؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

 

ممنون درست شد  :gol:

الان یه مشکل دیگه داشتم ؛اینکه اگه بخوایم فقط اون دکمه ای که روش کلیک شد برا همیشه حذف بشه باید چیکار کرد؟بلدم اون دکمه ای رو که روش کلید شدو حذف کنم ولی وقتی دو باره برنامه رو باز میکنم خود بخود اون دکمه باز فعال میشه؟

 

چیزی الان به ذهنم میرسه اینه که بیاین اون باتنی که دانلودش تموم شده تگ اش رو توی فایل تکست یا دیتابیسی ذخیره کنید ، بعد موقعی ورود به برنامه فایل تکست رو بخونید و توی حلقه فور موقع ایجاد مولتی پنل شرط بذارید که از اون لینک ای که توی دیتابیس هست بگذره و باتن اش رو ایجاد نکنه.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

الان بقیه دکمه ها غیر فعال شدن ،حالا وقتی دانلود تموم شدبازم اونا هنوز غیر فعال اند چطوری بعداز تموم شدن دانلود دوباره ویو هارو فعال کنم؟

بعد از اتمام دانلود کافیه این کد رو قرار بدی.

	For Each v As View In scrollview1.Panel.GetAllViewsRecursive
		v.Enabled=True
	Next
لینک ارسال
به اشتراک گذاری در سایت های دیگر

چیزی الان به ذهنم میرسه اینه که بیاین اون باتنی که دانلودش تموم شده تگ اش رو توی فایل تکست یا دیتابیسی ذخیره کنید ، بعد موقعی ورود به برنامه فایل تکست رو بخونید و توی حلقه فور موقع ایجاد مولتی پنل شرط بذارید که از اون لینک ای که توی دیتابیس هست بگذره و باتن اش رو ایجاد نکنه.

هرچی فکر میکنم نمیتونم درستش کنم میتونید باکد توضیح بدید؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

ممنون از اینکه جواب دادین

من میخوام وقتی یکی از این دکمه های دانلودو زدم تا وقتی که فایل دانلود میشه همه این دکمه های دانلود که رو مولتی پنل هستن غیر فعال بشن وبعد از اینکه دانلود تموم شد دکمه های دانلود دوباره فعال بشن؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

 

بعد از اتمام دانلود کافیه این کد رو قرار بدی.

	For Each v As View In scrollview1.Panel.GetAllViewsRecursive
		v.Enabled=True
	Next

ممنون درست شد :gol:

الان یه مشکل دیگه داشتم ؛اینکه اگه بخوایم فقط اون دکمه ای که روش کلیک شد برا همیشه حذف بشه باید چیکار کرد؟بلدم اون دکمه ای رو که روش کلید شدو حذف کنم ولی وقتی دو باره برنامه رو باز میکنم خود بخود اون دکمه باز فعال میشه؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام 

 

شما از http استفاده میکنید دیگه :fekr:

 

بیاید و در ساب jobdone :

If Succes = False Then
Button1.Visible = False
Else If Succes = True Then
Button1.Visible = True
End If
لینک ارسال
به اشتراک گذاری در سایت های دیگر

 

سلام 

 

شما از http استفاده میکنید دیگه :fekr:

 

بیاید و در ساب jobdone :

If Succes = False Then
Button1.Visible = False
Else If Succes = True Then
Button1.Visible = True
End If

ممنون از جوابت 

ولی فرقی نکرد؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

ممنون درست شد :gol:

الان یه مشکل دیگه داشتم ؛اینکه اگه بخوایم فقط اون دکمه ای که روش کلیک شد برا همیشه حذف بشه باید چیکار کرد؟بلدم اون دکمه ای رو که روش کلید شدو حذف کنم ولی وقتی دو باره برنامه رو باز میکنم خود بخود اون دکمه باز فعال میشه؟

 

برای همیشه ؟

 

تنها راه RemoveView هست

Button1.RemoveView
لینک ارسال
به اشتراک گذاری در سایت های دیگر

ممنون از جوابت 

ولی فرقی نکرد؟

 

اگر از http استفاده کرده باشید و کدای دانلودتون مشکلی نداشته باشه باید با کدهای بالا جواب بده

 

کدای دانلودتون رو قرار بدید بررسی کنم

 

کدی ک ب شما دادم تا دانلود به پایان نرسه دکمه1 رو فعال نمیکنه :)

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

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

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...