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

RemoveView کردن تگ مولتی پنل برا همیشه


alirezakazemizaroomi

سوال

سلام

من مولتی پنل به شکل زیر دارم که داخلش یه دکمه دانلود هست:

Sub Activity_Create(FirstTime As Boolean)

	File.MakeDir(File.DirRootExternal, "دکتر سلام")
If File.Exists(File.DirInternal,"flm.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 ")
	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)
	btcan.Text=Cur1.GetString("name")
	L2.Text=Cur1.GetString("name")
	L2.Gravity=Gravity.RIGHT
	L2.TextColor=Colors.Gray
	L3.Text=Cur1.GetString("zaman")
	L3.Gravity=Gravity.CENTER
	L3.TextColor=Colors.Gray
	btfr.Text=Cur1.GetString("name")
	ScrollView1.Panel.Height=Stopint
	btdown.tag = Cur1.GetString("url") & "#" & Cur1.GetString("name") & "#" & Cur1.GetString("sal") & "#" & Cur1.GetString("id")
	Panel1.tag = Cur1.GetString("url") & "#" & Cur1.GetString("name") & "#" & Cur1.GetString("sal")
	Next
End Sub


Sub btdown_Click

	Dim ay As Button
	ay = Sender
    Dim parts() As String = Regex.split("#",ay.tag)
    StartActivity(add)
	
End Sub

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

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

14 پاسخ به این سوال تاکنون داده شده است

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

درود

میتونید اون تگ های مورد نظرتون رو توی یک دیتابیس ذخیره کنید و توی حلقتون هم شرطشو بزارید که اگه اون تگ توی دیتابیس بود اون رو نسازه !

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

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

تگ های موردنظرو میتونم تو دیتابیس ذخیره کنم ولی نمیدونم شرطشو چطوری تو حلقه بنویسم؟

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

zaker جان وقتی میبنید تاپیکتون بهش پاسخ داده نشده دوباره همون پاسخ تکراری رو پست نکنید. :gol:

 

الان دقیقا تگ اون باتن رو کجا ذخیره کردین؟؟؟ اسم ستون چیه؟؟

بیاین اینو واسم فراخوانی کنید و بریزید توی متغیر از نوع string تا راهنمایی کنم.

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

شرمنده که اینطوری شذ چون از دیشب تا حال منتظر بودم تا آنلاین بشین گفتم تانرفتین سوالو ازتون بپرسم :gol:

الان من مثل علاقه مندیها گرفتم گفتم وقتی دکمهbtdown زده شد بیا ستون favروکه ازنوع اینت عددشو یک کن؛حال موندم تو لود مولتی پنلم چطوری شرطو بنویسم که اون قسمت از ستون favکه عددش یک هست فقط دکمهbtdown رو نیاره(کل پنلو حذف نکنه فقط دکمه ای که ستون favاون یک هستو حذف کنه وبقیه که یک نیست رو بیاره)؟:د دکمهbtdown اینه:

Sub btdown_Click
    Dim ay As Button
    ay = Sender
Dim parts() As String = Regex.split("#",ay.tag)
StartActivity(add)

    dim check as int
check = Cur1.GetString("fav")If check = 0 Then
sql1.ExecNonQuery("UPDATE tbl33 SET fav = 1 WHERE id = "&pat(3))
sql1.IsInitialized
Cur1 = sql1.ExecQuery("SELECT * FROM tbl33")
ToastMessageShow("به علاقه مندی ها اضافه شد",False)
ay.Visible=False
End IfEnd Sub

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

اینجوری یکم کار پیچیده میشه و نمیشه راحت تشخیص داد.

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

بعد از اون بیاین حلقه زیر رو ایجاد بکنید و ستون علاقه مندی هم فراخوانی بکنید و لینک های دانلود رو ازش دربیارید و مقایسه کنید که از v.tag توی علاقه مندی بود بیاد اونو غیب کنه.

For Each v As View In scrollview1.Panel.GetAllViewsRecursive
		If v Is Button Then
			Dim vv As String
			vv=v.Tag
			
			If vv.Contains("لینک دانلود") Then
				v.Visible=False
			End If
		End If
	Next
لینک ارسال
به اشتراک گذاری در سایت های دیگر

 

اینجوری یکم کار پیچیده میشه و نمیشه راحت تشخیص داد.

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

بعد از اون بیاین حلقه زیر رو ایجاد بکنید و ستون علاقه مندی هم فراخوانی بکنید و لینک های دانلود رو ازش دربیارید و مقایسه کنید که از v.tag توی علاقه مندی بود بیاد اونو غیب کنه.

For Each v As View In scrollview1.Panel.GetAllViewsRecursive
		If v Is Button Then
			Dim vv As String
			vv=v.Tag
			
			If vv.Contains("لینک دانلود") Then
				v.Visible=False
			End If
		End If
	Next

ممنون تقریبا داره به یه جاهایی میرسه

کد حلقه اکتیویتی کریت:

If File.Exists(File.DirInternal,"flm.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)
	btcan.Text=Cur1.GetString("name")
	L2.Text=Cur1.GetString("name")
	L2.Gravity=Gravity.RIGHT
	L2.TextColor=Colors.Gray
	L3.Text=Cur1.GetString("zaman")
	L3.Gravity=Gravity.CENTER
	L3.TextColor=Colors.Gray
	btfr.Text=Cur1.GetString("name")
	ScrollView1.Panel.Height=Stopint
	btdown.tag = Cur1.GetString("url") & "#" & Cur1.GetString("name") & "#" & Cur1.GetString("sal") & "#" & Cur1.GetString("id")
	Panel1.tag = Cur1.GetString("url") & "#" & Cur1.GetString("name") & "#" & Cur1.GetString("sal")

	Next
For Each v As View In ScrollView1.Panel.GetAllViewsRecursive
		If v Is Button Then
			Dim vv As String
			vv=v.Tag
			
			If vv.Contains(Cur1.GetString("id")) Then
				v.Visible=False
			End If
		End If
	Next

کد دکمه که تغیرش ندادم:

Sub btdown_Click
    Dim ay As Button
    ay = Sender
Dim parts() As String = Regex.split("#",ay.tag)
StartActivity(add)

    dim check as int
check = Cur1.GetString("fav")If check = 0 Then
sql1.ExecNonQuery("UPDATE tbl33 SET fav = 1 WHERE id = "&pat(3))
sql1.IsInitialized
Cur1 = sql1.ExecQuery("SELECT * FROM tbl33")
ToastMessageShow("به علاقه مندی ها اضافه شد",False)
ay.Visible=False
End IfEnd Sub

ولی فقط اولین دکمه ای که روش کلیک کردمو نمیاره؟

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

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

موقع تموم شدن دانلود باید تگ رو ذخیره کنید....

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

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

موقع تموم شدن دانلود باید تگ رو ذخیره کنید....

 

ممنون

چون کدای دانلودم خیلی زیاد اصلا بیخیالش میشیم

الان مثلا دکمه دانلودم یه دکمه علاقه منیه که یه بار روش کلیک شد میگه به علا قه مندی اضافه شدوخود دکمه حذف میشه:

Sub btdown_Click
Dim ay As Button
ay = Sender
Dim parts() As String = Regex.split("#",ay.tag)
  Dim check As Int
     check = cur1.GetString("fav")
     
     If check = 0 Then
 sql2.ExecNonQuery("UPDATE tbl33 SET fav = 1 WHERE id = "&pat("3"))
sql2.IsInitialized
cur1 = sql2.ExecQuery("SELECT * FROM tbltest")
ToastMessageShow("به علاقه مندی ها اضافه شد",False)


 Else 

    
     End If
End Sub

حالا میخوایم اگه دوباره برنامه باز شد این دکمه ای که یبار کلیک شدو نیاره؟

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

آقا یکی از عزیزان شب کار کمک بنماید؟

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

اون تگ مورد نظر رو توی دیتابیس ذخیره کردین؟؟ اسم ستونش چیه؟؟

اینجوری بنویسید کدهارو ، نام ستون رو جایگزین کنید.

Sub Activity_Create(FirstTime As Boolean)

	File.MakeDir(File.DirRootExternal, "دکتر سلام")
If File.Exists(File.DirInternal,"flm.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 ")
	For i=0 To Cur1.RowCount-1
    Cur1.Position=i


if Cur1.GetString("url")=Cur1.GetString("اسم ستونی که تگ توش هست") then
i=i+1
Cur1.Position=i
end if


	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)
	btcan.Text=Cur1.GetString("name")
	L2.Text=Cur1.GetString("name")
	L2.Gravity=Gravity.RIGHT
	L2.TextColor=Colors.Gray
	L3.Text=Cur1.GetString("zaman")
	L3.Gravity=Gravity.CENTER
	L3.TextColor=Colors.Gray
	btfr.Text=Cur1.GetString("name")
	ScrollView1.Panel.Height=Stopint
	btdown.tag = Cur1.GetString("url") & "#" & Cur1.GetString("name") & "#" & Cur1.GetString("sal")
	Panel1.tag = Cur1.GetString("url") & "#" & Cur1.GetString("name") & "#" & Cur1.GetString("sal")
	Next
End Sub

شاید به یکمی ویرایش نیاز داشته باشه.

خودتون خطا یابی بکنید دیگه...

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

اون تگ مورد نظر رو توی دیتابیس ذخیره کردین؟؟ اسم ستونش چیه؟؟

اینجوری بنویسید کدهارو ، نام ستون رو جایگزین کنید.

Sub Activity_Create(FirstTime As Boolean)

	File.MakeDir(File.DirRootExternal, "دکتر سلام")
If File.Exists(File.DirInternal,"flm.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 ")
	For i=0 To Cur1.RowCount-1
    Cur1.Position=i


if Cur1.GetString("url")=Cur1.GetString("اسم ستونی که تگ توش هست") then
i=i+1
Cur1.Position=i
end if


	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)
	btcan.Text=Cur1.GetString("name")
	L2.Text=Cur1.GetString("name")
	L2.Gravity=Gravity.RIGHT
	L2.TextColor=Colors.Gray
	L3.Text=Cur1.GetString("zaman")
	L3.Gravity=Gravity.CENTER
	L3.TextColor=Colors.Gray
	btfr.Text=Cur1.GetString("name")
	ScrollView1.Panel.Height=Stopint
	btdown.tag = Cur1.GetString("url") & "#" & Cur1.GetString("name") & "#" & Cur1.GetString("sal")
	Panel1.tag = Cur1.GetString("url") & "#" & Cur1.GetString("name") & "#" & Cur1.GetString("sal")
	Next
End Sub

شاید به یکمی ویرایش نیاز داشته باشه.

خودتون خطا یابی بکنید دیگه...

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

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

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

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

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

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

	For Each v As View In scrollview1.Panel.GetAllViewsRecursive
		If v Is Button Then
			If v.Tag="متن تگ که ذخیره شده بود" Then
				v.Visible=False
			End If
		End If
	Next

از ویویی رو پیدا کرد که باتن بود ، و تگ اش ، همون تگی بود که دانلود شده مخفیش میکنه.

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

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

	For Each v As View In scrollview1.Panel.GetAllViewsRecursive
		If v Is Button Then
			If v.Tag="متن تگ که ذخیره شده بود" Then
				v.Visible=False
			End If
		End If
	Next

از ویویی رو پیدا کرد که باتن بود ، و تگ اش ، همون تگی بود که دانلود شده مخفیش میکنه.

من متن tag رو تو ستون fav از صفربه یک تغییر دادم؛یعنی وقتی رو باتون کلیک شد گفتم درستون fav عدد صفر به یک تبدیل بشه؛

			If v.Tag="متن تگ که ذخیره شده بود" Then

حالا بجای "متن تگ که ذخیره شده بود" چی بذارم؟

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

سلام

من داخل لایوت "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

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

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

بایگانی شده

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

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

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