Hiệu ứng đặc biệt trong các biểu Access TH&ĐS Trong khi viết chương trình hệ thống quản lý thiết bị cho công ty bằng Microsoft Access, tôi thấy Access gây được nhiều ấn tượng. Mặc dù tôi thiên về văn bản kỹ thuật in ấn mà Access lại có khuyết điểm trong lĩnh vực này, tôi vẫn thấy thích Access. Tôi tạo một cơ sở dữ liệu chứa một biểu (form) có tên là About. Biểu này tận dụng một vài tính chất để tạo ra được những hiệu ứng gọn nhẹ hiệu quả. Chẳng hạn như lặp màu, phông chữ và xử lý hình ảnh. Những hiệu ứng này không phục vụ mục đích ứng dụng rõ ràng. Nó chỉ làm cho biểu phong phú hơn, trông chuyên nghiệp hơn. Lúc đầu mở biểu About, thông báo xuất hiện trong hộp nhãn (label box). Thoạt đầu, chữ quá nhỏ không thể đọc được nhưng càng lúc càng lớn ra cho tới khi phủ đầy hộp thông báo. Kế đó màu nền của hộp thông báo bắt đầu xoay vòng. Cả hai hiệu ứng này được tạo ra nhờ xử lý những giá trị thuộc tính của nhãn tương ứng với sự kiện Timer. Biểu nàycungx chứa hai nút nhấn (button). Nhấn OK sẽ đóng biểu. Không thể nhấn nút Not OK bởi vì chỉ cần con trỏ chuột lướt ngang qua nút Not OK, nút này biến mất và xuất hiện ở chỗ khác. Muốn nhấn nút này, tôi phải sử dụng thuộc tính Visible (nhìn thấy) trên cả hai nút nhấn tuơng ứng với sự kiện MouseMove (di chuyển chuột). Trong biểu có hình ảnh tôi khi còn bè. Khi tôi chuyển con trỏ chuột qua bức ảnh thì bức ảnh thay đổi. Hình ảnh trở thành tôi hiện nay với đầy đủ kính cận và ria mép. Tôi đã thực hiện điều này cũng bằng cách xử lý thuộc tính Visible như trên đã nêu. Tôi đã thực hiện những mẫu trên với ý định tô vẽ cho cửa sổ chương trình About. Kết quả đạt được là nhờ vào đặc tính linh hoạt của Access và một chút xíu tưởng tượng. Những sự kiện (Event) và thuộc tính (Property) trong Access cung cấp nhiều cơ hội cho sự sáng tạo. ở đây bạn đã nêu ra hai cách sử dụng những đặc điểm của Access ở cấp độ Form: sự kiện Timer (thời gian) và thuộc tính Timer Interval (thời khoảng) và bốn đặc điểm ở cấp độ điều khiển: một sự kiện MouseMove và ba thuộc tính FontSize (kích cỡ phông), Backcolor (màu nền) và Visible (nhìn thấy) để tạo một số hiệu ứng thú vị. Hiệu ứng đầu tiên làm tăng kích cỡ của đoạn văn bản trên nhãn, hoạt hình hóa đoạn văn và tạo ra ảo tưởng đoạn văn đang tiến về phía bạn. Đạt được hiệu ứng này nhờ đặt những đoạn mã trong một quá trình những sự kiện gắn liền với thuộc tính On - kích cỡ phông chữ. Quá trình này sẽ được thực hiện bất cứ khi nào xảy ra một sự kiện Timer. Bạn có thể đặc tả sự kiện Timer bằng cách đặt thuộc tính Timer Interval của biểu. Tầm trị của thuộc tính Timer Interval là một số nguyên lớn (Long Integer) từ 0 đến 2.147.483.674 chính là số mili giây giữa những sự kiện thời gian. Bạn có thể thiết lập nó bằng cách dùng trang Property của mẫu biểu, dùng macro hay Visual Basic. Vì mỗi giây bằng 1.000 mili giây để cho sự kiện xảy ra mỗi giây một lần, hãy đặt thuộc tính TimerInterval bằng 1.000. Nhớ rằng đồng hồ hệ thống 55 mili giây nhảy một lần, vì thế bạn không nên gõ vào một con số nhỏ hơn 55. Nếu không muốn xảy ra sự kiện, đặt Timer Interval bằng 0. Sự kiện Interval và thuộc tính Timer Interval cho ta cơ hội để thực hiện những hành động xảy ra trong những khoảng thời gian đều đặn. Thuộc tính Timer Interval và sự kiện Timer thường được dùng để hỗ trợ hoạt hình và các hiệu ứng đặc biệt như chúng ta thảo luận ở đây. Để hoạt hóa đoạn chữ bạn đặt mã trong thủ tục sự kiện OnTimer để gia tăng kích cỡ của đoạn chữ ấy chỉ dừng lại khi đạt được kích cỡ đích. Với đoạn mã sau (trong thủ tục sự kiện OnTimer) đoạn chữ sẽ gia tăng kích cỡ tới khi đạt tới cỡ 11. If [Mylabel].Fontsize<11 Then [Mylabel].Fontsize = [Mylabel].Fontsize +1 Mylabel là tên của nhãn chứa chữ. Để chương trình chạy đẹp bạn nhớ đặt FontSize mặc nhiên của nhãn thật nhỏ. Trong trang thuộc tính của nhãn, bạn nên đặt trị khởi động thấp rồi tăng dần lên. Trong trường hợp này, giá trị khởi động mặc nhiên được đặt bằng 1. Bạn cũng nên đặt trị TimerInterval thích hợp để cho hoạt hình mượt mà. Trong trường hợp này, nên chọn 100 mili giây. Nếu bạn chọn trị số nhỏ hơn, hoạt hình sẽ chạy nhanh hơn tức là mau hết hơn. Hiệu ứng thứ hai trong cơ sở dữ liệu mẫu của bạn là lặp vòng màu nền nhãn. Kỹ thuật dùng cũng tương tự với định kích cỡ chữ. Bạn đặt mã trong thủ tục sự kiện gắn liền với thuộc tính OnTimer và thêm mã vào trong thuộc tính của nhãn, trong trường hợp này là thuộc tính BackColor. Thuộc tính BackColor chứa một biểu thức số tương ứng với màu được gán cho nền của phần bên trong hay của các ô điều khiển. Bạn có thể đặt thuộc tính này bằng cách nhấn nút Build ở bên phải hộp thuộc tính trong trang thuộc tính. Color Build sẽ xuất hiện, bạn có thể chọn màu sẵn có hay tạo màu riêng cho các ô điều khiển hay các thành phần khác. Để tạo màu sắc lập vòng biến ảo bạn phải trực tiếp thay đổi thuộc tính trong mã. Giải thích cũng khá đơn giản: mỗi lần sự kiện Timer xảy ra, đoạn mã trong thủ tục làm tăng giá trị gán cho thuộc tính gán cho BackColor của nhãn lên 1000 cho đến khi đạt được giá trị đích. Khi đạt tới giá trị đích, BackColor được đặt lại bằng 0, quá trình cứ thế lặp lại. Bằng cách này màu nền sẽ xoay vòng. Bạn có thể tạo vài hiệu ứng lý thú khác bằng cách kiểm tra sự di chuyển chuột và xử lý thuộc tính Visible sẵn có trên những biểu điều khiển và những báo cáo. Như bạn đã đưa ra một ví dụ làm cho nút Not OK biến mất rồi lại xuất hiện đâu đó khi bạn cố nhấn nó bằng chuột. Để kiểm tra khi nào chỉ điểm chuột đi ngang qua vùng điều khiển bạn đặt mã vào trong thủ tục sự kiện liên kết với thuộc tính điều khiển On MouseMove. Thủ tục sự kiện MouseMove xảy ra và chuột được định vị trong vùng biên của điều khiển. Sự kiện MouseMove rất thường xảy ra. Mặt khác, cũng xảy ra lúc chuột đứng yên nhưng đối tượng di chuyển bên dưới chuột. Chẳng hạn, bạn kéo một đối tượng (như biểu) bên dưới chỉ điểm chuột đứng yên, sự kiện MouseMove vẫn xảy ra. Những sự kiện được nhận dạng bởi những đối tượng mà miền trong đường biên của nó chứa chỉ điểm chuột. Chú ý rằng không phải tất cả những đối tượng đều nhận dạng được sự kiện MouseMove. Chẳng hạn sự kiện MouseMove không áp dụng được cho những điều khiển về báo cáo. Những sự kiện MouseMove được gởi tới những đối tượng chứa Mouse. Việc làm cho những đối tượng này biến mất chỉ đơn giản đặt mã trong thủ tục sự kiện MouseMove của đối tượng. Mã này đặt thuộc tính Visible sang trị False như sau: Me!]Button].Visible = False. Bạn dùng thuộc tính Visible để thể hiện hay ẩn dấu một mẫu biểu, báo cáo hay điều khiển. Đặt thuộc tính Visible bằng True cho đối tượng để nhìn thấy, False sẽ dấu đi. Như trong cơ sở dữ liệu mẫu chỉ ra bạn có thể viết mã trong thủ tục này làm cho nút khác nhìn thấy. Trong ví dụ của bạn có hai nút Not OK giống nhau dược tạo ra, mỗi nút nằm một phía của nút OK. Những thuộc tính nhìn thấy trên hai nút ấy được xử lý tuơng ứng với những sự kiện MouseMove để một nút là nhìn thấy và nút kia không nhìn thấy. Việc xử lý thuộc tính nhìn thấy cũng tạo ra được những ảnh ảo: chỉ một nút tồn tại kia biến mất rồi tái xuất hiện đâu đó. Chẳng hạn, mã trong thủ tục sự kiện MouseMove của phím chuột 1 (thông thường là phím trái) như sau: Me![button1].Visible = False Me![button2].Visible = True Mã trong thủ tục sự kiện MouseMove của phím chuột 2 như sau: Me![button1].Visible = True Me![button2].Visible = False Bảo đảm rằng bạn sẽ đuổi theo những nút ấn hết buổi tối. Ví dụ cuối cùng trong cơ sở dữ liệu cho bạn là cách dùng thuộc tính Visible, sự kiện MouseMove và áp dụng của chúng cho hình ảnh. Nếu bạn đặt hai ảnh cùng cỡ lên trên mẫu biểu, ảnh này chồng khít lên ảnh kia, bạn có thể xử lý từng thuộc tính nhìn thấy. Cách xử lý này tạo ra những chuyển đổi hình ảnh khi chỉ điểm chuột đặt trong vùng của chúng. . Hiệu ứng đặc biệt trong các biểu Access TH&ĐS Trong khi viết chương trình hệ thống quản lý thiết bị cho công ty bằng Microsoft Access, tôi thấy Access gây được nhiều. tạo ra được những hiệu ứng gọn nhẹ hiệu quả. Chẳng hạn như lặp màu, phông chữ và xử lý hình ảnh. Những hiệu ứng này không phục vụ mục đích ứng dụng rõ ràng. Nó chỉ làm cho biểu phong phú hơn,. hiện những hành động xảy ra trong những khoảng thời gian đều đặn. Thuộc tính Timer Interval và sự kiện Timer thường được dùng để hỗ trợ hoạt hình và các hiệu ứng đặc biệt như chúng ta thảo luận