"Button gedrückt" in if-Bedingung ?
-
Hallo,
wie kann ich es erreich, dass wenn z.B. ein Button gedrückt ein anweisungs Block ausgeführt wird ?(Ich meine nicht in der ButtonClick Methode, sondern z.B. in einer if-Bedingung)
if(Button1->/*Ja wie geht das*/) { //Anwesiung }mfg
Burnie
-
Hallo
Ein normaler Button ist nur während der OnClick-Methode gedrückt.

Wenn du aber zu einem späteren Zeitpunkt aber wissen willst ob ein Button gedrückt wurde, must du im OnClick des Buttons ein Flags setzten das du dann in der andern Methode auswerten kannst. Dazu brauchst du eine Member-Variable des Forms, zum Beispiel vom Typ bool. Beim Start des Forms setzt du die auf false, im Button-OnClick auf true. Nun kannst du auf diese Variable an beliebiger Stelle eine Bedingung machen.bis bald
akari
-
Hallo,
ich bin relativ neu im Programmieren. Das hört sich so "kompliziert" an geht das nicht irgendwie anders ??
mfg
-
Unit1.h
//--------------------------------------------------------------------------- #ifndef Unit1H #define Unit1H //--------------------------------------------------------------------------- #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> //--------------------------------------------------------------------------- class TForm1 : public TForm { __published: // Von der IDE verwaltete Komponenten TButton *Button1; TButton *Button2; void __fastcall FormCreate(TObject *Sender); void __fastcall Button1Click(TObject *Sender); void __fastcall Button2Click(TObject *Sender); private: // Anwender-Deklarationen public: // Anwender-Deklarationen __fastcall TForm1(TComponent* Owner); //hier dein Flag bool btngedrueckt; }; //--------------------------------------------------------------------------- extern PACKAGE TForm1 *Form1; //--------------------------------------------------------------------------- #endifUnit1.cpp
//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { //Flag im Konstruktor auf false setzen btngedrueckt=false; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { //Button wird gedrückt Flag setzen btngedrueckt=true; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { //Wenn Flag gesetzt (true) dann Meldung ausgeben if(btngedrueckt) Application->MessageBoxA("Button wurde schon gedrückt","Meldung",MB_ICONINFORMATION); } //---------------------------------------------------------------------------
-
akari meint sowas hier, das hört sich vielleicht für dich nur schwerer an als es in Wirklichkeit ist:
TForm1 *Form1; bool blButtonPressed; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { //here we go blButtonPressed = true; }mit der variable blButtonPressed kannst du nun eine Schleife bauen:
if (blButtonPressed) { }oder eben if (!blButtonPressed)
Musst dir halt nur überlegen wie die blButtonPressed wieder auf false gesetzt wird.
Du kannst auch mit OnKeyDown und OnKeyUp arbeiten.MfG
TippokratesEdit: da war ich einen kleinen Moment zu spät ^^
-
Du könntest auch ganz einfach z.B. die Button->Tag Variable auf 1 setzten wenn der Button gedrückt wird, so kannst Du dann von überall her diese Variable abfragen.