Toon posts:

[Visual Basic] Hyperlink effect voor labels

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik wil mijn labeltje met een effect van een hyperlink (dus onderstrepen bij mouseover)
da's nu geen prob (door mouseUP), maar een mouseLeave bestaat niet...

via googlegroups vind ik alleen 'oplossingen' door gebruik te maken van Drag & Drop, maar hier krijg ik een ongewenst kadertje erbij (rond de label)

kan het anders
of kan ik zorgen dat dit kadertje niet verschijnt :?

  • Sponge
  • Registratie: Januari 2002
  • Laatst online: 17:06

Sponge

Serious Game Developer

Hmm, volgens mij moet je je in de SetCapture en GetCapture API gaan verdiepen om dit te doen op een bepaald forum heb ik hier code voor gezien, echter is de zoekfunctie nu pleite...

Overigens kun je ook kijken bij MouseMove van de Form, of dmv. GetcursorPos API:

code:
1
2
3
4
5
If X < label.left and x > label.left+label.width  Then
 if Y < label.top and y > Label.top + label.height Then
  '//muis is nie boven de label
 end if
end if

  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 25-08 14:38

OZ-Gump

terug van weggeweest

Volgens mij moet het ook kunnen lukken als je niet de leave van je label gebruikt, maar de OnMouseOver (sorry, Delphi-minded ;) ) van je form om hem weer terug te zetten. Zoiets als
code:
1
if (label1.font.style = italic) then label1.font.style = normal


Ofzo?

edit:
tag vergeten

[ Voor 7% gewijzigd door OZ-Gump op 29-11-2002 15:19 ]

My personal website


Verwijderd

Topicstarter
Zo werkt het:

'grootte van label was w: 495 , h: 255
' links weinig gevoelig, daarom voldoende ruimte nemen

Private Sub lblnaam_MouseMove(Button As Integer, Shift As Integer, x As Single, Y As Single)
If (x > 10 And x < 490) And (Y > 5 And Y < 200) Then
lblnaam.Font.Underline = True
Else
lblnaam.Font.Underline = False
End If
End Sub


het zal wel beter kunnen, maar dit werkt :+
thnx

  • Sponge
  • Registratie: Januari 2002
  • Laatst online: 17:06

Sponge

Serious Game Developer

Verwijderd schreef op 29 November 2002 @ 15:32:
Zo werkt het:

'grootte van label was w: 495 , h: 255
' links weinig gevoelig, daarom voldoende ruimte nemen

Private Sub lblnaam_MouseMove(Button As Integer, Shift As Integer, x As Single, Y As Single)
If (x > 10 And x < 490) And (Y > 5 And Y < 200) Then
lblnaam.Font.Underline = True
Else
lblnaam.Font.Underline = False
End If
End Sub


het zal wel beter kunnen, maar dit werkt :+
thnx
Dat is uiteraard ook een oplossing :). Had ik ook aan kunnen denken :)

  • CyberSnooP
  • Registratie: Augustus 2000
  • Laatst online: 31-03 16:47

CyberSnooP

^^^^ schrijft --->

Het kan beter :) Met behulp van de API-Calls SetCapture en ReleaseCaputre kun je zorgen dat alle mousemove events bij een control terecht komen na een SetCapture totdat je weer ReleaseCapture doet. Als je dan controleert of de coördinaten binnen je veld liggen zit je goed.

Zoeken op MouseLeave en Visual Basic moet je genoeg resultaat geven, kijk anders eens op VBAccelerator.

Sorry, ik zie nou pas dat ik door slecht lezen 41.6C.6D.61.72 napraat

[ Voor 10% gewijzigd door CyberSnooP op 30-11-2002 00:56 ]

|_____vakje______|


  • johnwoo
  • Registratie: Oktober 1999
  • Laatst online: 12:32

johnwoo

3S-GTE

Of je downloadt deze zip, waarin een hyperlink control en flat button control van mijn hand staan :Y)
De hyperlink control tekent standaard een focus rectangle (alleen als ie de focus heeft natuurlijk :P ), maar dat kun je uitzetten (DrawFocus property).
Beide controls gebruiken overigens SetCapture/ReleaseCapture.

[ Voor 11% gewijzigd door johnwoo op 30-11-2002 18:14 ]

4200Wp ZO + 840Wp ZW + 1680Wp NW | 14xIQ7+ + 1xDS3-L | MTVenusE | HWP1

Pagina: 1