x-kom hosting

[C++ builder] Wyrażenie - kliknięcie

andrix224
utworzono
utworzono

Wykonuje swoją drugą wersję kalkulatora w c++ builder. Potrzebna jest następująca instrukcja:

jeśli kliknę w button1 to

---wyrażenie c++---

Chodzi o to, że to nie jest główna funkcja typu void fastcall Click*Sender, tylko ta instrukcja warunkowa jest zagnieżdzona jakby w tej głównej funkcji.

Proszę o pomoc!

Archimedes
komentarz
komentarz

Chodzi o void main? Napisz trochę jaśniej.

andrix224
komentarz
komentarz

to wyjaśnię. Chce taką instrukcje warunkową:

jeżeli nacisnę przycisk w programie (załóżmy Button1) to program wykona napisane polecenie (na przykład wyświetli napis w polu np. "wynik") Instrukcja do c++ buildera

chodzi też o to, żeby nie była to instrukcja, jaką program mi wyświetli gdy dwa razy kliknę w przycisk w C++ builder oknie "Design"

Archimedes
komentarz
komentarz

Utwórz zmienną, do zmiennej przypisz ten tekst i później:

Label1->Caption = zmienna;

Przedstawiłem na labelu a nie jakimś design bo tak naprawde nie pisałem nigdy w builderze ale tak to rozumuje.

andrix224
komentarz
komentarz

wiem jak wyświetlić napis w jakimś polu. Chce tylko wiedzieć coś takiego. JEŻELI PRZYCISNĘ PRZYCISK to wyświetlę ten napis. Chodzi o samą konstrukcję JEŻELI PRZYCISNĘ PRZYCISK. resztę wiem.

Jak mówie nie może być to podstawowe wywołanie przycisku, czyli jak kliknę dwa razy w przycisk w c++ builderze.

Archimedes
komentarz
komentarz

Sprawdz takie coś:

if(button1->OnClick=OnClick){instrukcje}else {coś tam}
andrix224
komentarz
komentarz (edytowane)
//---------------------------------------------------------------------------#include <vcl.h>#pragma hdrstop#include "Unit1.h"//---------------------------------------------------------------------------#pragma package(smart_init)#pragma resource "*.dfm"TForm1 *Form1;//--------------------------------------------------------------------------- double x, y, z;__fastcall TForm1::TForm1(TComponent* Owner)	: TForm(Owner){}//---------------------------------------------------------------------------void __fastcall TForm1::Button2Click(TObject *Sender){x=StrToFloat(liczba->Text);   if(Button14->OnClick=OnClick)   {   y=StrToFloat(liczba->Text);   z=x+y;   liczba->Text=z;   }   x=0;   y=0;   z=0;}//---------------------------------------------------------------------------

zrobiłem coś takiego i wyświetla mi takie błędy:

[C++ Error] Unit1.cpp(23): E2492 Properties may only be assigned using a simple statement, e.g. "prop = value;"

[C++ Warning] Unit1.cpp(23): W8060 Possibly incorrect assignment

[C++ Error] Unit1.cpp(23): E2369 Cannot use the result of a property assignment as an rvalue

----------------------------------------------------------------------------------------------------------------------------------

Spróbuję mój problem to jeszcze uprościć, aby każdy zrozumiał.

Instrukcja warunkowa składa się z:

-if

-warunku

-wyrażenia wykonywanego w razie spełnienia warunku

-ewentualnie instrukcje else itp.

Ja potrzebuje tylko jednego składnika: WARUNKU. Warunkiem ma być kliknięcie w przycisk (Button14). Tylko nie wiem jak to zapisać.

rafalluz
komentarz
komentarz

spróbuj '==' zamiast '=' w linii (23)

A dlaczego nie może być to w handlerze zdarzenia OnClick?

andrix224
komentarz
komentarz

zrobiłem to co kazałeś czyli == zamiast =

i nie rozpoznaje warunku

od razu robi to co ma być w warunku mimo że ten warunek jest niespełniony

  • 2 tygodnie później...
MarekM25
komentarz
komentarz (edytowane)

no to tak:

*klikasz dwa razy w button1 i worzysz domyślną metodę zdarzeniową

*tutaj nie musisz już wtedy tworzyć warunku

*zdarzenie wystąpiło, czyli kliknięcie automatycznie powoduje uruchomienie kodu zdarzenia

*potem w polu zdarzenia wpisujesz to co chcesz(już bez warunku)

Nie wiem czy dobrze wytłumaczyłem, ale jak coś to pisz

Na pewno jak dobrze zrobisz i zrozumiesz mnie to podziała:)

aha chyba źle Cię zrozumiałem:P

Wciąż szukasz rozwiązania problemu? Napisz teraz na forum!

Możesz zadać pytanie bez konieczności rejestracji - wystarczy, że wypełnisz formularz.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Strona wykorzystuje pliki cookies w celu prawidłowego świadczenia usług i wygody użytkowników. Warunki przechowywania i dostępu do plików cookies możesz zmienić w ustawieniach przeglądarki.