Chartfx1->Value[0] = xx; durch eine Edit1 eigabe einfügen



  • //---------------------------------------------------------------------------
    
    #include <vcl.h>
    #pragma hdrstop
    
    #include "Unit1.h"
    
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    Chartfx1->OpenDataEx(COD_VALUES,2,5);
    
    Chartfx1->ThisSerie = 0;
    Chartfx1->Value[0] = 30;
    Chartfx1->Value[1] = 20;
    Chartfx1->Value[2] = 40;
    Chartfx1->Value[3] = 60;
    Chartfx1->Value[4] = 50;
    
    Chartfx1->CloseData(COD_VALUES);
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::Edit1Change(TObject *Sender)
    {
    
    }
    //---------------------------------------------------------------------------
    

    ich wieder, jemand nen tip für mich wie ich :

    Chartfx1->ThisSerie = 0;
    Chartfx1->Value[0] = xx; wo xx steht soll ein fach die zahlen eingabe von einer Edit1 rein komme.

    ...
    ...

    für nen kleinen netten tip wer ich sehr dankbar 🤡


  • Mod

    Hallo

    verstehe ich richtig (nur die Zuweisung des Edits) 😕

    sollte so funktionieren
    Chartfx1->Value[0] = Edit1->Text.ToIntDef(0);
    oder
    Chartfx1->Value[0] = Edit1->Text.ToInt();

    MfG
    Klaus



  • jow danke geht jetzt auch 1a THX

    //---------------------------------------------------------------------------
    
    #include <vcl.h>
    #pragma hdrstop
    
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    Chartfx1->Visible = !Chartfx1->Visible;
    
    Chartfx1->OpenDataEx(COD_VALUES,2,5);
    
    Chartfx1->ThisSerie = 0;
    Chartfx1->Value[0] = Edit1->Text.ToInt();
    Chartfx1->Value[1] = Edit2->Text.ToInt();
    Chartfx1->Value[2] = Edit3->Text.ToInt();
    Chartfx1->Value[3] = Edit4->Text.ToInt();
    Chartfx1->Value[4] = Edit5->Text.ToInt();
    
    Chartfx1->CloseData(COD_VALUES);
    
    }
    
    //---------------------------------------------------------------------------
    

    hast du auch ne idee wie ich es am besten mache, wenn kein wert in eine von den Edit`s eigetragen ist ? das da ne ShowMessage kommt oder so. ich hab es schon mit na if.schleife versucht sprich

    if(Edit1 == "")
    {
    ShowMessage();
    }
    else
    {
    Chartfx1->ThisSerie = 0;
    Chartfx1->Value[0] = Edit1->Text.ToInt();
    Chartfx1->Value[1] = Edit2->Text.ToInt();
    Chartfx1->Value[2] = Edit3->Text.ToInt();
    Chartfx1->Value[3] = Edit4->Text.ToInt();
    Chartfx1->Value[4] = Edit5->Text.ToInt();

    }



  • |23| schrieb:

    wo xx steht soll ein fach die zahlen eingabe von einer Edit1 rein komme.

    Nochmal zur Verinnerlichung: im Edit stehen keine Zahlen, dort stehen nur Zeichen. Deshalb muss der Edit-Inhalt ggf. explizit in Zahlenwerte umgewandelt werden, z.B. mit ToInt().

    Zu deiner letzten Frage:
    Pack die Edits alle auf ein gemeinsames Panel (ggf. ohne Border, also unsichtbar), dann kannst du sie leicht in einer Schleife abarbeiten und musst nicht die komplette Liste in den Quelltext schreiben.

    // alle Controls auf dem Panel abklappern
      for (int i = 0; i < Panel1->ControlCount; i++)
      {
        // temporäres TEdit-Objekt erzeugen und dem aktuellen Control des Panels zuweisen
        TEdit *ed = dynamic_cast<TEdit*>(Panel1->Controls[i]);
        if (ed) // wenn Zuweisung erfolgreich
        {
          // hier könnte erst noch eine Prüfung auf zulässigen Edit-Inhalt stehen
    
          // jetzt Inhalt übergeben
          Chartfx1->Value[i] = ed->Text.ToInt();
        }
      }
    

    Und noch eine Bitte zu deinen Code-Beispielen: bitte beschränke sie auf das wesentliche. Wir müssen nicht jedesmal die Standardzeilen wie die include-Liste, den Form-konstruktor usw. sehen.



  • Hi,

    |23| schrieb:

    if(Edit1 == "") ...

    das funktioniert nicht. Edit1 ist nie "" höhstens der Text von dem Edit....

    MfG

    Alexander Sulfrian


Log in to reply