Показать сообщение отдельно
  #1  
Старый 07.02.2008, 15:00
Cubar Cubar вне форума
Прохожий
 
Регистрация: 21.01.2008
Сообщения: 20
Репутация: 10
По умолчанию Метод Ньютона

Здравствуйте!
Я сейчас делаю программу "Метод Ньютона".
Цель: разработать программу, которая решает линейные алгебраические уравнения методом Ньютона.
Вид уравнений, которые будет решать программа, такой:
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;
Ответить с цитированием