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

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


علی علایی

سوال

سلام 
سوال یکم گنگه به نظر بیاد 
من تو مولتی پنل تعدادی عکسو میارم ویه رویداد برا عکسهام درست کردم با تگ سندر 
حالا من میخام وقتی رو عکسی کلیک کردم اون عکس بیاد تو یه ایمیج ویوی دیگه که داخل مولتی پنل نیست نشون بده 
یه عکس میزارم طبق عکس توضیح هم میدم 
 

1.png

تو عکس اولی مولتی پنل که توش تعدادی عکس توشه 
تو عکس دوم مثلا روی عکس 3 کلیک شد یه پنل که توش یه ایمیج ویو هست نشون میده 
مشکل من اینجاس که نمیدنم عکس که تو مولتی پنل هست همونو بیارم تو ایم ایمیج ویو 
و مشکل بعدی من اون 2تا دکمه هاس که وقتی کلیک شدن بره عکس قبلی یا بعدی 

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

با تشکر

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

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

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

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

حالا برای دکمه بعدی و قبلی چه کار کنم ؟

در ضمن من عکسارو به صورت معمول میارم تو برنامه (dirasset) 

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

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

سلام

با دیتابیس یکم کنترل کردنش مشکل تره.

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

واسه دکمه عقب و جلو شما میتونید به عکس هاتون Prefix ( پیشوند) یا Postfix ( پسوند) قرار بدید.

مثلا به این شکل :

Majid1

Majid2

Majid3

 

 و یا

1Majid

2Majid

3Majid

 

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

حالا با دیتابیس به جه شکله ؟

با دیتابیس شما باید Psotion  رو کنترل کنید.یعنی باید روی 0  , RowCount -1  بودن Position  کنترل داشته باشید.

ببینید با دیتابیس میتونید عکس هارو تا یک تعداد نا معلومی نشون بدید.اکا توی Assets  باید از اول مخدوده تعریف کنید.

مثلا از Majid1  تا Majid100  مثلا محدوده ماست.ما باید اینجا 0 و 100 رو کنترل کنیم.

مثلا یک کدی رو میدم خودتون تست کنید :

 

Globals :

Dim Pointer As Int = 1
Dim bmp As Bitmap

دکمه Next :

If Pointer <= 100 Then
bmp.Initialize(File.DirAssets,"Majid"&Pointer&".png")
ImageView1.Bitmap = bmp
Pointer = Pointer + 1
End If

 

 

دکمه Back :


If Pointer >= 1 Then
bmp.Initialize(File.DirAssets,"Majid"&Pointer&".png")
ImageView1.Bitmap = bmp
Pointer = Pointer - 1
End If



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

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

یه کم گیج شدم (من کل دیر میگرم  :crazy: )

اگر بخوام غیر دیتابیس بنویسم چه تغییری تو کدهای شما بدم (چون نیازی نمیبینم از دیتابیس استفاده بشه چون یه مقدار کارمو تو مجموع سختر میکنه )

این الان یه تیکه از کد من تو مولتی پنل منه 

For i = 1 To 36
Dim image1 As ImageView
image1.Initialize("Icon")
ScrollView1.Panel.AddView(image1,sLeft,sTop,divid,divid)


image1.Gravity = Gravity.FILL
image1.Tag = i & ".jpg"

image1.SetBackgroundImage( LoadBitmapSample (File.DirAssets ,i &".jpg",divid,divid))

    Bmp1=image1.Bitmap 'برای قرار دادن عکس در ایمیج ویو دیگه
    Next

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

فک کنم باید تو نام گذاری عکس هام یه پسوند یا پشوندی بدم درست میگم تا کد شما کار کنه 

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

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

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

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

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

الان من تو نام گذاری عکسام تغییری ایجاد کردم 

و از img1 تا img36 تغییر دادم و تو مولتی پنلم 

image1.SetBackgroundImage( LoadBitmapSample  (File.DirAssets ,"img"& i &".jpg",divid,divid)) 

نوشتم 

و تو دکمه قبلی این کد 

If i >= 36 Then
Bmp1.Initialize(File.DirAssets,"img"& i & ".jpg")

ImageView1.Bitmap = Bmp1
i = i - 1
End If

و بعدی این کد 

If i <= 36 Then
Bmp1.Initialize(File.DirAssets,"img"& i & ".jpg")

ImageView1.Bitmap = Bmp1
i = i + 1
End If

قبلی رو میزنم ارور میده 

و باتن بعدی هیچ کاری نمیکنه 

مشکل به نظرتون از چیه ؟

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

این قسمت کدتون رو بجای 36 عدد 1 قرار بدید:

If i >= 1 Then
Bmp1.Initialize(File.DirAssets,"img"& i & ".jpg")

ImageView1.Bitmap = Bmp1
i = i - 1
End If

در ضمن متغییر i  رو در Globals  تعریف کنید.

از خطاتون هم اسکرین بگیرید.

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

من i رو گلوبال تعریف کردم 

بفرمایید اینم عکس ارور 

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

1.PNG

 

من حتی نام متغییر i رو به ii تغییر دادم 

گفتم شاید چون تو مولتی پنل من i  گذاشتم ارور میگیره 

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

من رسما اعلام میکنه که کم اوردم 

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

سلام دوست عزیز

خب توی رویداد کلیک Panel  و یا رویداد کلیک ImageView  موجود در مولتی پنل شما بیا عکس ImageView  رو داخل متغییر Bitmap  بریزید.

Sub img_Click
Dim ImgV As ImageView
ImgV = Sender
Dim Bmp As Bitmap
Bmp = ImgV.Bitmap
ImageView1.Bitmap = Bmp
End Sub

 

کدو تست نکردم ولی خب شاید جواب داد.(تست کنید)

 

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

و واسه دکمه جلو باز باید طبق یک آیدی ، فلگی چیزی عمل کنید.

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

موفق باشید

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

 

سلام دوست عزیز

 

Dim ImgV As ImageView
ImgV = Sender
Dim Bmp As Bitmap
Bmp = ImgV.Bitmap
ImageView1.Bitmap = Bmp
End Sub

کدو تست نکردم ولی خب شاید جواب داد.(تست کنید)

 

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

یعنی چیزی نمیاد 

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

بایگانی شده

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

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

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