Mit Button arbeiten



  • Hallo,

    ich möchte jedesmal wenn ich den selben Button drücke das etwas bestimmtes passiert.

    Wie würde in CBuilder der Code in etwa aussehen?

    Also in etwa ist es so gemeint z.B:

    wenn Button geklickt ändert sich die Farbe rot.
    wenn Button noch mal geklickt, wird die Farbe wieder grau.

    kann mir jemand ein kurzes Codebeispiel geben?

    Vielen Dank

    LG
    Eliza



  • Hallo

    Kommt natürlich sehr drauf an, wie diese Farbe abfragbar ist, und wie viele verschiedene Farben berücksichtigt werden sollen.
    Für zwei Farben sieht es ganz einfach aus :

    void __fastcall TForm1::Button(...)
    {
      if (Farbe == clRed)
        Farbe = clGreen;
      else
        Farbe = clRed;
    }
    

    bis bald
    akari



  • Hallo akari,
    danke für deine Antwort, dass war nur ein Beispiel dass mit den Farben.

    In Wirklichkeit möchte ich sobald ich den Button klicke das ein bestimmter Text in einem Memofeld ausgegeben wird. Wenn ich den selben Button erneut Klicke soll der nächste Text ausgegeben werden.

    die Texte werden mit einer Schleife durchlaufen.
    Aber wie stelle ich das an?

    Es gibt ja keine Funktion if(Button.click()) dann gib Text1 aus
    Button nochmal geklickt, dann gibt Text2 aus u.s.w

    vielleicht kannst du mir helfen. Danke



  • Hallo

    - Pack die Texte in ein AnsiString-Array (oder eine TStringList-Instanz), das als Member des Forms deklariert ist
    - Deklarier zusätzlich noch eine int-Variable (m_counter) als Member des Forms, das den Index des gerade angezeigten Testes beinhaltet. Diese Variable muß im Konstruktor des Forms mit 0 initialisiert werden.
    Dann sieht die Button-Methode einfach aus :

    void __fastcall TForm1::Button(...)
    {
      m_counter++;
      if (m_counter >= Anzahl_Texte)
        m_counter = 0;
      Memo1->Text = m_array[m_counter);
    }
    

Log in to reply