• 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

Tạo viền cho form bằng code.

Các thủ thuật liên quan đến việc xử lý ứng dụng, biểu mẫu và control
Hình đại diện của người dùng
playgemboy
Thành viên danh dự
Thành viên danh dự
Bài viết: 289
Ngày tham gia: CN 13/04/2008 6:10 am
Đến từ: Bình Phú, Quận 6, TP.HCM
Been thanked: 1 time
Liên hệ:

Tạo viền cho form bằng code.

Gửi bàigửi bởi playgemboy » T.Hai 09/06/2008 4:21 pm

Thủ thuật: Tạo viền cho form
Tác giả: playgemboy
Mô tả: Tạo các viền gadien xung quanh form


Một số bạn thường tự tạo skin form bằng cách đặt borderstyle = 0 rồi chèn một hình ảnh nào đó vào, nhưng làm như vậy sẽ có hạn chế là khi thay đổi kích thước, hình chèn trước đó sẽ ko khớp, vì vậy mình nghĩ ra cách tạo viền bằng các line gradien.

Mã: Chọn hết

  1. Sub CreatFormBoder(fr As Form, ByVal vWidth As Byte, ByVal TileBarWidth As Byte)
  2. Dim CurScale As Byte
  3. fr.Cls
  4. CurScale = fr.ScaleMode
  5. fr.ScaleMode = 3
  6. For i = vWidth To 0 Step -1
  7.     'Left
  8.         fr.Line (i, 0)-(i, fr.ScaleHeight), RGB(i * 50, i * 10 + 220, i * 50)
  9.     'Right
  10.         fr.Line (fr.ScaleWidth - i, 0)-(fr.ScaleWidth - i, fr.ScaleHeight), RGB(i * 50, i * 10 + 220, i * 50)
  11.     'Down
  12.         fr.Line (0, fr.ScaleHeight - i)-(fr.ScaleWidth, fr.ScaleHeight - i), RGB(i * 50, i * 10 + 220, i * 50)
  13. Next i
  14. 'Ve TileBar
  15. For i = TileBarWidth To 0 Step -1
  16.         fr.Line (0, i)-(fr.ScaleWidth, i), RGB(i * 10, i * 10 + 200, i * 10)
  17. Next i
  18. fr.ScaleMode = CurScale
  19. End Sub
  20.  
  21. Private Sub Form_Paint()
  22. CreatFormBoder Form1, 3, 10
  23. End Sub
  24. 'Add mot button vao de kiem tra
  25. Private Sub Command1_Click()
  26. Me.Width = Me.Width + 100
  27. End Sub

Mình chỉ mới tạo một kiểu màu xanh này thôi, các bạn tự nghiên cứu phần màu của line thì sẽ tạo ra nhiều kiểu màu gadien hơn..
(vì là border nên tham số vWidth bạn nên cho <= 5)
Sửa lần cuối bởi playgemboy vào ngày CN 03/08/2008 3:13 pm với 2 lần sửa.


<I Come Back>

Hình đại diện của người dùng
playgemboy
Thành viên danh dự
Thành viên danh dự
Bài viết: 289
Ngày tham gia: CN 13/04/2008 6:10 am
Đến từ: Bình Phú, Quận 6, TP.HCM
Been thanked: 1 time
Liên hệ:

Re: Tạo viền cho form bằng code.

Gửi bàigửi bởi playgemboy » T.Bảy 02/08/2008 7:13 am

Code này do mình nghĩ ra đấy nhé, hôm bữa dạo Net thấy trang này có đề code y chang, nhìn lời dẫn là biết code của mình rồi ;)).
http://itvnn.net/showthread.php?t=21145
Tái bút lại, mất công có ai đó trong VBClub thấy, lại kêu mình "cọp" code người khác thì mất thể diện quá :D .
<I Come Back>

LMM1
Thành viên chính thức
Thành viên chính thức
Bài viết: 12
Ngày tham gia: T.Hai 28/07/2008 10:30 pm

Re: Tạo viền cho form bằng code.

Gửi bàigửi bởi LMM1 » CN 03/08/2008 1:25 pm

Xem lại nha bạn, mình xài thấy không ổn lắm

Hình đại diện của người dùng
playgemboy
Thành viên danh dự
Thành viên danh dự
Bài viết: 289
Ngày tham gia: CN 13/04/2008 6:10 am
Đến từ: Bình Phú, Quận 6, TP.HCM
Been thanked: 1 time
Liên hệ:

Re: Tạo viền cho form bằng code.

Gửi bàigửi bởi playgemboy » CN 03/08/2008 3:05 pm

Code gốc:

Mã: Chọn hết

  1. Sub CreatFormBoder(fr As Form, ByVal vWidth As Byte, ByVal TileBarWidth As Byte)
  2. Dim LastValue As Boolean
  3. fr.ScaleMode = 3
  4. LastValue = fr.AutoRedraw
  5. fr.AutoRedraw = True
  6.  
  7. For i = vWidth To 0 Step -1
  8.     'Left
  9.         fr.Line (i, 0)-(i, fr.ScaleHeight), RGB(i * 50, i * 10 + 220, i * 50)
  10.     'Right
  11.         fr.Line (fr.ScaleWidth - i, 0)-(fr.ScaleWidth - i, fr.ScaleHeight), RGB(i * 50, i * 10 + 220, i * 50)
  12.     'Down
  13.         fr.Line (0, fr.ScaleHeight - i)-(fr.ScaleWidth, fr.ScaleHeight - i), RGB(i * 50, i * 10 + 220, i * 50)
  14. Next i
  15. 'Ve TileBar
  16. For i = TileBarWidth To 1 Step -1
  17.         fr.Line (0, i)-(fr.ScaleWidth, i), RGB(i * 10, i * 10 + 200, i * 10)
  18. Next i
  19. fr.Picture = fr.Image
  20. fr.AutoRedraw = LastValue
  21. End Sub
  22. Private Sub Form_Resize()
  23. CreatFormBoder Form1, 3, 10
  24. End Sub

Ưhm, đúng là ko ổn khi set lại hình của form, mình quả là bất cẩn, thank bạn đã góp ý, mình đã sửa lại rồi. Tạm ok.
<I Come Back>

Hình đại diện của người dùng
NTN
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 472
Ngày tham gia: T.Tư 05/02/2014 3:43 pm
Đến từ: Cao Lãnh, Đồng Tháp,Việt Nam
Has thanked: 19 time
Been thanked: 7 time
Liên hệ:

Re: Tạo viền cho form bằng code.

Gửi bàigửi bởi NTN » T.Tư 18/06/2014 7:00 am

@playgemboy : Vậy nếu muốn đổi màu Viền thì phải làm sau ?

Hình đại diện của người dùng
tungblt
Điều hành viên
Điều hành viên
Bài viết: 548
Ngày tham gia: T.Hai 22/12/2008 5:22 pm
Đến từ: quy nhơn
Has thanked: 6 time
Been thanked: 76 time
Liên hệ:

Re: Tạo viền cho form bằng code.

Gửi bàigửi bởi tungblt » CN 20/07/2014 11:56 pm

  1. RGB(i * 10, i * 10 + 200, i * 10)

sửa đoạn này . còn sửa như thế nào thì đọc bài
Căn bản màu trong VB6 của chú TruongPhu:
http://caulacbovb.com/forum/viewtopic.php?f=22&t=8036
love


Quay về “[VB] Ứng dụng - Form và Control”

Đ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.1 khách