Ukládání pozic kurzoru   otázka

VB.NET, WinForms

Dobrý den. Mám tento kód:

 If MouseButtons = Windows.Forms.MouseButtons.Right Then
            mMousePointerX = Cursor.Position.X()
            mMousePointerY = Cursor.Position.Y()
 End If

Tohle ukládá samozřejmě jen aktuální pozici. Jak uložit pozice kurzoru tak, aby se vytvořil seznam těchto pozic ze kterých by se následně dalo čerpat?

Díky za radu.

M.B.

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

Teď jsem přesně nepochopil co požadujete. Pokud chápu dobře kód tak při pravém kliknutí myší uloží do proměnné aktuální pozici myši. Pokud chcete ukládat pozici při každém kliknutí, tak je můžete dávat třeba do pole.

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

Určitě pomocí nějakého typu seznamu, např. List:

Dim Seznam As New List(Of Point)
If MouseButtons = Windows.Forms.MouseButtons.Right Then
		Seznam.Add(cursor.position)
End If

pozice jsou pak taky v pořadí, v jakém byli zadány.

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

Honzo ano, pochopil jste to správně a oběma vám děkuji.Potvrdilo se mi tak použití pole.Přemýšlel jsem o poli, ale nějak mi nedocházelo, jak z něj pak čerpat. Ideální by bylo, aby se pozice kurzoru ukládaly do určitého algoritmu, který by se pak dal spustit. A tohle mi právě vrtá hlavou.

M.B.

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

Tento kód uloží pozice (X a Y) kurzoru do proměnné "UlPozice_(i)" kde i je číslo pozice.

Toté stačí vědět číslo pozice kterou chceme vyvolat, nebo zobrazit a pomocí jednoduchého kódu třeba přesunout kurzor.

        Dim UlPoziceX(100) As Integer
        Dim UlPoziceY(100) As Integer
        Dim CisloPozice As Integer

        'ULOŽENÍ POZICE
        'Při kliknutí na Form se pozice uloží do proměnných UlPozice_(CisloPozice)
        If MouseButtons = Windows.Forms.MouseButtons.Right Then

            If CisloPozice >= 99 Then
                MsgBox("Bylo dosažena max počtu pozic")
            Else
                CisloPozice += 1 'přičte číslo pozice

                'Uloží pozici
                UlPoziceX(CisloPozice) = Cursor.Position.X()
                UlPoziceY(CisloPozice) = Cursor.Position.Y()
            End If

        End If

        'ČTENÍ POZICE
        'Zobrazí na jakou pozici byl přesunut kurzor
        'Přesune kurzor na pozici uloženou v proměnných UlPozice_(CisloPozice)
        Dim i As Integer = 10
        'Zobrazení zprávy
        MsgBox("Kurzor přesunut na pozici X: " & UlPoziceX(i).ToString & " Y: " & UlPoziceY(i).ToString)

        'Přesunutí kurzoru
        Cursor.Position = New Point(UlPoziceX(i), UlPoziceY(i))

Snad jsem to nikde nepoplet. Ovšem asi bude existovat i lepší řešení... Já, jako amatér bych použil toto. A až bych přišel na něco lepšího tak bych to změnil

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

Petře, děkuji za inspiraci. Já jako amatér to vyzkouším. Ale až zítra; teď jsem moc vychechtaný z kina (Růžový panter2).

M.B.

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

Dobrý den.

Potřeboval bych pomoci s problémem, který se týká VBA, konkrétně MS ACCESS 2007.

Potřeboval bych zjistit pozici kursoru myši. Mám otevřený nějaký formulář, na něm je komponenta obrázek (PrintScreen vzdáleného PC). Dejme tomu, při kliknutí na obrázek bych potřeboval zjistit nějaké souřadnice, kam přesně jsem, nejlépe v rámci samotného obrázku klikl. A nebo alespoň, kam přesně jsem klikl v rámci formuláře, či celé pracovní plochy. Použití "Cursor.Position" mi ve VBA nefunguje.

Vyřešeno.

Stejný dotaz jsem vznesl i na fóru Visual Basic 6 a další verze, a už je zodpovězený.

Netuším, jak tento svůj příspěvek odstranit.

Takže asi práce pro správce :-)

nahlásit spamnahlásit spam -1 / 1 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