Wert eines Buttons in einem textfeld anzeigen



  • Ich mein ich hab da ja nicht so die Ahnung von

    Scheinbar noch weniger als der Falke...



  • Der Sinn dieses Forums ist es nicht den Leuten fertigen Code zum Kopieren
    zu geben, den sie dann übernehmen ohne ihn zu verstehen.

    Der Sinn ist es den Leuten unter die Arme zu greifen um der Lösung näher
    zu kommen. Hier wurden Komponenten auf die Form gezogen die Später ein
    Programm darstellen und der Code dazu muß selbst geschrieben werden, das
    macht der BCB nicht.

    aber erklärt mir mal was das Programm "hello World" mit der Programmierung mit ner Windowsähnlichen Oberfläche zu tun hat. Ich mein er benutzt doch Buttons wenn ich das richtig verstanden habe.

    Wie soll ich das Verstehen?
    Wer den BCB hat und Buttons benutzt braucht keinen C++ Code mehr zu schreiben?
    Warum heißt er dann C++Builder?

    Der BCB stellt Komponenten zur Verfühgung, wie Buttons etc. das sind Klassen,
    wie andere Klassen in C++ auch (mit dem Unterschied das diese in ObjectPascal
    geschrieben sind) um diese Klassen instanzieren zieht man sie auf die Form,
    aber um diese zu Verwenden muß mann in C++ den entsprechenden Code
    schreiben.

    class Zaehlwerk
    {
    private:
        int Zaehler;
    public:
        Zaehlwerk()
        {
            Zaehler = 0;
        }
        Aufzaehlen(int a)
        {
            Zaehler += a;
        }
        Abzaehlen(int b)
        {
            Zaehler -= b;
        }
        int AktuelleZahl()
        {
            return Zaehler;
        }
    };
    
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
            Zaehlwerk->Aufzaehlen(1);
            Edit1->Text = IntToStr(Zaehlwerk->AktuelleZahl());
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::Button2Click(TObject *Sender)
    {
            Zaehlwerk->Abzaehlen(1);
            Edit1->Text = IntToStr(Zaehlwerk->AktuelleZahl());
    }
    //---------------------------------------------------------------------------
    

    Und wenn man jetzt nicht Versteht was da passiert, bzw. gemacht wurde, dann
    sollte man (in jedem Fall) mit "Hello World" anfangen!

    gruß Micha



  • Ich weiß aber das es eine Möglichkeit gibt das so in der Art zu mchen denn ich habe es sleber schon einmal gemacht. Das ist leider nur zu lange her als das ich noch genau weiß wie das geschrieben wird.

    Aber wenn es so falsch ist. Schreibt doch endlich mal ein Beispiel oder ist das ein Forum wo dümme Sprüche abgegebn werden anstatt zu helfen *g*



  • Wie wär's mit 3 mal "void"?



  • .. die mir it ihren überaus nützlichen Tips zur Seite stande. Mein besonderer Dank geht an promicha der sich nach langem hin und her doch dazu bereit erklärt hat ein beispiel zu zeigen.

    Ich wußte nicht das ihr hier im forum schon an der Frage sehen könnt was es für ein Programm wird und von daher schon den Code schreiben könntet und mir von daher keine Beispiele geben könnt/wollt *g* Habe aber nie vorgehabt das Programm anhand von Copy und Paste zu schreiben.

    Sonst würd ich die Programmstellung nämlich unter Projekte posten und warten bis jemand was fertiges hat, und ich würd emir schon gar nicht den BCB kaufen.

    Thx an alle



  • ... die mir etwas einfacher erscheint

    Fände es gut wenn ihr mir sagen würdet ob es daran etwas auszusetzten gibt oder ob man das so machen kann.
    Funktionieren tut es auf jeden Fall

    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    Parkzeit = Parkzeit + Takt;
    Edit1 -> Text = Parkzeit;
    
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::Button2Click(TObject *Sender)
    {
    Parkzeit = Parkzeit - Takt;
    Edit1 -> Text = Parkzeit;
    }
    

    Greetz



  • WebFritzi schrieb:

    Wie wär's mit 3 mal "void"?

    😃 in der Eile, wenn man schnell ein Roman schreibt?

    Also logisch, bitte void mit vor den Funktionen (in der Klasse) sonst giebts
    Fehlermeldungen.



  • Parkzeit = Parkzeit + Takt; 
    Edit1 -> Text = Parkzeit;
    

    Edit1->Text ist vom Typ "AnsiString"
    Parkzeit, denke ich mal "int"
    Da giebts ne Fehlermeldung
    Verwende IntToStr()



  • promicha schrieb:

    Edit1->Text ist vom Typ "AnsiString"
    Parkzeit, denke ich mal "int"
    Da giebts ne Fehlermeldung

    Nö.



  • Man lernt nie aus, Edit1->Text erwartet AnsiString nimmt aber auch
    Integer an.
    Ich gewöhne mir aber IntToStr() nicht ab, ich will mein Code ja noch
    lesen können und nicht raten ob ne Variable int oder AnsiString ist.



  • falke_21 schrieb:

    ... die mir etwas einfacher erscheint

    Fände es gut wenn ihr mir sagen würdet ob es daran etwas auszusetzten gibt oder ob man das so machen kann.
    Funktionieren tut es auf jeden Fall

    [code]void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    Parkzeit = Parkzeit + Takt;
    Edit1 -> Text = Parkzeit;
    .....

    Kann man, ob man soll???

    Wenn dein Code umfangreicher wird verlierst du den Überblick, z.B.
    Parkzeit1, Parkzeit2 etc.
    Klassen behalten den Überblick und können auch woanders verwendet
    werden.
    Wenn du mehre Nutzer hast, kannst du z.B. so machen

    Parkautomat *Benutzer[Anzahl_Benutzer]; //die Klasse wäre Parkautomat
    for (int i;i<Anzahl_Benutzer;i++) {
        Benutzer[i] = new Parkautomat();
    }
    //und kannst dann z.B. so zugreifen:
    Benutze[3]->Parkzeit += Takt;
    


  • promicha schrieb:

    Man lernt nie aus, Edit1->Text erwartet AnsiString nimmt aber auch
    Integer an.
    Ich gewöhne mir aber IntToStr() nicht ab, ich will mein Code ja noch
    lesen können und nicht raten ob ne Variable int oder AnsiString ist.

    Find ich auch besser.


  • Mod

    Hallo

    besser waere am Variablennamen zu erkennen ob es ein Integer oder ....
    ist

    Mfg
    Klaus



  • Das ist Ansichtssache, lieber Klaus. 😉



  • @Klaus
    schreibst du:

    int int_wert_zum_aufzaehlen;
    ...
    Edit1->Text = int_wert_zum_aufzaehlen; //aha hier ist ein Integer
    

    ist dann nicht das:

    int Zaehler;
    ...
    Edit1->Text = IntToStr(Zaehler); //aha ein Integer ist es der zum String wird
    

    besser?

    Und "IntToStr()" bremst in diesen Moment auch nichts aus, den Edit1->Text
    ruft diese auf wenn ein int kommt, daher bleibt es gleich.



  • Nein, er meint sowas wie

    Edit1->Text = IntToStr(iParkzeit);
    


  • WebFritzi schrieb:

    Nein, er meint sowas wie

    Edit1->Text = IntToStr(iParkzeit);
    

    Ja gut sowas benutze ich öffters mal in Funktionen um das zuordnen zu können,
    ala:

    slDaten //StringList;
    sDaten //AnsiString;
    dtZeit // DateTime;
    iCount // integer;
    ... // usw.
    

    also ansich gar nicht so falsch, in meinen Augen, aber auf "IntToStr()"
    verzichte ich denoch nicht, ob ich es nun aufrufe oder ein property da
    ist es mir lieber ich mach es und sehe beim Code lesen sofort was los ist.


  • Mod

    Hallo

    um Verzicht auf IntToStr gieng es mir ueberhaupt nicht nur um "sprechende Variable" (siehe zB. iParkZeit)

    Jeder (fremde) kann sofort den Typ der Variablen erkennen

    MfG
    Klaus


Anmelden zum Antworten