Kleiner Schönheitsfehler im StringGrid



  • Hallo zusammen,
    ich habe folgendes Problem. Mittels einer Methode (A_Q) werden Werte berechnet, die ich in einer Wertetabelle (StringGrid) darstellen möchte. Dies wird mittels einer for-Schleife erledigt. Das "i" ist jedoch auch für die Spalten und Zellen der StringGrid zuständig. Hier mal der Quelltext:

    void __fastcall TCelirity::Table3 (TStringGrid *grid)
    {
     float h = h__inkrement (15);
      for (float i = 1; i < 15; i+=h)
      {
       A_Q (i);
       grid->Cells[0][i] = "y = " + FloatToStrF (i, ffNumber, 8, 2); //i ist für 
       grid->Cells[1][i] = FloatToStrF (A, ffNumber, 8, 2);      //StringGrid zu-
      }                              //ständig und ist nicht immer eine ganze Zahl  
    }                          //Der Grund ist das h (Inkrement).
    

    Das Problem ist, dass i in erster Hinsicht für A_Q gebraucht wird, die A zurückgibt. Weiterhin wird i auch in der Methode Cells verwendet. Nun ist es so, dass i nich immer eine ganze Zahl ist, was bewirkt, dass manchmal eine Zeile einfach leer bleibt, da sie übersprungen wird.

    Leider hab ich es noch nich geschafft dieses Problem zu lösen. Fest steht, dass ich eine andere Variable einführen muss, die für grid->Cells ist. Ich habe an eine weitere for-Schleife gedacht, die parallel einfach in Einserschritten aufzählt:

    void __fastcall TCelirity::Table3 (TStringGrid *grid)
    {
     float h = h__inkrement (15);
     for (float i = 1; i < 15; i+=h)
     {
      A_Q (i);
      for (int I = 1; I < 15; I++)
      {
       grid->Cells[0][I] = "y = " + FloatToStrF (i, ffNumber, 8, 2);
       grid->Cells[1][I] = FloatToStrF (A, ffNumber, 8, 2);
      }
     }
    }
    

    Das funktioniert so aber auch nicht. Dabei erhalte ich für jede Zeile nur den gleichen Wert.
    Ich hoffe, dass ich mir helfen könnt und das ihr mein Problem versteht.
    Vielen Dank
    lg, freakC++



  • du kannst mal folgendes versuchen

    void __fastcall TCelirity::Table3 (TStringGrid *grid) 
    { 
    int zelle = 0;
     float h = h__inkrement (15); 
      for (float i = 1; i < 15; i+=h) 
      { 
       zelle++;
       A_Q (i); 
       grid->Cells[0][zelle] = "y = " + FloatToStrF (i, ffNumber, 8, 2); //i ist für 
       grid->Cells[1][zelle] = FloatToStrF (A, ffNumber, 8, 2);      //StringGrid zu- 
      }                              //ständig und ist nicht immer eine ganze Zahl   
    }                          //Der Grund ist das h (Inkrement).
    


  • Hey linnea,
    vielen Dank für die simple Antwort. Meine Güte...dass ich nicht selbst auf so etwas komme. Naja...herzlichen Dank

    lg, freakC++


Anmelden zum Antworten