Also ich hab das jetztmal versucht, mit der Tabelle, dafür müsste ich doch aus dem String "term" einen TStrings abgreifen, zum einen die Chemischen Symbole und zum anderen dann noch einmal die Molaren Massen, und dann das ganze per
Stringgrid.Rows[0] := term2;
einfügen, oder?
So klappt es nicht, irgendwie hab ich da n Denkfehler wohl drinne, da hab ich einfach versucht, sozusagen die erste "Spalte" abzugreifen, aber das geht net so...
Delphi-Quellcode:
function Tform1.Berechnen(term:string):double; //Berechnet Masse
var p:integer;
st : string;
tst : Tstrings;
begin
if pos0('+',term,p) then
result:=Berechnen(copy(term,1,p-1))+Berechnen(copy(term,p+1,length(term)))
else if pos0('*',term,p) then
result:=Berechnen(copy(term,1,p-1))*Berechnen(copy(term,p+1,length(term)))
else if term[1]='(' then
result:=Berechnen(copy(term,2,length(term)-2))
else if term[1] in ['a'..'z','A'..'z'] then
//Molare Masse in Fmol wird gesucht
result:=strtofloat(Fmol.ValueFromIndex[Fmol.indexofname(term)])
else begin
result:=strtofloat(term);
end;
st :=Fmol.ValueFromIndex[Fmol.indexofname(term)];
tst := st[1];
MolGrid.Rows[0]:= tst;
end;