• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Button load ảnh từng phần

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

Button load ảnh từng phần

Gửi bàigửi bởi nhochoclaptrinh » T.Năm 09/06/2011 9:15 pm

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 4438 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 4438 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 786 lần
Sửa lần cuối bởi nhochoclaptrinh vào ngày T.Bảy 11/06/2011 9:56 pm với 3 lần sửa.



boy1234
Guru
Guru
Bài viết: 448
Ngày tham gia: T.Hai 13/10/2008 3:12 pm
Đến từ: Dĩ An - Bình Dương
Been thanked: 32 time

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

Gửi bàigửi bởi boy1234 » T.Sáu 10/06/2011 2:10 am

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
  16.  


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 4424 lần
ButtonVB6.rar
(3.77 KiB) Đã tải 513 lần
Dạo này nghiện honda SS50

Hình đại diện của người dùng
nhochoclaptrinh
Thành viên danh dự
Thành viên danh dự
Bài viết: 515
Ngày tham gia: T.Bảy 28/05/2011 12:10 pm
Has thanked: 15 time
Been thanked: 83 time

Re: Button kỹ thuật mới

Gửi bàigửi bởi nhochoclaptrinh » T.Sáu 10/06/2011 9:56 am

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 người dùng
DQHung
Guru
Guru
Bài viết: 576
Ngày tham gia: T.Hai 12/02/2007 3:24 pm
Đến từ: Rach Gia - Kien Giang
Been thanked: 40 time
Liên hệ:

Re: Button kỹ thuật mới

Gửi bàigửi bởi DQHung » T.Sáu 10/06/2011 10:54 am

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 người dùng
nhochoclaptrinh
Thành viên danh dự
Thành viên danh dự
Bài viết: 515
Ngày tham gia: T.Bảy 28/05/2011 12:10 pm
Has thanked: 15 time
Been thanked: 83 time

Re: Button kỹ thuật mới

Gửi bàigửi bởi nhochoclaptrinh » T.Sáu 10/06/2011 11:25 am

Mình thấy mới thì ghi "mới" thôi. :-@

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4763
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 time
Been thanked: 518 time

Re: Button kỹ thuật mới

Gửi bàigửi bởi truongphu » T.Bảy 11/06/2011 5:18 pm

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 437 lần
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

Hình đại diện của người dùng
VuVanHoanh
Thành viên danh dự
Thành viên danh dự
Bài viết: 1259
Ngày tham gia: T.Năm 03/06/2010 9:23 pm
Đến từ: Kim Sơn - Đông Triều - Quảng Ninh
Has thanked: 22 time
Been thanked: 138 time
Liên hệ:

Re: Button kỹ thuật mới

Gửi bàigửi bởi VuVanHoanh » T.Bảy 11/06/2011 6:38 pm

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 người dùng
nhochoclaptrinh
Thành viên danh dự
Thành viên danh dự
Bài viết: 515
Ngày tham gia: T.Bảy 28/05/2011 12:10 pm
Has thanked: 15 time
Been thanked: 83 time

Re: Button kỹ thuật mới

Gửi bàigửi bởi nhochoclaptrinh » T.Bảy 11/06/2011 9:49 pm

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 nhochoclaptrinh vào ngày CN 12/06/2011 2:07 pm với 1 lần sửa.

Hình đại diện của người dùng
VuVanHoanh
Thành viên danh dự
Thành viên danh dự
Bài viết: 1259
Ngày tham gia: T.Năm 03/06/2010 9:23 pm
Đến từ: Kim Sơn - Đông Triều - Quảng Ninh
Has thanked: 22 time
Been thanked: 138 time
Liên hệ:

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

Gửi bàigửi bởi VuVanHoanh » CN 12/06/2011 12:15 pm

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


Quay về “[VB] Module, Class, UserControl, OCX”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.0 khách