Δημοσιεύτηκε: 24 Νοέμ 2010, 22:25
από cyberpython
@yodan: Πάρε ένα καλό βιβλίο για προγραμματισμό σε Pascal αφού θέλεις να μάθεις Delphi και ξεκίνα από εκεί (π.χ. είναι πολύ βασικό να κατανοήσεις τη διαφορά ανάμεσα σε διαφορετικούς τύπους δεδομένων).
Τώρα, για το πρόβλημά σου, όπως σου είπαν και παραπάνω, η Inputbox επιστρέφει string (οπότε δε μπορείς να κάνεις πράξεις).
Μπορείς όμως να χρησιμοποιήσεις την strtoint/strtofloat για μετατροπή σε ακέραιο/αριθμό κινητής υποδιαστολής και ίσως να θέλεις πρώτα να περάσεις το αποτέλεσμα της inputbox από την trim για να "διώξεις" tabs και κενά. Επίσης, καλό είναι να βάλεις τον κώδικα σε ένα try-except block σε περίπτωση που ο χρήστης δε δώσει έγκρυ τιμή (π.χ. 3a)

Κώδικας: Επιλογή όλων
procedure CalculateSum();
var
a,b,c:extended;
aStr,bStr: string;
begin
Try
aStr := InputBox('Give a number', 'A:', '1');
aStr := Trim(aStr);
a := StrToFloat(aStr);
bStr := InputBox('Give a number', 'B:', '1');
bStr := Trim(bStr);
b := StrToFloat(bStr);
c := a + b;
ShowMessage('C is '+floattostr(c));
except
on E : Exception do
begin
ShowMessage('Invalid value');
end;
end;
end;