Mam taki problem: próbuję zrobić stringgrida numerycznego czyli, aby nie można było wpisywać literek w komórki, naciśnięcie "-" powodowałó zmianę znaku zawartości komórki, a , lub . wstawiało przecinek - z tym że tylko jeden możliwy na komórkę. kod źródłowy wygląda w ten sposób:
procedure TForm1.DaneKeyPress(Sender: TObject; var Key: Char);
var p:Extended; //(TFloat)
begin
case Key of
'0'..'9' : ;
'A'..'z' :Key:=#0;
'=' :Key:=#0;
'+' :Key:=#0;
'.',',' : if pos(DecimalSeparator,dane.cells[dane.row,dane.col])=0
then Key:=DecimalSeparator
else Key:=#0;
'-' : begin Key:=#0; p:=strToFloat(dane.Cells[dane.row,dane.col]); p:=p*(-1);
dane.cells[dane.row,dane.col]:=FloatToStr(p);
end;
#8 : ;
Program wykonuję to co zakładam tylko w komórce [1,1]. nie mam pojęcia o co chodzi i dlaczego tak się dzieje. za Ewentualną pomoc serdecznie dziękuję.