ButtonClick innerhalb von Label1Click ausführen



  • Habe es mir angeguckt (auch vor deiner Antwort) aber ich werde darauzs nicht ganz schlau, kenne mich damit nicht richtig aus.
    Kannst du mir nicht sagen was ich da genau machen muss?



  • hallo akari

    void __fastcall TForm1::LabelClick(TObject *Sender)
    {
      Button1Click(0);
    }
    

    kannst Du mir die 0 erklären ?
    Ich habe es immer so gemacht:

    void __fastcall TForm1::LabelClick(TObject *Sender)
    {
      Button1Click(Button1);
    }
    

    Danke



  • Hallo

    @ N00B_N00B : Der Compiler sagt dir, das die aufzurufende Methode mehr Argumente benötigt. Also schau dir an, was für Parameter die fragliche Methode besitzt und was du noch zusätzlich zu dem ersten Argument (der 0) übergeben kannst/mußt.

    @ OldMan00 :
    Die 0 ist sozusagen ein leerer Pointer. Du kannst natürlich genauso gut eine konkrete Instanz wie Button1 übergeben. Wenn du in dem Button1Click den Sender auswerten willst, must du das sogar.
    Mit der 0 habe ich in meinen Projekten immer signalisiert, das der Event nicht vom benutzer direkt, sondern von anderen Methoden aus aufgerufen wurde. Das ist nur selten nötig, manchmal aber hilfreich.

    bis bald
    akari



  • Also ich muss da mehr oder weniger raten
    Bisher habe ich es so:

    lab_loginMouseUp(0,WM_LBUTTONUP);
    

    obs bis hier richtig ist weiß ich nicht
    Aber was muss ich für TShiftState Shift und int x und int y angeben?

    Danke



  • Button1->Click();
    


  • Hi,

    du siehst doch, was für Parameter in den Klammern (hinten), in die Funktionen
    hinein zeigen (alle mit * &), die ander werden übergeben.
    z.B

    void __fastcall TForm1::Button1MouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y)
    {
    
    }
    

    Bei Button1MouseUp(); fehlen die Parameter die erwartet werden.
    Deshalb die Fehlermeldung.

    So wie es aus sieht sind dir dies Parameter egal (brauchst sie nicht 🙂 )
    Mach dir eine extra neue Member-Funktion in der Form mit dem Inhalt von Button1MousUP.

    [cpp]z.B

    in unit.h

    private:
    void funktion();

    in unit.cpp

    void TForm1::funktion()
    {
    Button1->Click();
    }

    void __fastcall TForm1::Button1MouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y)
    {
    funktion();
    }

    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    funktion();
    }
    [/cpp]

    Grüsse



  • Danke, vorallem für das Beispiel ohne das ich jetzt aufgegeben hätte ^^



  • Hi,

    wenn du das von mir meinst.
    Da ist eine Endlosschleife drin, wenn du Button1 Clickst...

    🙂

    Grüsse



  • @akari
    danke 🙂



  • steinsoft schrieb:

    Hi,

    wenn du das von mir meinst.
    Da ist eine Endlosschleife drin, wenn du Button1 Clickst...

    🙂

    Grüsse

    naja habs schon anders gemacht^^


Anmelden zum Antworten