Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kako da uradim ovo?

[es] :: C/C++ programiranje :: Kako da uradim ovo?

[ Pregleda: 2720 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

LSDCracker
Obrisan Profil

Član broj: 161168
Poruke: 62



Profil

icon Kako da uradim ovo?19.05.2008. u 15:31 - pre 193 meseci
Treba mi sledece:
Pravim kalkulator i sad mi treba kod koji ce da radi slece, u eventu forme onkeyup da mi nadje koji je to taster pritisnut i onda da taj button koji je vezan za taj taster izgleda pritisnuto, a da onda izvrsi sve sto treba da uradi kada je to dugme u putanju.
Znaci imam na formi 10 tastera za brojeve, +,-,*,/ i =
Sad zelim da kad korisnik pritisne taster 1 na tastaturi program prikaze da je taster 1 pritisnut, onda doda broj 1 editu.
To bi bilo to. Verovatno znate, zato i pitam :)
 
Odgovor na temu

Sima_Strahota89
Nisam zaposlen
Bačka Palanka

Član broj: 180588
Poruke: 27
*.dialup.neobee.net.



Profil

icon Re: Kako da uradim ovo?19.05.2008. u 17:34 - pre 193 meseci
Citat:
...Znaci imam na formi 10 tastera za brojeve, +,-,*,/ i =...


Dodaj i taster "," (zapeta) trebace ti za decimalne brojeve.

Citat:
...Sad zelim da kad korisnik pritisne taster 1 na tastaturi program prikaze da je taster 1 pritisnut...


Zasto bi pokazivao da je taster 1 pritisnut kada ce ti se 1 pojaviti u editu?

Citat:
...onda doda broj 1 editu....


Edit1->Text=Edit1->Text+"1";

 
Odgovor na temu

Mijalko
Aleksandar Mijalkovic
Nis

Član broj: 17130
Poruke: 12
79.101.138.*

ICQ: 86950600
Sajt: mijalko.blogspot.com


Profil

icon Re: Kako da uradim ovo?20.05.2008. u 08:09 - pre 193 meseci
Mislim da ce morati da pravis ownerdraw dugmice.
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.tekostolac.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: Kako da uradim ovo?20.05.2008. u 09:54 - pre 193 meseci
Citat:
LSDCracker: Treba mi sledece:
Pravim kalkulator i sad mi treba kod koji ce da radi slece, u eventu forme onkeyup da mi nadje koji je to taster pritisnut i onda da taj button koji je vezan za taj taster izgleda pritisnuto, a da onda izvrsi sve sto treba da uradi kada je to dugme u putanju.
Znaci imam na formi 10 tastera za brojeve, +,-,*,/ i =
Sad zelim da kad korisnik pritisne taster 1 na tastaturi program prikaze da je taster 1 pritisnut, onda doda broj 1 editu.
To bi bilo to. Verovatno znate, zato i pitam :)

Drugim rečima, treba ti sve, kao kod "klin čorbe" ;)

Citat:
Mijalko: Mislim da ce morati da pravis ownerdraw dugmice.

Ne. Nemojte da hulite ovaj alat. Borland C++ Builder ima sasvim dovoljno gotovih tipova dugmadi da ne treba owner drawn dugme za Down state.

Evo, ja ću ti započeti zadatak (staviću i u attachment), pa ti nastavi dalje:
Code:

__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
   // U Object Inspectoru-u ili ovde postavi sve TSpeedButton-e da imaju GroupIndex = 1
   // U Object Inspectoru-u ili ovde postavi sve TSpeedButton-e da imaju AllowAllUp = true
   // U Object Inspectoru-u ili ovde postavi Edit1::ReadOnly=true;
   // U Object Inspectoru-u ili ovde postavi Form1::KeyPreview=true;
}

void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
    TSpeedButton *MojObjekat = NULL;
    switch ( Key )
    {
        case VK_NUMPAD0 : MojObjekat = D0SpeedButton; break;
        case VK_NUMPAD1 : MojObjekat = D1SpeedButton; break;
        case VK_NUMPAD2 : MojObjekat = D2SpeedButton; break;
        case VK_NUMPAD3 : MojObjekat = D3SpeedButton; break;
        case VK_NUMPAD4 : MojObjekat = D4SpeedButton; break;
        case VK_NUMPAD5 : MojObjekat = D5SpeedButton; break;
        case VK_NUMPAD6 : MojObjekat = D6SpeedButton; break;
        case VK_NUMPAD7 : MojObjekat = D7SpeedButton; break;
        case VK_NUMPAD8 : MojObjekat = D8SpeedButton; break;
        case VK_NUMPAD9 : MojObjekat = D9SpeedButton; break;
    }

    if ( MojObjekat )
    {
       MojObjekat->Down = true;
       Edit1->Text = Edit1->Text + MojObjekat->Caption;
    }
}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormKeyUp(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
    TSpeedButton *MojObjekat = NULL;
    switch ( Key )
    {
        case VK_NUMPAD0 : MojObjekat = D0SpeedButton; break;
        case VK_NUMPAD1 : MojObjekat = D1SpeedButton; break;
        case VK_NUMPAD2 : MojObjekat = D2SpeedButton; break;
        case VK_NUMPAD3 : MojObjekat = D3SpeedButton; break;
        case VK_NUMPAD4 : MojObjekat = D4SpeedButton; break;
        case VK_NUMPAD5 : MojObjekat = D5SpeedButton; break;
        case VK_NUMPAD6 : MojObjekat = D6SpeedButton; break;
        case VK_NUMPAD7 : MojObjekat = D7SpeedButton; break;
        case VK_NUMPAD8 : MojObjekat = D8SpeedButton; break;
        case VK_NUMPAD9 : MojObjekat = D9SpeedButton; break;
    }

    if ( MojObjekat )
    {
       MojObjekat->Down = false;
    }
}


Ostale Virtual Code ID-je koji ti zatrebaju (backspace, obične brojeve koji nisu na numeric tastaturi i sl) pogledaj u BCB Helpu: Virtual key codes
Prikačeni fajlovi
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.tekostolac.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: Kako da uradim ovo?20.05.2008. u 10:13 - pre 193 meseci
A kad budeš hteo da uključiš i miša, kao paralelno sredstvo za unos brojeva, napravi dve metode:
OnSpeedButtonMouseDown
OnSpeedButtonMouseUp
... na samo jednom TSpeedButton dugmentu:
Code:

void __fastcall TForm1::D7SpeedButtonMouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
    TSpeedButton *KojiTasterJePritisnut = dynamic_cast<TSpeedButton *>(Sender);

    if ( KojiTasterJePritisnut )
    {
       KojiTasterJePritisnut->Down = true;
       Edit1->Text = Edit1->Text + KojiTasterJePritisnut->Caption;
    }
}

void __fastcall TForm1::D7SpeedButtonMouseUp(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
    TSpeedButton *KojiTasterJePritisnut = dynamic_cast<TSpeedButton *>(Sender);

    if ( KojiTasterJePritisnut && Button == mbRight )
    {
        KojiTasterJePritisnut->Down = false;
    }
}

... i samo ih pridruži ostalim tasterima (ne treba da kopiras ovaj kod za svaki taster, samo selektuj iz padajuce liste u dogadjajima).
 
Odgovor na temu

LSDCracker
Obrisan Profil

Član broj: 161168
Poruke: 62



Profil

icon Re: Kako da uradim ovo?20.05.2008. u 15:08 - pre 193 meseci
Hvala vam momci puno, od dalje mogu sam :)
 
Odgovor na temu

[es] :: C/C++ programiranje :: Kako da uradim ovo?

[ Pregleda: 2720 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.