|
|
|
|
|
Dicas
|
|
Visual Basic (ActiveX/Controles/DLL)
|
|
|
Título da Dica: Dar um efeito de borda ou sombra a um Label
|
|
|
|
Postada em 31/1/2004 por PC
'Ponha este código num form com dois labels desenhados. estes labels devem ter indice, mesmo que tenham nomes diferentes. 'a propriedade backstile do label tem que estar definida como transparent
Public Enum LabelEfeitos lblEfeitoSombra = 0 lblEfeitoBorda = 1 End Enum
Sub Efeito_Label(lbl As Object, _ iEfeitoSize As Integer, _ cEfeitoColor As ColorConstants, _ cTextColor As ColorConstants, _ Optional LabelEfeito As LabelEfeitos = lblEfeitoSombra) Dim iMoveRight As Integer Dim iMoveDown As Integer Dim iCounter As Integer Dim iIterator As Integer Dim iStep As Integer For iIterator = 1 To lbl.Count - 1 Unload lbl(iIterator) Next iIterator If LabelEfeito = lblEfeitoSombra Then For iIterator = 1 To iEfeitoSize Load lbl(iIterator) lbl(iIterator).ForeColor = cEfeitoColor lbl(iIterator).Left = lbl(iIterator - 1).Left - 1 lbl(iIterator).Top = lbl(iIterator - 1).Top - 1 lbl(iIterator).Visible = True Next iIterator ElseIf LabelEfeito = lblEfeitoBorda Then iCounter = 1 Me.Show For iMoveRight = -1 To 1 For iMoveDown = -1 To 1 For iIterator = 1 To iEfeitoSize Load lbl(iCounter) lbl(iCounter).Left = lbl(0).Left + (iIterator * iMoveRight) x = lbl(0).Left x = lbl(iCounter).Left lbl(iCounter).Top = lbl(0).Top + (iIterator * iMoveDown) lbl(iCounter).ForeColor = cEfeitoColor lbl(iCounter).Visible = True iCounter = iCounter + 1 Next iIterator Next iMoveDown Next iMoveRight End If lbl(0).ForeColor = cTextColor End Sub
Private Sub Form_Load() 'desenhe dois labels com indice ... Label1(0), Label2(0) Efeito_Label Label1, 40, vbBlack, vbYellow, lblEfeitoSombra Efeito_Label Label2, 20, vbBlack, vbYellow, lblEfeitoBorda End Sub
|
|
|
|
|