Решил написать программу для решения квадратных неравенств.
Я не буду выкладывать тут весь код программы, а просто покажу самую интересную функции.
Маска для Edit для ввода только чисел (положительных, и отрицательных):
procedure TForm2.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if NOT (Key in ['0'..'9','-', '.', #8, #13]) // разрешенные клавиши
OR ( (Key = '.') // пользователь нажал '.'
AND (POS ('.', Edit1.Text) > 0)) // десятичная точка уже имеется
or ( (Key='-') // пользователь нажал '-'
and (length(edit1.Text)>0)) // Вводиться не первый символ
then
begin
Key := #0;
MessageBeep (MB_OK);
end;
end;
И еще:
procedure TForm2.Edit1Change(Sender: TObject);
begin
if (copy(edit1.Text,0,1)='-') and (length(edit1.text)<=1) then
exit;
if length(edit1.Text)=0 then
exit;
a:=strtofloat(edit1.Text);
end;
Весь остальной код тривиально прост.
Если заинтересовались, можете скачать исходники.
Или просто программу
Я не буду выкладывать тут весь код программы, а просто покажу самую интересную функции.
Маска для Edit для ввода только чисел (положительных, и отрицательных):
procedure TForm2.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if NOT (Key in ['0'..'9','-', '.', #8, #13]) // разрешенные клавиши
OR ( (Key = '.') // пользователь нажал '.'
AND (POS ('.', Edit1.Text) > 0)) // десятичная точка уже имеется
or ( (Key='-') // пользователь нажал '-'
and (length(edit1.Text)>0)) // Вводиться не первый символ
then
begin
Key := #0;
MessageBeep (MB_OK);
end;
end;
И еще:
procedure TForm2.Edit1Change(Sender: TObject);
begin
if (copy(edit1.Text,0,1)='-') and (length(edit1.text)<=1) then
exit;
if length(edit1.Text)=0 then
exit;
a:=strtofloat(edit1.Text);
end;
Весь остальной код тривиально прост.
Если заинтересовались, можете скачать исходники.
Или просто программу

Комментариев нет:
Отправить комментарий