(02-09-2014، 01:02 AM)'vahid_d_0101' نوشته: سلا،م
چه طوری میتونم رنگ قسمتی از label را عوض کنم
داخل برنامه میخوام 200 خط تایپ کنم که توی label نمایش بده از چه روشی استفاده کنم بهتره
دستور اینتر داخل labe هم بگید
با سپاس فراوان
سلام دوست عزیز
نمیتونی رنگ قسمتی از متن رو عوض کنی اگه میخوای چند رنگ باشه باید از چندتا لیبل استفاده کنی
در ضمن 200 خط خیلی زیاده اگه بخوای تو خود برنامه تایپش کنی سخت و گنگ میشه پون فارسی رو درست نمایش نمیده بهتره از یه فایل تکست یا اس کیو ای استفاده کنی
سمپل کار با دیتا بیس توی همین تاپیک هست سرچ کنی پیداش میکنی.
دستور اینتر همیشه و همه حا در تمام تکست ها CRLF هست
اگه کارت راه نیافتاد بگو تا سمپل بزارم.
سلام دوستان
یه سوال دارم میدونم کمی سخته ولی خواهشا هر کس بلده جوابمو بده مرسی؛
من یه فایل اس کیو ال دارم که خیلی سنگینه حدود 100000 ردیف داره
ردیفهای جدول عیارتند از : name groups fav delete pic
حالا من واسه هر ردیف یک فاوریت و حذف و عکس قرار دادم
اول از همه چطور میتونم عکس رو از توی دیتا بیس فراخونی کنم؟
دوم اینکه من واسه هر ستون یه پنل معرفی کردم که هر پنل دارای 2 لیبل و 2 باتون و 1 عکس هست که پنل ها رو پشت سر هم داخل یک اسکرول چیدم که کاملا صحیح نمایش میده و بغیر از عکس همشون درست کار میکنند ولی ولی ولی وقتی تعداد زیادتر از 300 تا میشه برنامه هنگ میکنه و هیچ چیزی رو نشون نمیده
من فکر میکنم چون طول اسکرول زیاد میشه برنامه قابلیت کامپایلشو از دست میده
من چندتا برنامه با اسکرول بالا دیدم که به آهستگی عمل لود رو انجام میدن یعنی پله پله و اسکرول در صورتی بزرگتر میشود که شما آن را به پایین بکشد و به انتهای اسکرول برسید اسکرول دوباره لود شده و تعدادی پنل دیگر به برنامه اضافه میکند.
خیلی ممنون میشم اگه جوابمو بدید خیلی خیلی سپاسگذارم.
کد پیاچپی:
#Region Activity Attributes
#FullScreen: False
#IncludeTitle: True
#End Region
Sub Process_Globals
'These global variables will be declared once when the application starts.
'These variables can be accessed from all modules.
End Sub
Sub Globals
'These global variables will be redeclared each time the activity is created.
'These variables can only be accessed from this module.
Dim scvMain As ScrollView
Dim PanelNb As Int : PanelNb = 20
Dim PanelHeight As Int : PanelHeight = 150dip
Dim sql1 As SQL
Dim cursor1 As Cursor
End Sub
Sub Activity_Create(FirstTime As Boolean)
Dim i, n As Int
If sql1.IsInitialized = False Then
sql1.Initialize(File.DirInternal, "pish.sql", False)
End If
cursor1 = sql1.ExecQuery("SELECT * FROM tbl1")
scvMain.Initialize(cursor1.RowCount - 1*50)
Activity.AddView(scvMain, 0, 0, 100%x, 100%y)
' Activity.LoadLayout("ScrollViewNLayouts")
For i = 0 To PanelNb - 1
Dim pnl As Panel
pnl.Initialize("pnlTest")
scvMain.Panel.AddView(pnl, 0, 5dip + i * PanelHeight, 100%x, PanelHeight)
pnl.LoadLayout("Layout")
pnl.Tag = i
For n = 0 To pnl.NumberOfViews - 1
pnl.GetView(n).Tag = i
Next
Dim lbl As Label
lbl = pnl.GetView(0)
lbl.Text = "Test " & i
Dim btn As Button
btn = pnl.GetView(1)
btn.Text = "Test " & i
If (i Mod 2)=1 Then
pnl.Color = Colors.DarkGray
Else
pnl.Color = Colors.Gray
End If
Next
scvMain.Panel.Height = PanelNb*PanelHeight
End Sub
Sub Activity_Resume
End Sub
Sub Activity_Pause (UserClosed As Boolean)
End Sub
Sub lblTest_Click
Dim lbl As Label
lbl = Sender
Activity.Title = "Label " & lbl.Tag
End Sub
Sub btnTest_Click
Dim btn As Button
Dim edt As EditText
Dim lbl As Label
Dim pnl As Panel
Dim row As Int
btn = Sender
row = btn.Tag
pnl = scvMain.Panel.GetView(row)
lbl = pnl.GetView(0)
edt = pnl.GetView(1)
lbl.Text = edt.Text
Activity.Title = "Button " & btn.Tag
End Sub
Sub pnlTest_Click
Dim pnl As Panel
pnl = Sender
Activity.Title = "Panel " & pnl.Tag
End Sub
Sub scvmain_ScrollChanged(Position As Int)
PanelNb = PanelNb+PanelNb
End Sub
این کد کل برنامه ایه که از سایت بیسیک گرفتم زمانی که
رو زیاد میکنم برنامه هنگ میکنه
یه راحی میخوام بشه اینو پله پله بالا ببرم
مرسی دوستان.
(02-01-2014، 09:49 AM)'parvin' نوشته: درود آقا امین. خوبی؟ اخر هفته انجمن مشکل داشت یا خودت داشتی یه کارهایی میکردی.همش ارور میداد.
مشکل اسکرولم حل شد. دستت درد نکنه. فقط مونده مشکل چرخش گوشی. و اینکه وقتی برنامه رو رو تبلت تست میکنم اندازش با اندازه تبلت یکی نمیشه.
راستی b4a فقط از txt ساپورت میکنه؟ نمیشه توش فایل مثلا docx گذاشت؟ میخوام تو متنی که دارم تصویر هم داشته باشم . هنوز نتونستم .
هر چند کسی ایینجا جواب سوالات منو نمیده ولی من تصمیم بر این گرفتم زین پس از این سایت پشتیبانی کنم و هر چند تازه کارم ولی تا جایی که بلدم جواب میدم.
برای سایز در دیوایس های مختلف میتوانید از این دستورات استفاده کنید:
کد پیاچپی:
Dim lv As LayoutValues
lv = GetDeviceLayoutValues
این دستور سایز صفحه نمایش شما را میگیرد در تمام دیوایس ها و فرقی ندارد دیوایس شما چه سایزی باشد.
این دستور مقادیر » Width و Height را به عدد برمیگرداند این عدد همان پیکسل است؛ برای نمایش درست میتوانید با تقسیم و جمع و تفریق صفحه نمایش نحوه نمایش را در تمام دیوایس ها درست کنبد.