Top Ad unit 728 × 90

Latest news

recent

Thuật toán chạy màu

Trong khi cài đặt hệ điều hành Windows và sử dụng một số chương trình khác chúng ta thấy có xuất hiện hiện ứng dòng màu thay đổi nằm ngang phía dưới giao diện chương trình. Màu sắc chạy, biến đổi liên tục uyển chuyển rất ấn tượng.

Image

Làm sao để làm được điều này? thật ra cũng không có gì cao siêu cả, trong bài viết này với một số hướng dẫn rất đơn giản sẽ giúp bạn cài đặt tính năng này nhằm trang trí cho chương trình của mình một cách dễ dàng. Với cùng ý tưởng này các bạn có thể áp dụng cho các ngôn ngữ khác nhau như VisualBasic, VB.Net hay CSharp …Tuy nhiên để gần gủi với mọi người tôi sẽ trình bày từng bước cách xây dựng bằng ngôn ngữ VisualBasic trên môi trường Visual Studio 6.0.
Đầu tiên chúng ta sẽ mở VisualBasic và tạo một projects dạng Standard EXE. Sau đó trên màn hình thiết kế của Form1 có sẵn trong projects, kéo thả vào điều khiển Timer và đặt thuộc tính Name cho nó là “tmrThoiGian”.Tiếp theo các bạn sẽ tạo tiếp 15 điều khiển dạng Shape trên màn hình này cũng chỉ bằng cách kéo thả từ thanh chứa điều khiển bên tay trái màn hình VB. Với 15 điều khiển này bạn nên đặt cho chúng thuộc tính Name có cùng một giá trị là “shpHienMau” và thuộc tính Index có giá trị từ 0 tới 14 để tạo ra một mảng các phần tử dạng Shape. Sau đó chỉnh kích thước chúng cho bằng nhau rồi sắp xếp chúng theo một hàng ngang có thứ tự Index tăng từ trái sang phải như hình minh hoạ dưới đây:

Image

Như vậy là chúng ta đã bày binh bố trận xong phần giao diện.Trước khi chuyển qua phần viết mã tôi muốn các bạn biết rằng ý tưởng chính để tạo ra hiệu ứng chạy màu này đó chính là tạo ra sự thay đổi màu sắc của các hình thể cùng loại một cách có quy tắc theo một chu kì thời gian xác định. Ở đây hình thể cùng loại chính là mảng điều khiển dạng Shape, còn điều khiển Timer được dùng để tạo ra các chu kỳ thời gian liên tục. Nào chúng ta sẽ bắt đầu viết mã.
Mở màn hình soạn thảo code của Form1 khai báo các biến ở đầu trang như sau: 

Option Explicit
Dim BienDo As Integer
Dim MauDo As Integer
Dim XanhDuong As Integer
Dim XanhLuc As Integer

Ở đây do màu sắc được dùng ở chế độ mặc định là RGB với ba màu chủ đạo là đỏ, xanh dương và xanh lục nên chúng ta có ba biến tương ứng là MauDo, XanhDuong và XanhLuc để xác định cường độ của ba màu này trong một điều khiển sẽ hiển thị. Biến BienDo dùng để xác định khoảng thay đổi và quy tắc thay đổi của màu hiển thị trên các điều khiển Shape của chúng ta. tiếp theo chúng ta sẽ xử lí sự kiện Load của Form bằng cách khởi gán giá trị 0 cho các biến như sau: 

Private Sub Form_Load()
BienDo = 0
MauDo= 0
XanhDuong = 0
XanhLuc = 0
End Sub

Và cuối cùng là xử lí chính của chương trình sẽ được đặt trong hàm xử lí sự kiện Timer :

Private Sub tmrThoiGian_Timer()
Dim i As Integer
BienDo = BienDo + 1
If BienDo > 255 Then
BienDo = 1
End If
For i = 0 To 14
XanhLuc = ((50 * i) + (BienDo * 50)) Mod 255
shpHienMau(i).BorderColor = RGB(MauDo, XanhDuong, XanhLuc)
shpHienMau(i).FillColor = RGB(MauDo, XanhDuong, XanhLuc)
Next
End Sub

Trong chương trình minh hoạ tôi tạo ra sự biến đổi màu lấy màu xanh lục làm chủ đạo do đó hai màu còn lại cho cố định bằng 0, nếu bạn muốn có thể tác động lên hai màu này, và thay đổi các thông số trong công thức tính màu (nằm ở đoạn mã: XanhLuc = …) để đạt được những màu biến thiên theo ý muốn. Các bạn cũng có thể mở rộng bằng cách thay đổi các điều khiển thể hiện, thay vì dùng điều khiển loại Shape như trên có thể dùng Picture, kí tự hay có thể tự xây dựng các lớp vẻ hình tô màu của riêng mình để dùng làm điều khiển thể hiện. Với các bước như trên chương trình của chúng ta đã hoàn tất, giờ chỉ còn một công việc cuối cùng là úm bala nhấn F5 để xem kết quả.


Binh Nguyen - Bioz
Thuật toán chạy màu Reviewed by Bioz Nguyen on 7:44:00 PM Rating: 5
All Rights Reserved by IEEV © 2009 - 2016
Powered By Blogger, Designed by Sweetheme

Contact Form

Name

Email *

Message *

Powered by Blogger.