Rechner rechnet nicht!*g*



  • Habe ein unerklärliches Problem:
    rerg=frmbrennkurve->maxDauer*hilf/raster;

    liefert kein Ergebnis! alles float Variablen frmbrennkurve->maxDauer public im header definiert! Weiß nicht woran es liegt, hat vorher immer funkt. habe nur weiter programmiert und auf einmal haut diese einfache Rechnung nicht hin! keine Ahnung! bitte um Hilfe!

    mfg



  • mach jeden schritt einzelnd un düberprüfe die werte via debugger und strg + alt + w(überwachte ausdrücke)
    dann siehste was der NICHT macht. vllt irgendwo ein null wert?



  • Habe bereits durch debugged! rerg=frmbrennkurve->maxDauer*hilf/raster;

    frmbrennkurve->maxDauer=5; hilf=5 und raster=20; liefert irgendetwas mit
    10^-45 also 0!! Keine Ahnung hat vorher immer hin gehauen! gibts ja irgendwie net!?



  • psote mal code, was was ist



  • void init_diagramm_zeichnen(int startpktx, int startpkty,int raster,float maxxwert, float maxywert)
    { float xAchse,yAchse,hilf;
    float abstand,i;
    float rerg;
    String erg;

    init_image_loeschen();
    Origin=Point(startpktx,startpkty);
    xAchse=frmbrennkurve->imgflaeche->ClientWidth-frmbrennkurve->imgflaeche->ClientWidth/10;

    //x-,y-Achse zeichnen
    //-------------------------------------------------
    frmbrennkurve->imgflaeche->Canvas->Pen->Width=5; //Linienstärke ändern
    frmbrennkurve->imgflaeche->Canvas->MoveTo(startpktx-50,startpkty);
    frmbrennkurve->imgflaeche->Canvas->LineTo(xAchse,startpkty); //x-Achse
    frmbrennkurve->imgflaeche->Canvas->TextOut(xAchse,startpkty+25,"Zeit(h)");

    frmbrennkurve->imgflaeche->Canvas->MoveTo(startpktx,startpkty+50);
    frmbrennkurve->imgflaeche->Canvas->LineTo(startpktx,frmbrennkurve->imgflaeche->ClientHeight/10); //y-Achse
    frmbrennkurve->imgflaeche->Canvas->TextOut(startpktx-20,10,"Temperatur °C");

    frmbrennkurve->imgflaeche->Canvas->Pen->Width=1;
    //-------------------------------------------------
    //x-,y-Achse zeichnen

    //Hilfgitternetz zuerst x-,y-Achse
    //--------------------------------------------------
    xAchse=xAchse-startpktx;
    abstand=xAchse/raster;
    hilf=1;
    for(i=abstand;i<=xAchse;i=i+abstand)
    { rerg=frmbrennkurve->maxDauer*hilf/raster; 😡
    erg=FloatToStrF(rerg,ffNumber,8,1); //formatiert auf 1 Kommastellen

    frmbrennkurve->imgflaeche->Canvas->MoveTo(startpktx+i,startpkty);
    frmbrennkurve->imgflaeche->Canvas->LineTo(startpktx+i,frmbrennkurve->imgflaeche->ClientHeight/10); //senkrechte Hilfslinien
    frmbrennkurve->imgflaeche->Canvas->TextOutA(startpktx+i,startpkty+10,erg);
    hilf++;
    }

    yAchse=startpkty-frmbrennkurve->imgflaeche->ClientHeight/10;
    abstand=yAchse/raster;
    hilf=1;
    for(i=abstand;i<=yAchse+1;i=i+abstand)
    { erg=FloatToStrF(frmbrennkurve->maxTemp*hilf/raster,ffNumber,8,1) 😡 +"°"; //formatiert auf 1 Kommastellen

    frmbrennkurve->imgflaeche->Canvas->MoveTo(startpktx,startpkty-i);
    frmbrennkurve->imgflaeche->Canvas->LineTo(xAchse+startpktx,startpkty-i); //Waagrechte Hilfslinien; y-Achse
    frmbrennkurve->imgflaeche->Canvas->TextOutA(startpktx/2,startpkty-i,erg);
    hilf++;
    }
    //--------------------------------------------------
    //Hilfgitternetz zuerst x-,y-Achse
    }

    Problem ist markiert! Ich verstehe nicht warum es vorher gegangen ist!?? keine Ahnung woran es liegen mag?? Programm zeichnet Diagramm und beschriftet die Achsen ....!



  • drogenkind

    --------------------------------------------------------------------------------
    void init_diagramm_zeichnen(int startpktx, int startpkty,int raster,float maxxwert, float maxywert) 
    { float xAchse,yAchse,hilf; 
    float abstand,i; 
    float rerg; 
    String erg; 
    
    init_image_loeschen(); 
    Origin=Point(startpktx,startpkty); 
    xAchse=frmbrennkurve->imgflaeche->ClientWidth-frmbrennkurve->imgflaeche->ClientWidth/10; 
    
    //x-,y-Achse zeichnen 
    //------------------------------------------------- 
    frmbrennkurve->imgflaeche->Canvas->Pen->Width=5; //Linienstärke ändern 
    frmbrennkurve->imgflaeche->Canvas->MoveTo(startpktx-50,startpkty); 
    frmbrennkurve->imgflaeche->Canvas->LineTo(xAchse,startpkty); //x-Achse 
    frmbrennkurve->imgflaeche->Canvas->TextOut(xAchse,startpkty+25,"Zeit(h)"); 
    
    frmbrennkurve->imgflaeche->Canvas->MoveTo(startpktx,startpkty+50); 
    frmbrennkurve->imgflaeche->Canvas->LineTo(startpktx,frmbrennkurve->imgflaeche->ClientHeight/10); //y-Achse 
    frmbrennkurve->imgflaeche->Canvas->TextOut(startpktx-20,10,"Temperatur °C"); 
    
    frmbrennkurve->imgflaeche->Canvas->Pen->Width=1; 
    //------------------------------------------------- 
    //x-,y-Achse zeichnen 
    
    //Hilfgitternetz zuerst x-,y-Achse 
    //-------------------------------------------------- 
    xAchse=xAchse-startpktx; 
    abstand=xAchse/raster; 
    hilf=1; 
    for(i=abstand;i<=xAchse;i=i+abstand) 
    { rerg=frmbrennkurve->maxDauer*hilf/raster;  
    erg=FloatToStrF(rerg,ffNumber,8,1); //formatiert auf 1 Kommastellen 
    
    frmbrennkurve->imgflaeche->Canvas->MoveTo(startpktx+i,startpkty); 
    frmbrennkurve->imgflaeche->Canvas->LineTo(startpktx+i,frmbrennkurve->imgflaeche->ClientHeight/10); //senkrechte Hilfslinien 
    frmbrennkurve->imgflaeche->Canvas->TextOutA(startpktx+i,startpkty+10,erg); 
    hilf++; 
    } 
    
    yAchse=startpkty-frmbrennkurve->imgflaeche->ClientHeight/10; 
    abstand=yAchse/raster; 
    hilf=1; 
    for(i=abstand;i<=yAchse+1;i=i+abstand) 
    { erg=FloatToStrF(frmbrennkurve->maxTemp*hilf/raster,ffNumber,8,1)  +"°"; //formatiert auf 1 Kommastellen 
    
    frmbrennkurve->imgflaeche->Canvas->MoveTo(startpktx,startpkty-i); 
    frmbrennkurve->imgflaeche->Canvas->LineTo(xAchse+startpktx,startpkty-i); //Waagrechte Hilfslinien; y-Achse 
    frmbrennkurve->imgflaeche->Canvas->TextOutA(startpktx/2,startpkty-i,erg); 
    hilf++; 
    } 
    //-------------------------------------------------- 
    //Hilfgitternetz zuerst x-,y-Achse 
    }
    


  • Weiß schon woran es gelegen hat! habe raster mit int übergeben und nicht mit float! Doch warum hat es vorher auch funkt.? keine Ahnung aber vielen dank für die bemühung!



  • weil es vorher bestimmt anders war.
    ich dachte heude morgen acuh in hättte eine CSpinEdit und was war es? eine combobox^^



  • 🙂


Anmelden zum Antworten