IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar

Člen
Avatar
:3.2.2013 19:06

Ahoj. Ve škole jsme dostali tohle zadání:
stažení obrázku z internetu
zpracování v obrázku grafickém editoru
-ořez
-změna velikosti
-uložení ve formátu PNG s určením průhledné barvy
vytvoření projektu: formulář, 4 tlačítka
vložení obrázku do složky projektu Properties.Re­sources
zavedení souřadného systému

kreslení na formulář
událost Paint
vytvoření kreslící plochy
vykreslení obrázku

tlačítka „Nahoru“, „Vpravo“, „Dolů“, „Vlevo“

různé verze
ovládání pohybu panáčka klikáním na tlačítka
ovládání pohybu panáčka pomocí kláves A, S, D, W
ovládání pohybu panáčka pomocí šipek (kurzorových kláves)

Vytvořil sem formulář s tlačítk; nahrál obrázek do Properties.Re­sources; zprovoznil sem vykreslování obrázku, ale obrázek se nepohybuje podle klikání na tlačítka

Tady je kód který sem zatím udělal. Byl bych rád za každou radu nebo pomoc. Díky

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication18
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }


        int x = 200;
        int y = 150;
        Bitmap obrazek;



        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            e.Graphics.DrawImage(obrazek, x , y, 36, 50);
        }

        private void button1_Click(object sender, EventArgs e)
        {
            x--;
        }

        private void button3_Click(object sender, EventArgs e)
        {
            x++;
        }

        private void button4_Click(object sender, EventArgs e)
        {
            y--;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            y++;
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            obrazek = Properties.Resources.ob01;
        }
    }
}
 
Odpovědět
3.2.2013 19:06
Avatar
matesax
Tvůrce
Avatar
Odpovídá na
matesax:3.2.2013 19:23

Místo 60ti metod ButtonClick udělej jednu a podle mapy přičti podle senderu.

private Dictionary<string, int[]> map = new Dictionary<string, int[]>()
{
    {"name1", new int[] { 0, 1 }},
    {"name2", new int[] { 0, -1 }},
    {"name3", new int[] { 1, 0 }},
    {"name4", new int[] { -1, 0 }}
}

private void button1_Click(object sender, EventArgs e)
{
    string name = ((Control)sender).Name;

    x += map[name][0];
    y += map[name][1];

    tady musíš mít vykreslení, jinak se ti nic neposune...
}

Nebo použij slovník akcí - což asi nemá smysl - když nevíš o co go.

V using ti stačí asi 3 řádky.

Editováno 3.2.2013 19:27
 
Nahoru Odpovědět
3.2.2013 19:23
Avatar

Člen
Avatar
:3.2.2013 19:29

promin, ale to jsem nějak nepochopil jak to myslíš..já musím mít 4 tlačítka a přes ně ovládat pohyb obrázku

 
Nahoru Odpovědět
3.2.2013 19:29
Avatar
matesax
Tvůrce
Avatar
Odpovídá na
matesax:3.2.2013 19:30
private Dictionary<string, int[]> map = new Dictionary<string, int[]>()
{
    { "name1", new int[] { 0, 1 }},
    { "name2", new int[] { 0, -1 }},
    { "name3", new int[] { 1, 0 }},
    { "name4", new int[] { -1, 0 }}
}

private int x = 200, y = 150;

Bitmap obrazek;

private void MoveClick(object sender, EventArgs e)
{
    string name = ((Control)sender).Name;

    x += map[name][0];
    y += map[name][1];

    e.Graphics.DrawImage(obrazek, x , y, 36, 50);
}

Proč nepoužiješ PictureBox?

EDIT:

4 tlačítka ano - ale ať volají metodu MoveClick v eventu Click... Jednotlivé hodnoty přičtení se dozvíš dosazením jména Controlu do slovníku. V slovníku tedy přepiš nameX za skutečné názvy tlačítek... (Místo konverze do Control můžeš dát rovnou Name...)

Editováno 3.2.2013 19:33
 
Nahoru Odpovědět
3.2.2013 19:30
Avatar
DooM
Tvůrce
Avatar
Odpovídá na
DooM:3.2.2013 19:36

nejjednodussi reseni je udelat si panel a v nem se bude ten panacek pohybovat a panel budes po kazdem stisknuti tlacitka obnovovat. :)

ukazka:

private void tlacitko_Click(object sender, EventArgs e)
{
y--;
panel.Refresh();
}
Nahoru Odpovědět
3.2.2013 19:36
Klient: Nefunguje mi internet co s tím uděláte? Operátor: a co vidíte na monitoru? Klient: No signal...
Avatar
matesax
Tvůrce
Avatar
matesax:3.2.2013 19:36

Hovadina - místo

e.Graphics.DrawImage(obrazek, x , y, 36, 50);

Musíš dát nějaké funkční vykreslení - proto navrhuji PictureBox... (Tam pak nebudeš vykreslovat, ale měnit padding...)

 
Nahoru Odpovědět
3.2.2013 19:36
Avatar
matesax
Tvůrce
Avatar
Odpovídá na DooM
matesax:3.2.2013 19:38

Ale on nechce měnit jen y... Ať vše směřuje do jedné metody - v ní bude znovu vykreslení - před tím se v mapě najdou příslušné hodnoty operandů...

Editováno 3.2.2013 19:39
 
Nahoru Odpovědět
3.2.2013 19:38
Avatar
DooM
Tvůrce
Avatar
Odpovídá na matesax
DooM:3.2.2013 19:40

udelal jsem ukazku pro jedno tlacitko. Pokud jsem spravne cetl tak chce proste udelat nejaky obrazek pohybujici se pomoci 4 sipek(4 ruznych tlacitek).

Nahoru Odpovědět
3.2.2013 19:40
Klient: Nefunguje mi internet co s tím uděláte? Operátor: a co vidíte na monitoru? Klient: No signal...
Avatar

Člen
Avatar
:3.2.2013 19:41

aha, takže jestli to chápu dobře, udělám jen jednu metodu MoveClick a k tomu tu metodu private Dictionary<string, int[]> map = new Dictionary<string, int[]>(). Místo name1 až name4 nahradím názvy tlačítek..a vykreslovat mám do toho pictureboxu nebo přímo na formulář? S pictureboxem jsem ještě nedělal a ani v tomhle případě nemůžu, v zadání mám kreslení na formulář

 
Nahoru Odpovědět
3.2.2013 19:41
Avatar
matesax
Tvůrce
Avatar
Odpovídá na DooM
matesax:3.2.2013 19:42

Ano - ale ty jsi dal y do solo metody... Jak jsem psal - ať volá jednu celistvou - a ať se dělí podle odesílatele. Také bych udělal pohyb v KeyDown eventu - pomocí kurzorových kláves...

 
Nahoru Odpovědět
3.2.2013 19:42
Avatar
matesax
Tvůrce
Avatar
Odpovídá na
matesax:3.2.2013 19:44

Ne tak úplně. map není metoda, ale proměnná. A musíš jít do návrhové části, tam dej všem tlačítkům do Click eventu metodu MoveClick.

A pak jak už jsem poslal:

private Dictionary<string, int[]> map = new Dictionary<string, int[]>()
{
    { "name1", new int[] { 0, 1 }},
    { "name2", new int[] { 0, -1 }},
    { "name3", new int[] { 1, 0 }},
    { "name4", new int[] { -1, 0 }}
}

private int x = 200, y = 150;

Bitmap obrazek;

private void MoveClick(object sender, EventArgs e)
{
    string name = ((Control)sender).Name;

    x += map[name][0];
    y += map[name][1];

    //zde vykresli
}
 
Nahoru Odpovědět
3.2.2013 19:44
Avatar
DooM
Tvůrce
Avatar
Odpovídá na matesax
DooM:3.2.2013 19:46

Nedavno jsem takto delal jeden uplne stejny program a behal skvele ;)
No co, ale stejne ta tvoje metoda je lepsi. Ta moje je o chlup jednodussi na pochopeni. Ale s tou tvou zase dostane treba lepsi znamku :)

Nahoru Odpovědět
3.2.2013 19:46
Klient: Nefunguje mi internet co s tím uděláte? Operátor: a co vidíte na monitoru? Klient: No signal...
Avatar
matesax
Tvůrce
Avatar
Odpovídá na DooM
matesax:3.2.2013 19:49

Tak z logiky je lepší volat jednu metodu, když se to týká jedné věci. (A o přehlednosti nemluvě.) Jak jsem psal ať použije PictureBox a mění padding - pak smaže x a y proměnné - a bude to pěkně objektové... :)

(Mapu bych také strčil pryč do objektu, kterého se to týká.)

PictureBox.Padding = new Padding(10, 10, 10, 10);
Editováno 3.2.2013 19:52
 
Nahoru Odpovědět
3.2.2013 19:49
Avatar

Člen
Avatar
:3.2.2013 19:51

tady mi nejde o lepší známku, tady je podstatný aby to fungovalo :)
jinak jsem teda tlačítkům přiřadil Moveclick..a ted to vykreslování mám zprovoznit jak?

 
Nahoru Odpovědět
3.2.2013 19:51
Avatar
matesax
Tvůrce
Avatar
Odpovídá na
matesax:3.2.2013 19:55

PictureBox. Zbav se tedy Bitmapy - vem nový PictureBox a zavolej Load - či tak nějak. Smaž X a Y. Pak jen nastavuj Padding - jak jsem ti poslal:

pb.Padding = new Padding(dd, dd, 0, 0);

Ke starým hodnotám přičítej hodnoty získané z mapy...

Časem PictureBox zděď a dej mu tam tu mapu - tím to bude dokonale objektové... :)

Editováno 3.2.2013 19:56
 
Nahoru Odpovědět
3.2.2013 19:55
Avatar
matesax
Tvůrce
Avatar
matesax:3.2.2013 20:01
private Dictionary<string, int[]> map = new Dictionary<string, int[]>()
{
    { "name1", new int[] { 0, 1 }},
    { "name2", new int[] { 0, -1 }},
    { "name3", new int[] { 1, 0 }},
    { "name4", new int[] { -1, 0 }}
}

private void MoveClick(object sender, EventArgs e)
{
    string name = ((Control)sender).Name;

    imageContent.Padding = new Padding(imageContent.Padding.Left + map[name][0], imageContent.Padding.Top + map[name][1], 0, 0);
}
Editováno 3.2.2013 20:02
 
Nahoru Odpovědět
3.2.2013 20:01
Avatar

Člen
Avatar
:3.2.2013 20:04

a ten imageContent je co?

 
Nahoru Odpovědět
3.2.2013 20:04
Avatar
matesax
Tvůrce
Avatar
Odpovídá na
matesax:3.2.2013 20:06

PictureBox, který si přidáš v návrhové části - jméno je na tobě - já jen tak... :)

Být tebou, dal bych to spíše do KeyDown - jak jsem psal - podle šipek - než podle tlačítek - tlačítka jedině jako sekundární ovládání...

Jak vidíš, nepotřebuji x, y ani Bitmapu. Obrázek nastav rovnou v návrhové části...

A promaž ty usingy.

Editováno 3.2.2013 20:09
 
Nahoru Odpovědět
3.2.2013 20:06
Avatar

Člen
Avatar
:3.2.2013 20:14

Dobře..Předělal sem to tak jak sem to pochopil :D ale nějak to pořád nefunguje.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication18
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private Dictionary<string, int[]> map = new Dictionary<string, int[]>()
        {
            { "button1", new int[] { 0, 1 }},
            { "button2", new int[] { 0, -1 }},
            { "button3", new int[] { 1, 0 }},
            { "button4", new int[] { -1, 0 }}
        };

        private void MoveClick(object sender, EventArgs e)
        {
            string name = ((Control)sender).Name;

            imageContent.Padding = new Padding(imageContent.Padding.Left + map[name][0], imageContent.Padding.Top + map[name][1], 0, 0);
        }
    }
}
 
Nahoru Odpovědět
3.2.2013 20:14
Avatar
matesax
Tvůrce
Avatar
Odpovídá na
matesax:3.2.2013 20:19
using System;
using System.Windows.Forms;
using System.Collections.Generic;

namespace WorkWithImage //smysluplný název namespace - nastav jako primární pro tvou aplikaci
{
    public partial class Form1 : Form
    {
        private Dictionary<string, int[]> map = new Dictionary<string, int[]>()
        {
            { "button1", new int[] { 0, 1 }},
            { "button2", new int[] { 0, -1 }},
            { "button3", new int[] { 1, 0 }},
            { "button4", new int[] { -1, 0 }}
        }; //fuj - zvol lepší názvy - jako třeba "buttonUp"

        public Form1()
        {
            InitializeComponent();
        }

        private void MoveClick(object sender, EventArgs e)
        {
            string name = ((Control)sender).Name;

            imageContent.Padding = new Padding(imageContent.Padding.Left + map[name][0], imageContent.Padding.Top + map[name][1], 0, 0);
        }
    }
}

Popiš problém - nejsem pes... :)

Editováno 3.2.2013 20:20
 
Nahoru Odpovědět
3.2.2013 20:19
Avatar

Člen
Avatar
:3.2.2013 20:21

no nedělá to nic :D obrázek se mi vykreslí, ten jsem nastavil už ve vlastnostech, ale když kliknu na tlačítko tak se nic neděje

 
Nahoru Odpovědět
3.2.2013 20:21
Avatar
matesax
Tvůrce
Avatar
Odpovídá na
matesax:3.2.2013 20:23

V eventu nastav tu metodu... (V návrhové části v sekci Properties klikni na blesk a do pole vedle Click zadej: MoveClick)

Všem tlačítkům...

Editováno 3.2.2013 20:24
 
Nahoru Odpovědět
3.2.2013 20:23
Avatar

Člen
Avatar
:3.2.2013 20:24

To mám a stále nefunguje

 
Nahoru Odpovědět
3.2.2013 20:24
Avatar
matesax
Tvůrce
Avatar
Odpovídá na
matesax:3.2.2013 20:28

Jak máš velikosti, dockování a tak? Dej do té metody MessageBox a tak otestuj, zda je volána...

 
Nahoru Odpovědět
3.2.2013 20:28
Avatar
matesax
Tvůrce
Avatar
Odpovídá na
matesax:3.2.2013 20:31
private void MoveClick(object sender, EventArgs e)
{
    string name = ((Control)sender).Name;

    imageContent.Padding = new Padding(imageContent.Padding.Left + map[name][0], imageContent.Padding.Top + map[name][1], 0, 0);

    imageContent.Refresh();
}
 
Nahoru Odpovědět
3.2.2013 20:31
Avatar

Člen
Avatar
:3.2.2013 20:31

přidal sem to do té metody a při kliknutí na tlačítko se mi messagebox ukázal..ale pohyb obrázku nebyl žádný

 
Nahoru Odpovědět
3.2.2013 20:31
Avatar
matesax
Tvůrce
Avatar
Odpovídá na
matesax:3.2.2013 20:33

Přidal jsem nad tebou Refresh - 100% půjde... :)

 
Nahoru Odpovědět
3.2.2013 20:33
Avatar

Člen
Avatar
:3.2.2013 20:35

Ano, už funguje! :) Díky moc :) Ted musím ještě zprovoznit šipky a bude to super :)

 
Nahoru Odpovědět
3.2.2013 20:35
Avatar
matesax
Tvůrce
Avatar
Odpovídá na
matesax:3.2.2013 20:41

Předělání MoveClick:

private void MoveClick(object sender, EventArgs e)
{
    MoveWithImage(((Control)sender).Name);
}

private void MoveWithImage(string name)
{
    imageContent.Padding = new Padding(imageContent.Padding.Left + map[name][0], imageContent.Padding.Top + map[name][1], 0, 0);

    imageContent.Refresh();
}

A mapu rozšiř o Key.Up/Left/Dow­n/Right...

 
Nahoru Odpovědět
3.2.2013 20:41
Avatar

Člen
Avatar
:3.2.2013 20:50

Funguje, díky moc ;-)

 
Nahoru Odpovědět
3.2.2013 20:50
Avatar
Odpovídá na matesax
Michael Olšavský:3.2.2013 20:54

Proc to dělat jednoduše, dyž to jde složitě... Zase ho tu učíš něco čemu pořádně ani nerozumí... On to měl vlastně zezačátku dobře. Stačilo přidat refresh a bylo by to. Je pravda, že s jednou akcí je to jednodušší, ale stejně . Když tomu nerozumí, tak proč mu jen nepředělat tu jeho verzi.

Myslím, že jemu může být úplně jedno jestli je to objektové nebo ne. Promiň jestli se pletu, ale myslím, že ani neví co to znamená.

Editováno 3.2.2013 20:56
 
Nahoru Odpovědět
3.2.2013 20:54
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Michael Olšavský
matesax:3.2.2013 20:55

On tam měl OnPaint - žádný PictureBox - takže opravdu jsem to udělal strašně složitě - a on to vůbec nechápe...

 
Nahoru Odpovědět
3.2.2013 20:55
Avatar
Odpovídá na matesax
Michael Olšavský:3.2.2013 20:58

To je v pohodě, ale zacházet tady až ke slovníkům, vlastním metodám a senderům ... to myslím, že už tam být nemuselo. Ale je to na něm.

 
Nahoru Odpovědět
3.2.2013 20:58
Avatar

Člen
Avatar
:3.2.2013 21:47

Je možné mít na formuláři např 2 události?..jako třeba paint a keydown??

 
Nahoru Odpovědět
3.2.2013 21:47
Avatar
Odpovídá na
Luboš Běhounek Satik:3.2.2013 21:50

samozřejmě :)

Nahoru Odpovědět
3.2.2013 21:50
https://www.facebook.com/peasantsandcastles/
Avatar

Člen
Avatar
:3.2.2013 21:52

stím sem počítal, ale mám problém, že mi událost formuláře KeyDown při stisku klávesy vůbec nic nedělá
zdroják stisku klávesy mám takový

private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            if ((e.KeyCode == Keys.A) || (e.KeyCode == Keys.Left))
            {
                x = x - 4;
                Refresh();
            }
            if ((e.KeyCode == Keys.D) || (e.KeyCode == Keys.Right))
            {
                x = x + 4;
                Refresh();
            }
            if ((e.KeyCode == Keys.W) || (e.KeyCode == Keys.Up))
            {
                y = y - 4;
                Refresh();
            }
            if ((e.KeyCode == Keys.S) || (e.KeyCode == Keys.Down))
            {
                y = y + 4;
                Refresh();
            }
        }
 
Nahoru Odpovědět
3.2.2013 21:52
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na
Petr Nymsa:3.2.2013 22:06

A máš tu událost zaregistrovanou k formuláři ?

Nahoru Odpovědět
3.2.2013 22:06
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar

Člen
Avatar
:3.2.2013 22:07

mám

 
Nahoru Odpovědět
3.2.2013 22:07
Avatar
Odpovídá na
Luboš Běhounek Satik:3.2.2013 22:17

co je to x a y?
Neměl bys na ten pohyb používat tu funkci, co tam máš?

Editováno 3.2.2013 22:18
Nahoru Odpovědět
3.2.2013 22:17
https://www.facebook.com/peasantsandcastles/
Avatar
matesax
Tvůrce
Avatar
Odpovídá na
matesax:3.2.2013 22:21

Jen přidej další mapu - rozhodně nevětvi.

 
Nahoru Odpovědět
3.2.2013 22:21
Avatar

Člen
Avatar
:3.2.2013 22:21

tohle je jiný způsob který sem chtěl zkusit..to co sem dělal s tou pomocí mi funguje ;-)..zkoušel sem to dělat přes ten keydown ale nejde tam ani messagebox..tak nevím v čem je problém

 
Nahoru Odpovědět
3.2.2013 22:21
Avatar
matesax
Tvůrce
Avatar
Odpovídá na
matesax:3.2.2013 22:40

Problém je, že KeyEvent sežere Form - nastav mu vlastnost KeyPreview:

KeyPreview = true;

Takže použij PictureBox.Ke­yDown...

Jo a jak jsem psal - používej mapu...

Editováno 3.2.2013 22:40
 
Nahoru Odpovědět
3.2.2013 22:40
Avatar
vodacek
Tvůrce
Avatar
Odpovídá na Michael Olšavský
vodacek:3.2.2013 22:45

až se ho někdo ve škole zeptá co je tady to dictionary a tady ty špičaté závorky že to se ani o hodinách nedělalo tak kolegovi mechovákovi dotyčný znovu ještě poděkuje

 
Nahoru Odpovědět
3.2.2013 22:45
Avatar

Člen
Avatar
:3.2.2013 22:51

Já sem to právě dělal uplně jinak než přes ten picturebox. Zkoušel sem to jak nám to ukazoval v hodině přes vykreslování přímo na formulář a ted mi nereagují ty tlačítka na klávesnici. Vím že to není žádný extra kód a že to není uplně všechno správně.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication18
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }


        int x = 200;
        int y = 150;
        Image obrazek = Properties.Resources.ob01;



        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            if (x > 440)
                x = -30;
            if (x < -30)
                x = 440;
            if (y > 300)
                y = -50;
            if (y < -50)
                y = 300;
            e.Graphics.DrawImage(obrazek, x, y, 36, 50);
        }

        private void button1_Click(object sender, EventArgs e)
        {
            x = x - 4;
            Refresh();
        }

        private void button3_Click(object sender, EventArgs e)
        {
            x = x + 4;
            Refresh();
        }

        private void button4_Click(object sender, EventArgs e)
        {
            y = y - 4;
            Refresh();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            y = y + 4;
            Refresh();
        }

        private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            if ((e.KeyCode == Keys.A) || (e.KeyCode == Keys.Left))
            {
                x = x - 4;
                Refresh();
            }
            if ((e.KeyCode == Keys.D) || (e.KeyCode == Keys.Right))
            {
                x = x + 4;
                Refresh();
            }
            if ((e.KeyCode == Keys.W) || (e.KeyCode == Keys.Up))
            {
                y = y - 4;
                Refresh();
            }
            if ((e.KeyCode == Keys.S) || (e.KeyCode == Keys.Down))
            {
                y = y + 4;
                Refresh();
            }
        }
 
Nahoru Odpovědět
3.2.2013 22:51
Avatar
Odpovídá na
Michael Olšavský:4.2.2013 16:37

Kód máš dobře. Nenašel jsem žádné chyby. Musí být chyba v oknu. Možná kdyby si sem nahodil i ten kód designera(for­m1.Designer.cs)

 
Nahoru Odpovědět
4.2.2013 16:37
Avatar
matesax
Tvůrce
Avatar
Odpovídá na
matesax:4.2.2013 17:08

Tvl. - psal jsem KeyPreview. Koukám, že jsi i můj kód zahodil - fajn - končím... Nezapomeň - já ničemu nerozumím!

Pro ty co to nechápou - nejsem vůbec uražený, ale k čemu ztrácet čas, když mě pak akorát ponížíte? :)

 
Nahoru Odpovědět
4.2.2013 17:08
Avatar
Don
Člen
Avatar
Odpovídá na matesax
Don:4.2.2013 17:11

Konečně jsme se dočkali. Znamená to, že tu nebudeš psát? :D

 
Nahoru Odpovědět
4.2.2013 17:11
Avatar
Kit
Tvůrce
Avatar
Odpovídá na matesax
Kit:4.2.2013 17:15

Budeš mi tu chybět.

Nahoru Odpovědět
4.2.2013 17:15
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Don
Člen
Avatar
Odpovídá na Don
Don:4.2.2013 17:45

Mlčení znamená ano :D

 
Nahoru Odpovědět
4.2.2013 17:45
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Don
Kit:4.2.2013 17:59

Nebuď na něj tak zlej. Dnes hájil čisté objektové programování a používání výjimek. Bohužel narazil na céčkaře, kteří tohle asi nikdy nepochopí.

Nahoru Odpovědět
4.2.2013 17:59
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Čápka Hartinger
Tým ITnetwork
Avatar
Odpovídá na
David Čápka Hartinger:4.2.2013 18:18

Já bych řekl, že to na formu nepůjde, klávesy přijímají prvky co mají focus a ten form mít nebude. Nechce se mi to teď zkoušet, můžeš zkusit něco jako form1.SetFocus nebo jak to tam je nebo dát tu událost s klávesami do jiné kontrolky, třeba na picturebox.

Nahoru Odpovědět
4.2.2013 18:18
You are the greatest project you will ever work on.
Avatar

Člen
Avatar
:4.2.2013 19:48

Už sem to zprovoznil, bylo to tím KeyPreview jak už bylo psáno. Přidal sem ho a vše začalo fungovat ;) Ten program který to dělal přes mapy jak mi bylo porazeno, sem odevzdal. Ten druhý program byl čistě jen na vyzkoušení jestli mi to pujde i takto ;). Díky moc všem :)

 
Nahoru Odpovědět
4.2.2013 19:48
Avatar
Ales Reitz
Člen
Avatar
Odpovídá na
Ales Reitz:22.3.2017 20:15

zdravím, chtěl bych se zeptat, jak jste dostali do kódu using.Drawing? mě to vždy vyhodí chybu i když si to tam sám připíšu

 
Nahoru Odpovědět
22.3.2017 20:15
Avatar
vajkuba1234
Člen
Avatar
Odpovídá na Ales Reitz
vajkuba1234:22.3.2017 20:48

Jakou chybu? A mas tam urcite "using System.Drawing;" namisto "using.Drawing"?

Nahoru Odpovědět
22.3.2017 20:48
No hope, no future, JUST WAR!
Avatar
Ales Reitz
Člen
Avatar
Odpovídá na vajkuba1234
Ales Reitz:22.3.2017 20:50

Ano mám to tam, ale v základu to není, musím si ty vždy připsat a píše mi to že to neexistuje, ani Windows.Forms

 
Nahoru Odpovědět
22.3.2017 20:50
Avatar
HONZ4
Člen
Avatar
Odpovídá na Ales Reitz
HONZ4:22.3.2017 21:18

Nejspíš ti tam chybí reference
References->AddReferences->Framework -> (zatrhnout System.Drawing)
(v české verzi se to jmenuje Odkazy)

Editováno 22.3.2017 21:20
 
Nahoru Odpovědět
22.3.2017 21:18
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 56 zpráv z 56.