For - číslo a SetCursorPos   zodpovězená otázka

VB.NET

Ahoj.

Už si fakt nevím rady.

Takže mám

Public Declare Auto Function SetCursorPos Lib "User32.dll" (ByVal X As Integer, ByVal Y As Integer) As Integer

Dim usek1X as integer = 200
dim usek1Y as integer = 200
dim usek2X as integer = 400
dim usek2Y as integer = 400
dim usek3X as integer = 400
dim usek3Y as integer = 400 

A ve Form1 mám button1, NumericUpDown1, NumericUpDown2

A teď mám tohle

Dim cislo As Integer
        System.Threading.Thread.Sleep(1300)
        For cislo = NumericUpDown1.Text To NumericUpDown2.Text 'Ve form si nastavím numeric1 na 1 a numeric2 na 3
            SetCursorPos("usek" & cislo & "X", "usek" & cislo & "Y") 'Potřeboval bych, aby se to složilo a napsalo usek1X, usek1Y, a pak usek2X, usek2Y a takhle do tří. 
            System.Threading.Thread.Sleep(300)

Ale v tom mi vyskoci hlaska "Převod řetězce usek1X na typ Integer není platný."

Prosím pomoc :(

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

Získat hodnotu fieldu je možné, musela by se použít reflection.

Ve vašem případě to tak ale dělat by bylo úplně zbytečné, daleko jednodušší je si hodnoty usekX a usekY připravit tak, aby se s nimi dalo pomoci indexu pracovat.

Z kódu to snad bude jasné:

Private Declare Function SetCursorPos Lib "user32" (ByVal x As Integer, ByVal y As Integer) As Integer

Dim usekX = New Integer(2) {200, 400, 400}
Dim usekY = New Integer(2) {200, 400, 400}

Private Sub Button_Click(sender As Object, e As EventArgs) Handles Button.Click
    Dim cislo As Integer
    System.Threading.Thread.Sleep(1300)

    For cislo = NumericUpDown1.Text To NumericUpDown2.Text 'Ve form si nastavím numeric1 na 1 a numeric2 na 3
        SetCursorPos(usekX(cislo - 1), usekY(cislo - 1))

        System.Threading.Thread.Sleep(300)
    Next
End Sub
nahlásit spamnahlásit spam 0 odpovědětodpovědět

no... nějak to nechápu.

místo úseku použijeme pole (pro mě je to přehledný)

takže mám

Dim Pole1X, Pole1Y, Pole2X, Pole2Y, Pole3X, Pole3Y, Pole4X, Pole4Y, Pole5X, Pole5Y As Integer
    Dim Pole6X, Pole6Y, Pole7X, Pole7Y, Pole8X, Pole8Y, Pole9X, Pole9Y, Pole10X, Pole10Y As Integer
    Dim Pole11X, Pole11Y, Pole12X, Pole12Y, Pole13X, Pole13Y, Pole14X, Pole14Y, Pole15X, Pole15Y As Integer
    Dim Pole16X, Pole16Y, Pole17X, Pole17Y, Pole18X, Pole18Y, Pole19X, Pole19Y, Pole20X, Pole20Y As Integer
    Dim Pole21X, Pole21Y, Pole22X, Pole22Y, Pole23X, Pole23Y, Pole24X, Pole24Y, Pole25X, Pole25Y As Integer
    Dim Pole26X, Pole26Y, Pole27X, Pole27Y, Pole28X, Pole28Y, Pole29X, Pole29Y, Pole30X, Pole30Y As Integer
    Dim Pole31X, Pole31Y, Pole32X, Pole32Y, Pole33X, Pole33Y, Pole34X, Pole34Y, Pole35X, Pole35Y As Integer
    Dim Pole36X, Pole36Y, Pole37X, Pole37Y, Pole38X, Pole38Y, Pole39X, Pole39Y, Pole40X, Pole40Y As Integer
    Dim Pole41X, Pole41Y, Pole42X, Pole42Y, Pole43X, Pole43Y As Integer

Je jich víc...

a třeba u numeru1 nastavím třeba 20 a u numeru2 třeba 30...

Tak aby to nejelo od 1 ale od 20 a skončilo ve 30.

Možná jsem ten Váš návrh pochopil špatně.

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

Moje nervy, však tie súradnice dajte do poľa.

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

Tak to mi řekněte jak, když máte nervy.

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

Už jsem to udělal... dal jsem to do pole :)

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