Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++ Builder] Problem ze stworzeniem kalkulatora

Ostatnio zmodyfikowano 2012-03-23 08:34
Autor Wiadomość
sikora9300
Temat założony przez niniejszego użytkownika
[C++ Builder] Problem ze stworzeniem kalkulatora
» 2012-03-20 15:38:36
hej, mam do zrobinia kalkulator na zasadzie tego systemowego, i na samym początku mam już problem nie wiem jak wprowadzić liczby za pomocą Button'ów, (jak klikam na 1 to żeby w polu Edit1 pojawiła się jedynka, analogicznie do reszty liczb), mam dwa pola Edit1 i Edit2 i po kliknięciu na Edit1 liczby mają być wprowadzane do Edit1, a po kliknięciu na Edit2 to dane mają być wprowadzane do Edit2, kod który napisałem działa, ale po kliknięciu ne Edit2 liczby nadal są wprowadzane do Edit1, jak to zmienić??
C/C++
void __fastcall TForm1::Edit1Change( TObject * Sender )
{
    ktory = 1;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Edit2Change( TObject * Sender )
{
    ktory = 2;
}

//przycisk po kliknięciu którego mają być wprowadzane dane do Edit1 lub do Edit2 w zależności którego klikniemy
void __fastcall TForm1::Button15Click( TObject * Sender )
{
    if( ktory == 1 )
    {
        Edit1->Text = Edit1->Text + '0';
    }
    else
    if( ktory == 2 )
    {
        Edit2->Text = Edit2->Text + '0';
    }
}
P-52972
m4tx
» 2012-03-20 16:22:35
» KursyKurs C++ kurs
» KursyKurs STC kurs

I popraw nazwę tematu...
P-52974
malan
» 2012-03-20 18:05:53
Nie możesz odczytać, który przycisk został wciśnięty z obiektu
Sender
?
P-52977
akwes
» 2012-03-20 20:51:47
Nawet nie sprawdziłeś czy złapanie fokusu przez Edit2 wywołuje zdarzenie OnChange. Otóż nie wywołuje tego zdarzenia, toteż przypisanie dwójki do zmiennej nigdy nie następuje. Lepiej użyj zdarzenia OnClick.

I również jak kolega wyżej. To powinno być obsługiwane przez Sendery (no ale znów wyrażając pogardę do nauczycieli muszę zauważyć, że moja nauczycielka nie wiedziała do czego to służy, więc i może tak jest w tym przypadku).
P-53000
sikora9300
Temat założony przez niniejszego użytkownika
» 2012-03-23 03:18:54
Dzięki ale mógłbyś podać przykład użycia OnClick??
P-53116
akwes
» 2012-03-23 08:34:14
...?

Jeżeli funkcja powstanie przez kliknięcie:

C/C++
void __fastcall TForm1::Edit2Click( TObject * Sender )
{
    ktory = 2;
}

lub jeżeli nie chcesz jej tworzyć zakładkę events
C/C++
void __fastcall TForm1::TwojaFunkcja( TObject * Sender )
{
    //...
    // z deklaracją funkcji w klasie TForm1 oczywiście (dla Ciebie będzie to pewnie plik Unit1.h)
}
__fastcall TForm1::TForm1( TComponent * Owner )
    : TForm( Owner )
{
    // i np. w konstruktorze klasy
    Edit2->OnClick = TwojaFunkcja;
}
P-53117
« 1 »
  Strona 1 z 1