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 Kommastellenfrmbrennkurve->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 Kommastellenfrmbrennkurve->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^^
-
