Napoveda   otázka

VB6/VBA

Dobry den

Kdo by mi vedel poradit ako spravim napovedu takzvane bublinu ked uzivatel nabehne s miskou na ikonku?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tak to by aj mna zaujimalo

nahlásit spamnahlásit spam 0 odpovědětodpovědět

- většina prvků na formuláři má událost Mouse_Move, tato událost se dá odchytit a následně zobrazit bublinu s požadovaným obsahem

- bublinu je nutno si naprogramovat, pokud se vám s tím nechce trápit, nabízí se jich na internetu dost

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Tak som patral po nieco takom ale niejak som nemal stastie.Mozem malu napovedu?Dakujem

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

deklarace umístěné v modulu

Public Declare Function SetCapture Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function ReleaseCapture Lib "user32" () As Long

kód pro událost pro tlačítko Command1

Private Sub Command1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  If Button = 0 Then
    If (X < 0) Or (Y < 0) Or (X > .Width) Or (Y > .Height) Then
       'Ukazatel je mimo tlačítko, uvolnit události sledování
       ReleaseCapture
    Else
       'Myš je nad tlačítkem, začínáme sledovat pro obdržení
       'zprávy, kdy myš opustí tlačítko
       SetCapture .hwnd
       'zde umístíme kód pro zobrazení bubliny
    End If
  End If
End Sub
nahlásit spamnahlásit spam 0 odpovědětodpovědět

Funguje to perfektne ale nevzalo mi SetCapture .hwnd tak som to otial dal prec.Upravil som to takto.Len by to chcelo aby neragovalo hned na bublinu ale az po cca 5s nad tlacitkom.Slo by to niejak?

Private Sub Command1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  If Button = 0 Then
    If (X < 0) Or (Y < 0) Or (X > Width) Or (Y > Height) Then
ReleaseCapture
    Else
       SetCapture .hwnd
       Label1.Visible=True
  End If
  End If
End Sub

Private Sub Timer1_Timer()
        Label1.Visible=False
End sub

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Nejjednodušší je použít prvek Timer

- nastavit čas na 5 sekund, vlastnost Enabled = False

- v jeho proceduře Timer1_Timer zadat zobrazení bubliny

- při pohybu myši nad prvkem spustit Enabled = True

- při případném opuštění prvku myší vypnout Enabled = False

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Ovšem domnívám se, že řádek s SetCapture tam být musí, ten zajišťuje sledování, zda je ještě myš pořád nad prvkem. Jinak se může stát, že bude myš nad prvkem, zobrazí se bublina a při dalším pohybu myši nad prvkem se zobrazí znovu a pořád dokola.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Tak som patral na internete ako sa pouziva SetCapture .hwnd a zistil som ze to malo byt takto SetCapture(hwnd) .Teraz sa hrajem s Timerom.Zatial dakujem

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Dakujem

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback