Button load ảnh từng phần

Các Module, Class, UserControl và thư viện OCX, DLL hỗ trợ cho Visual Basic
Đăng trả lời
Hình đại diện của thành viên
nhochoclaptrinh
Thành viên danh dự
Thành viên danh dự
Bài viết: 517
Ngày tham gia: Thứ 7 28/05/2011 12:10 pm
Has thanked: 15 times
Been thanked: 83 times

Button load ảnh từng phần

Gửi bài by nhochoclaptrinh »

Tên: Button load ảnh từng phần
Loại: User Control
Ngôn ngữ lập trình: VB6
Tác giả: Sưu tầm
Chức năng: Nút bấm :D

Một button tự tạo thường gồm ba ảnh ảnh lúc button trong trạng thái tự nhiên, lúc khi chuột hover và lúc khi press chuột.
Để tạo control này, ta hay chèn 3 imagebox hoặc picbox rồi add từng ảnh vào.
Cách này có nhiều bài nói đến rồi nhưng mình thấy bất tiện vì nhiều control, nhiều code để xử lý từng mouse_event, khi lưu ảnh ra ngoài phải tốn mất 3 file.

Vậy nên mình có ý tưởng này, không phải mới nhưng cũng hay.
Mình làm 4 ảnh Normal, Hover, Pressing, Disabled rồi chèn vào một file ảnh, như sau:
demo1.JPG
demo1.JPG (2.53 KiB) Đã xem 5287 lần
Theo thứ tự từ trên xuống dưới là trạng thái cuả Normal, Hover, Pressing, Disabled.
Cách hoạt động:
Khi tự nhiên thì set top property là 0
Khi hover thì set top property là -(imageheight / 4)
Khi pressing thì set top property là -(imageheight / 4) * 2
Khi disable thì set top property là -(imageheight / 4) * 3

Mình tạo ra hai cách hoạt động chia theo chiều dọc và ngang
Chiều ngang:
demo2.JPG
demo2.JPG (5.11 KiB) Đã xem 5287 lần
Khi sử dụng 4 ảnh trạng phải bằng nhau phải xếp khít nhau, để khi chia ảnh thì không vỡ giao diện của button
Hoàn chỉnh:
Tập tin đính kèm
ScendCuteButton.7z
(4.95 KiB) Đã tải về 827 lần
Sửa lần cuối bởi 3 vào ngày nhochoclaptrinh với 0 lần sửa trong tổng số.
boy1234
Guru
Guru
Bài viết: 448
Ngày tham gia: Thứ 2 13/10/2008 3:12 pm
Đến từ: Dĩ An - Bình Dương
Been thanked: 32 times

Re: Button đẹp từ một hình ảnh

Gửi bài by boy1234 »

Cái này chưa hẳn là 1 button. Do nó chỉ có mỗi 1 kích thước(hình như hơi vuông) không chỉnh được height và width.
Mình nghĩ đơn giản set lại hình cho từng trạng thái mouse thì không cần viết quá nhiều code :D

  1. Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  2.     imgB.Picture = imgN
  3. End Sub
  4.  
  5. Private Sub imgB_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  6.     imgB.Picture = imgP
  7. End Sub
  8.  
  9. Private Sub imgB_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  10.     imgB.Picture = imgH
  11. End Sub
  12.  
  13. Private Sub imgB_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
  14.     imgB.Picture = imgN
  15. End Sub


Note: Tất nhiên vẫn bảo lưu ý kiến bạn "Button đẹp từ một hình ảnh"
Tập tin đính kèm
untitled.PNG
untitled.PNG (8.82 KiB) Đã xem 5273 lần
ButtonVB6.rar
(3.77 KiB) Đã tải về 556 lần
Dạo này nghiện honda SS50
Hình đại diện của thành viên
nhochoclaptrinh
Thành viên danh dự
Thành viên danh dự
Bài viết: 517
Ngày tham gia: Thứ 7 28/05/2011 12:10 pm
Has thanked: 15 times
Been thanked: 83 times

Re: Button kỹ thuật mới

Gửi bài by nhochoclaptrinh »

Hình như ban chưa hiểu ý mình [-( , nó là một button tùy chỉnh khi bạn thay đổi ảnh tại thuộc tính HinhAnhKyThuat, thì button sẽ khác, nó không có ảnh mặc định. Chiều dài và rộng của nó tùy theo ảnh đưa vào.
Nó hoạt động theo cách chia ảnh theo 4 phần (dọc hoặc ngang), theo thứ tự 4 phần là từng trạng thái của nó (mình nói rồi), công nghệ này tiện lợi được nhiều phần mềm hiện đại sử dụng.

Muốn thay đổi kích thước button, một là bạn chèn lệnh mới với thuộc tính strech của để khi resize control hai là thay đổi kích cỡ ảnh.
Bạn nên xem kỹ lại control mà mình up lên.
Hình đại diện của thành viên
DQHung
Guru
Guru
Bài viết: 576
Ngày tham gia: Thứ 2 12/02/2007 3:24 pm
Đến từ: Rach Gia - Kien Giang
Been thanked: 40 times
Tiếp xúc:

Re: Button kỹ thuật mới

Gửi bài by DQHung »

Cái này cũng ko phải là kỹ thuật mới gì đâu bạn, có nhiều bộ controls dùng cái này lắm. :D
Mình cũng đang hoàn thành cái theme dùng Picture như bạn nói (toàn dùng ảnh dạng Split) cho unicode full control, cũng gần xong cho hầu như tất cả các điều khiển trong UFC.
Tất nhiên Theme thì mình sẽ share source hết.
Hình đại diện của thành viên
nhochoclaptrinh
Thành viên danh dự
Thành viên danh dự
Bài viết: 517
Ngày tham gia: Thứ 7 28/05/2011 12:10 pm
Has thanked: 15 times
Been thanked: 83 times

Re: Button kỹ thuật mới

Gửi bài by nhochoclaptrinh »

Mình thấy mới thì ghi "mới" thôi. :-@
Hình đại diện của thành viên
truongphu
VIP
VIP
Bài viết: 4785
Ngày tham gia: Chủ nhật 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 527 times

Re: Button kỹ thuật mới

Gửi bài by truongphu »

Bạn nhochoclaptrinh đưa nhiều hình vào một ảnh theo vị trí nhất định
Khi làm việc, load ảnh từng phần...
Đây là nguyên lý của control VideoClip (SP6)
mà Video = nghĩa là hình động!

Project kèm sau có chèn control VideoClip
và hình minh họa cho project có 1 button
với hình động cụng ly quen thuộc
bên cạnh là code đơn giản load hình theo vị trí tùy thời gian (timer)
untitled.JPG
Tập tin CungLy.jpg đính kèm do tôi chèn hình như ý bạn nhochoclaptrinh,
có lẽ hơi xấu do kỹ thuật đồ họa chưa tốt

---
ghi chú: bài gởi trong Box đặc biệt nầy, bạn nhochoclaptrinh phải định dạng đầu bài viết theo đúng quy định mà Admin hướng dẫn trên,
hoặc là bài viết sẽ chuyển ra Box thắc mắc....
Tập tin đính kèm
Cung ly.rar
(8.22 KiB) Đã tải về 479 lần
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh
Hình đại diện của thành viên
VuVanHoanh
Thành viên danh dự
Thành viên danh dự
Bài viết: 1259
Ngày tham gia: Thứ 5 03/06/2010 9:23 pm
Đến từ: Kim Sơn - Đông Triều - Quảng Ninh
Has thanked: 22 times
Been thanked: 138 times
Tiếp xúc:

Re: Button kỹ thuật mới

Gửi bài by VuVanHoanh »

Haizz, ý tưởng của bạn nhochoclaptrinh chỉ đẹp đối với các button có kích cỡ nhỏ thôi, chứ kích cỡ to thì ảnh bị mờ dần, hoặc co dãn ảnh gây giật, trông không được đẹp mắt.

Trước đây, lúc mình chưa biết diễn đàn mình, mình cũng đã từng thử làm theo cách của bạn sau thấy không được nên đành thôi.
Since 2008...
One love! :x
Hình đại diện của thành viên
nhochoclaptrinh
Thành viên danh dự
Thành viên danh dự
Bài viết: 517
Ngày tham gia: Thứ 7 28/05/2011 12:10 pm
Has thanked: 15 times
Been thanked: 83 times

Re: Button kỹ thuật mới

Gửi bài by nhochoclaptrinh »

Hi . :) Cách này bạn phải nhẫn nại đo từ bit mới mong chính xác được, Mình thấy giao diện Kaspersky tạo hiệu ứng cũng dùng phương pháo này
Dùng phương pháp này để tạo film từ image cũng hay đấy. :D :D :D
Sửa lần cuối bởi 1 vào ngày nhochoclaptrinh với 0 lần sửa trong tổng số.
Hình đại diện của thành viên
VuVanHoanh
Thành viên danh dự
Thành viên danh dự
Bài viết: 1259
Ngày tham gia: Thứ 5 03/06/2010 9:23 pm
Đến từ: Kim Sơn - Đông Triều - Quảng Ninh
Has thanked: 22 times
Been thanked: 138 times
Tiếp xúc:

Re: Button load ảnh từng phần

Gửi bài by VuVanHoanh »

Thì chính ảnh gif đó thôi. Nó được tạo từ các frame ảnh với thời gian x/100 giây. Rồi chạy liền mạch tạo thành ảnh gif chớ còn gì nữa???
Since 2008...
One love! :x
Đăng trả lời

Quay về