|
#1
|
|||
|
|||
Метод Ньютона
Здравствуйте!
Я сейчас делаю программу "Метод Ньютона". Цель: разработать программу, которая решает линейные алгебраические уравнения методом Ньютона. Вид уравнений, которые будет решать программа, такой: Ax(3)+Bx(2)+Cx+D=0, где: x - неизвестное; A,B,C,D - заданные числа. Сейчас делаю защиту "от дурака". Надо сделать так, чтобы в поле "TEdit", можно было вводить только цифры, знаки "-", "." или ",". Так вот, я сделал только то, что можно ввести: 1) цифры. 2) "-", но только чтобы выводился на первом месте и чтобы нельзя было ввести повторно это символ. 3) "." или ",", чтобы если пользователь введет "." или ",", то автоматически вместо это символа появлялся тот, который по умолчанию стоит в Windows для ввода действительных чисел, также чтобы нельзя было ввести "," на первом месте. А вот чтобы "," или "." можно было ввести только 1 раз никак не получается. Помогите, пожалуйста, кто знает, как это сделать. Вот код защиты, которую я сделал: Код:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin Case Key of '.',',': // разделитель целой и дробной частей числа begin If Key<>DecimalSeparator then begin Key:=DecimalSeparator; // заменим разделитель на допустимый end; If (Length (Edit1.Text)=0) and (Key=DecimalSeparator) then begin Key:=Chr (0); end; end; '-': // минус можно ввести только первым символом, т.е. когда ячейка пустая If Length (Edit1.Text)<>0 then begin // остальные символы запрещены Key:=Chr (0); end; #48..#57:; #13:Edit2.SetFocus; #8:; else Key:=Chr(0); end; end; |