• 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
User avatar
playgemboy
Thành viên danh dự
Thành viên danh dự
Posts: 289
Joined: Sun 13/04/2008 6:10 am
Location: Bình Phú, Quận 6, TP.HCM
Been thanked: 1 time
Contact:

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

Postby playgemboy » Mon 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.

Code: Select all

  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)
Last edited by playgemboy on Sun 03/08/2008 3:13 pm, edited 2 times in total.


<I Come Back>

User avatar
playgemboy
Thành viên danh dự
Thành viên danh dự
Posts: 289
Joined: Sun 13/04/2008 6:10 am
Location: Bình Phú, Quận 6, TP.HCM
Been thanked: 1 time
Contact:

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

Postby playgemboy » Sat 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
Posts: 12
Joined: Mon 28/07/2008 10:30 pm

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

Postby LMM1 » Sun 03/08/2008 1:25 pm

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

User avatar
playgemboy
Thành viên danh dự
Thành viên danh dự
Posts: 289
Joined: Sun 13/04/2008 6:10 am
Location: Bình Phú, Quận 6, TP.HCM
Been thanked: 1 time
Contact:

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

Postby playgemboy » Sun 03/08/2008 3:05 pm

Code gốc:

Code: Select all

  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>

User avatar
NTN
Thành viên tâm huyết
Thành viên tâm huyết
Posts: 482
Joined: Wed 05/02/2014 3:43 pm
Location: Đồng Tháp,Việt Nam
Has thanked: 19 times
Been thanked: 7 times
Contact:

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

Postby NTN » Wed 18/06/2014 7:00 am

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

User avatar
tungblt
Điều hành viên
Điều hành viên
Posts: 550
Joined: Mon 22/12/2008 5:22 pm
Location: quy nhơn
Has thanked: 8 times
Been thanked: 77 times
Contact:

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

Postby tungblt » Sun 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


Return to “[VB] Ứng dụng - Form và Control”

Who is online

Users browsing this forum: No registered users and 3 guests