drück mal strg + alt + w, dann hast du ein fenster, bei dem du die variablenwerte zur laufzeit überwachen kannst. musst nur einen haltepunkt am begin deiner prozedur setzen. zudem ist die funktion strtofloat oder strtoint sehr kritisch, wenn z.b. eine benutzereingabe einen tippfehler enthält, und beispielsweise der dezimalpunkt ein komma ist, oder eine nicht-ziffer sich einschleicht, stürzt das programm ab, wenn du das nicht mit try - except machst. ich hab mal was geschrieben, was anfürsich eine sichere variante ist:
function TForm1.stringzureal(eingabe: string): real;
var
i: integer;
neuerstring: string;
kommagesetzt: boolean;
ueberpruefung: char;
begin
neuerstring := '';
kommagesetzt := false;
for i := 1 to length(eingabe) do
begin
ueberpruefung := eingabe;
case ueberpruefung of
'0':neuerstring := neuerstring + copy(eingabe, i, 1);
'1':neuerstring := neuerstring + copy(eingabe, i, 1);
'2':neuerstring := neuerstring + copy(eingabe, i, 1);
'3':neuerstring := neuerstring + copy(eingabe, i, 1);
'4':neuerstring := neuerstring + copy(eingabe, i, 1);
'5':neuerstring := neuerstring + copy(eingabe, i, 1);
'6':neuerstring := neuerstring + copy(eingabe, i, 1);
'7':neuerstring := neuerstring + copy(eingabe, i, 1);
'8':neuerstring := neuerstring + copy(eingabe, i, 1);
'9':neuerstring := neuerstring + copy(eingabe, i, 1);
',':
begin
if not kommagesetzt then
neuerstring := neuerstring + '.';
kommagesetzt := true;
end;
'.':
begin
if not kommagesetzt then
neuerstring := neuerstring + copy(eingabe, i, 1);
kommagesetzt := true;
end;
end;
end;
result := strtofloat(neuerstring);
end;
das sollte anfürsich selbsterklärend sein. wenn du das mit dem komma weglässt, und am ende strtoint machst, kannst du das auch als ersatz für die funktion strtoint nehmen. und wieso hast du die prozedur nicht komplett deklariert, schreib im private-teil doch einfach "procedure tdpratiorechnen(maxtdp, vcorea, vcoreb: real);" und bei der prozedur selbst "procedure tdpratiorechnen(maxtdp, vcorea, vcoreb: real);", dann kannst du die mit tdpratiorechnen(bla, blubb, plopp); ansprechen, und kannst das tform1 davor weglassen, oder sind die prozeduren auf unterschiedlichen formen?
du kannst auch schreiben: maxtaktstring := TaktBox.Items.ValueFromIndex[ TaktBox.Items.Count - 1 ];
übersichtlichkeit und das vermeiden unnötig vieler variablen usw. sind beim programmieren wichtig, zwar läuft das proggi nicht unbedingt besser damit, aber du vermeidest fehler beim programmieren und kannst fehler besser nachvollziehen