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

برنامم ایراد داره ...


marshal

سوال

سلام بر دوستان

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

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

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

نگاهی به سورسم بندازه؟؟؟ بخدا ثواب داره *sarcastic* *rofl*

تو تصاویر پیوستی ایراد برنامم کاملا مشخصه... با رنگ قرمز مشخص کردم

#Region  Activity Attributes 
   #FullScreen: True
   #IncludeTitle: False
#End Region

Sub Process_Globals

     Dim SQL1 As SQL
   Dim cursur1,Other As Cursor

End Sub
Sub Globals
   Dim TenRecordPlus As String = "5"
   'Dim Top As Int = 1%y

   Private Panel1 As Panel
   Private Label1 As Label
   Private btnnumber As Button

   Private ScrollView1 As ScrollView
   Private Button1 As Button
   Private Label5 As Label

   Dim myfont As Typeface
   Dim text As String
   Dim ht As Float
   Dim StrUtil As StringUtils
   Dim PanelHeight As Int

   Private btcopy As Button
   Private btshare As Button

End Sub

Sub Activity_Create(FirstTime As Boolean)

   If FirstTime Then

   If File.Exists(File.DirInternal,"bank.db")=False Then
   File.copy(File.DirAssets,"bank.db",File.DirInternal,"bank.db")
   End If

   SQL1.Initialize(File.DirInternal,"bank.db",True)

cursur1 = SQL1.ExecQuery2("SELECT g1 FROM banktb ORDER BY ID LIMIT ?",Array As String(5)) 

   myfont = Typeface.LoadFromAssets("byekan.ttf")
   Activity.LoadLayout("sv")

   For i=0 To cursur1.RowCount-1
   cursur1.Position=i
   text= cursur1.GetString("g1") 
   ScrollView1.Panel.Color = Colors.Transparent

   Dim p1 As Panel
   p1.Initialize("")
   p1.LoadLayout("main")
   ScrollView1.Panel.AddView(p1,0,PanelHeight,100%x,100dip)

   btshare.Tag = i
   btcopy.Tag = i
   btnnumber.text = i + 1
   btnnumber.Typeface=Typeface.LoadFromAssets("dastnevis.ttf")
   btnnumber.TextColor=Colors.yellow
   btnnumber.Textsize=15

   ht=art(text,Label1,myfont,20)
   Label1.TextColor=Colors.white
   p1.Height=ht+70dip
   PanelHeight=PanelHeight+ht+70dip
   Next

   cursur1.Close

   ScrollView1.Panel.Height=PanelHeight
   Label5.text="رشحات الانس"
   Label5.Typeface=Typeface.LoadFromAssets("dastnevis.ttf")
   Label1.TextSize=25



   End If

End Sub

Sub ScrollView1_ScrollChanged(Position As Int)

   Other = SQL1.ExecQuery2("SELECT g1 FROM banktb OFFSET LIMIT ?,?",Array As String(TenRecordPlus,5)) 

  If ScrollView1.ScrollPosition + ScrollView1.Height =ScrollView1.Panel.Height  Then

   myfont = Typeface.LoadFromAssets("byekan.ttf")

   For i=0 To Other.RowCount-1
   Other.Position=i
   text= Other.GetString("g1") 
   ScrollView1.Panel.Color = Colors.Transparent

   Dim p1 As Panel
   p1.Initialize("")
   p1.LoadLayout("main")
   ScrollView1.Panel.AddView(p1,0,PanelHeight,100%x,100dip)

   btshare.Tag =i
   btcopy.Tag = i
   btnnumber.text = i + 1
   btnnumber.Typeface=Typeface.LoadFromAssets("dastnevis.ttf")
   btnnumber.TextColor=Colors.yellow
   btnnumber.Textsize=15

   ht=art(text,Label1,myfont,20)
   Label1.TextColor=Colors.white
   p1.Height=ht+70dip
   PanelHeight=PanelHeight+ht+70dip


   Next

   Other.Close

   ScrollView1.Panel.Height=PanelHeight
   Label5.text="رشحات الانس"
   Label5.Typeface=Typeface.LoadFromAssets("dastnevis.ttf")
   Label1.TextSize=25

    DoEvents
       If IsNumber(TenRecordPlus) = True Then
          TenRecordPlus = TenRecordPlus + 5
       End If

   End If


End Sub


Sub Button1_Click
   StartActivity(Main)
   Activity.Finish
End Sub

Sub art(txt As String,leb As Label,font As Typeface,size As Int) As Float      
Dim before,after As Float
   Dim Obj1 As Reflector
       leb.text=txt
       leb.TextSize=size
       leb.Gravity=Gravity.CENTER
       leb.Left=leb.Left
       leb.Typeface=font
   ht = StrUtil.MeasureMultilineTextHeight(leb , txt)
           Obj1.Target = leb  
           before = Obj1.RunMethod("getLineHeight")    'Get the height of line BEFORE you change it
           Obj1.Target = leb 
           Obj1.RunMethod3("setLineSpacing", .10, "java.lang.float", 1.5, "java.lang.float")  'Change the space between lines
           Obj1.Target = leb 
           after = Obj1.RunMethod("getLineHeight")    'Get the height of line AFTER  you change it
           ht = ((after * ht)/before)
       leb.Height = ht
Return  ht

End Sub





Sub btshare_click

Dim cursor3 As Cursor
   cursor3 = SQL1.ExecQuery("SELECT g1 FROM banktb")

   Dim btn2 As Button
   btn2=Sender
   cursor3.Position =btn2.Tag

   Dim matnsms As Label
   matnsms.Initialize("")
   matnsms.text=cursor3.GetString("g1")
   cursor3.Close
   Dim share As Intent
   share.Initialize(share.ACTION_SEND,"")
   share.SetType("text/plain")
   share.PutExtra("android.intent.extra.TEXT", matnsms.text)
   share.WrapAsIntentChooser("متن خود را به اشتراک بگذارید....")
   StartActivity(share)

End Sub

Sub btcopy_click

   Dim something As BClipboard
   Dim cursor2 As Cursor
   cursor2 = SQL1.ExecQuery("SELECT g1 FROM banktb")

   Dim btn2 As Button
   btn2=Sender

   cursor2.Position =btn2.Tag
   something.clrText 
   something.settext(cursor2.GetString("g1"))
   ToastMessageShow("متن در کلیپ بورد کپی شد",False)
   cursor2.Close

End Sub

attachment.php?attachmentid=2163&stc=1attachment.php?attachmentid=2163&stc=1

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

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

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

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

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

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

چون مشخصه که برنامه نویسی کار کردی . تا همین تیکه ای هم که رفتی فقط کسی میتونه بره که علاقه داره و کد نویسی رو تا حدودی واقعا بلده

ولی متاسفانه زیاد منظورت رو متوجه نشدم *fekr*

کد نویسی رو که نگاه کردم تو کلا مشکلت اینه که انگار اصلا توی دیتابیست فیلدی به اسم id نداری و شماره هارو داری دستی به صورت btnnumber.text = i + 1 وارد میکنی

که این اشتباه هست به نظر من

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

من این یه تیکه کد شما رو که تو Activity_create هست میگم:

For i=0 To cursur1.RowCount-1
   cursur1.Position=i
   text= cursur1.GetString("g1") 
   ScrollView1.Panel.Color = Colors.Transparent

   Dim p1 As Panel
   p1.Initialize("")
   p1.LoadLayout("main")
   ScrollView1.Panel.AddView(p1,0,PanelHeight,100%x,100dip)

   btshare.Tag = i
   btcopy.Tag = i
   btnnumber.text = i + 1
   btnnumber.Typeface=Typeface.LoadFromAssets("dastnevis.ttf")
   btnnumber.TextColor=Colors.yellow
   btnnumber.Textsize=15

   ht=art(text,Label1,myfont,20)
   Label1.TextColor=Colors.white
   p1.Height=ht+70dip
   PanelHeight=PanelHeight+ht+70dip
   Next

با حلقه فور توسط i حرکت کردید ... خود حلقه فور هربار که میچرخه یک واحد به i اضافه میکنه درسته؟

حالا شما بازهم اومدین گفتید i=i+1 و این رو روی باتون نامبر قرار دادین. حالا نمیدونم مشکل از همین باشه یانه اما کد بالا رو به این ویرایش کنید ببنید چی میشه.

For i=0 To cursur1.RowCount-1
   cursur1.Position=i
   text= cursur1.GetString("g1") 
   ScrollView1.Panel.Color = Colors.Transparent

   Dim p1 As Panel
   p1.Initialize("")
   p1.LoadLayout("main")
   ScrollView1.Panel.AddView(p1,0,PanelHeight,100%x,100dip)

   btshare.Tag = i
   btcopy.Tag = i
   btnnumber.text = a + 1
   btnnumber.Typeface=Typeface.LoadFromAssets("dastnevis.ttf")
   btnnumber.TextColor=Colors.yellow
   btnnumber.Textsize=15

   ht=art(text,Label1,myfont,20)
   Label1.TextColor=Colors.white
   p1.Height=ht+70dip
   PanelHeight=PanelHeight+ht+70dip
   Next

یعنی به جای i+1 زدم a+1 اگه یکم ایراد گرفت a رو از نوع int تو گلوبال تعریف کنید. حالا تست کنید ببنید چی میشه.

فکر کنم تو رویداد scrollCahnge هم همین اشتباه رو کردین که درستش کنید.

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

و اگه بازم اذیت کرد اینو یه تست بکن:

For i=0 To cursur1.RowCount-1
   cursur1.Position=i
   text= cursur1.GetString("g1") 
   ScrollView1.Panel.Color = Colors.Transparent

   Dim p1 As Panel
   p1.Initialize("")
   p1.LoadLayout("main")
   ScrollView1.Panel.AddView(p1,0,PanelHeight,100%x,100dip)

   btshare.Tag = i
   btcopy.Tag = i
a=a+1
   btnnumber.text = a
   btnnumber.Typeface=Typeface.LoadFromAssets("dastnevis.ttf")
   btnnumber.TextColor=Colors.yellow
   btnnumber.Textsize=15

   ht=art(text,Label1,myfont,20)
   Label1.TextColor=Colors.white
   p1.Height=ht+70dip
   PanelHeight=PanelHeight+ht+70dip
   Next  

اومدم اول a رو یک واحد بهش اضافه کردم بعد نشونش دادن تو باتو نامبر.

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

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

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

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

بایگانی شده

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

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

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