Avatar
David Hanč
Člen
Avatar
David Hanč:

Vůbec netuším, kde by mohla být chyba. Mám kód, který na mém počítači nejde, ale na jiném ano. Kód sem dám, ale v něm by chyba být neměla. Po zapnutí by se hráč (kulička) měla po stisknutí klávesy T (žádná klávesa nejde) pohybovat, ale nepohybuje. Na jiném PC ano. Stalo se to někdy někomu nebo tuší, v čem by to mohlo být ?
http://paste.ofcode.org/…XGMvfj85Uj7X

 
Odpovědět 23. listopadu 23:26
Avatar
Ilidanek33
Člen
Avatar
Ilidanek33:

Podle mě bude problém při detekci toho stisknutí.. Tento problém bych asi řešil tím, že bych to zkusil přes win api.. Koukni sem http://www.codeproject.com/…Hooks-in-NET

 
Nahoru Odpovědět 24. listopadu 0:04
Avatar
ostrozan
Redaktor
Avatar
Odpovídá na David Hanč
ostrozan:

Když tak mně oprav - vypadá to, že spouštíš projekt ve VS a ten projekt byl stvořen někým jiným na jiném počítači.
Pak budeš muset v okně properties v událostech nastavit znova u KeyPress, nebo KeyDown nebo nevím kterou používáš handler na tu metodu "metoda"

 
Nahoru Odpovědět 24. listopadu 10:04
Avatar
David Hanč
Člen
Avatar
Odpovídá na ostrozan
David Hanč:

Nene, napsal jsem to sám na svém PC, ale nešlo mi to, tak jsem to poslal kamarádovi, který žádnou chybu nenašel a normálně mu to šlo spustit.

 
Nahoru Odpovědět 24. listopadu 18:35
Avatar
Adam Ježek
Tým ITnetwork
Avatar
Adam Ježek:

V první řádě bych zjistil, jestli Keydown event funguje. uprav metoda na následující:

private void metoda(object sender, EventArgs e) {
    MessageBox.Show("Stisknuta klávesa!");
    ...

a spust to. Pokud při mačkání kláves nevyskočí okno, máme problém.

Nahoru Odpovědět 24. listopadu 19:07
Programátor dělá co může. Počítač co chce. | Pokud mi dáš mínus, tak prosim, napiš proč!
Avatar
Adam Ježek
Tým ITnetwork
Avatar
Odpovídá na Adam Ježek
Adam Ježek:

Ježiši. Teď na to koukam, ty to kontroluješ timerem? Na tohle je eventHandler, který zavolá funkci pokaždé, když zmáčkneš klávesu.
Ve WPF:

this.KeyDown += MainWindow_KeyDown;
//a následná funkce volaná při stisku
 private void MainWindow_KeyDown(object sender, KeyEventArgs e) {
            posX += 40;
            pictureBox1.Refresh();
        }

Teď si z hlavy nepamatuju, jak to přesně je, ale ze sender objectu se dá zjistit, která klávesa to byla. Nicméně tohle je dobrý start, ten Timer z toho vyhoď.

Jestli to děláš ve WF, tak pokud mi paměť slouží dobře, tak je to tam stejně, jen se to možná jmenuje KeyPressed. Ale google vždy poslouží.

Editováno 24. listopadu 19:12
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět  +1 24. listopadu 19:10
Programátor dělá co může. Počítač co chce. | Pokud mi dáš mínus, tak prosim, napiš proč!
Avatar
David Hanč
Člen
Avatar
Odpovídá na Adam Ježek
David Hanč:

Děkuji za tuto i předešlou radu. Pomohla :)

 
Nahoru Odpovědět 29. listopadu 19:49
Avatar
David Hanč
Člen
Avatar
Odpovídá na Adam Ježek
David Hanč:

Nejspíš sem to správně nepochopil. Kde ten tvůj kód má být teda napsaný ? V metodě ?

 
Nahoru Odpovědět 29. listopadu 20:15
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.