![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
Добрый вечер. Собственно возникла проблема. Было дано куча заданий по информатике из одной книжки, где вроде бы очень неплохо расписаны все возможности Delphi, ну и книжка соответственно наполнена различными заданиями.
Вот собственно само задание Цитата:
Проблема возникла вот в чём. Вроде бы функция написана, как она работает понятно. Вот только как её использовать абсолютно не понятно. Нужно её каким-то образом для поля Edit применить, только вот в книге не написано как, а без наглядного примера воображение не работает... Помогите пожалуйста. |
|
#2
|
||||
|
||||
|
В событии OnKeyPress компонента Edit вы можете проводить обработку:
Код:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if not ProvInputInt(Key) then Key := #0 end; Код:
function ProvInputInt (ch: char): Boolean; begin ProvInputInt := ch in ['0'..'9',#13,#8]; end; Последний раз редактировалось Страдалецъ, 28.11.2010 в 16:58. |
|
#3
|
||||
|
||||
|
Благодарю.
UPD: Пока тему не закрыли. Возникла ещё одна проблема со схожей задачей. Ругается: Operator no applicable to this operand type. Код:
function ProvInputDrobn (ch: char; str: string): Boolean;
begin
if (ch>='0') and (ch<='9') or (ch=#13) or (ch=#8)
then
begin
ProvInputDrobn:=True;
Exit;
End;
Case ch of
'-': if Length(str)=0 then ProvInputDrobn:=True;
',': if (Pos(',',str)=0 and
(str[Length(str)]>='0') and(ругается тут) (str[Length(str)]<='9')
then ProvInputDrobn:=True
else ProvInputDrobn:=False;
end;
end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not ProvInputDrobn(Key) then key:=chr(0);
end;
end.Последний раз редактировалось Tensh, 28.11.2010 в 18:11. |
|
#4
|
||||
|
||||
|
Наверное так должно быть:
Код:
if (Pos(',',str)=0) and (str[Length(str)]>='0') and (str[Length(str)]<='9')
then ProvInputDrobn :=True |
|
#5
|
||||
|
||||
|
А почему один пробел так всё изменил?
Теперь ругается: not enough actual parameters Код:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if not ProvInputDrobn(Key)(тут) then key:=chr(0); end; |
|
#6
|
||||
|
||||
|
У тебя ж функция имеет 2 параметра:
function ProvInputDrobn (ch: char; str: string): Boolean; А ты заполняешь только один: Код:
if not ProvInputDrobn(Key)(тут) then key:=chr(0); // ты должен указать еще строку: if not ProvInputDrobn(Key, s) then key:=chr(0); |
|
#7
|
||||
|
||||
|
Что-то не сработало.
|