![]() |
Помогите с кодом в Delphi
Доброго времени суток.
Имеется такой вот код, с ним проводятся простые мат операции, как сделать чтоб нельзя было вводить ничего кроме цифр и если поля не заполненны не выбивала стандартная ошибка. Цитата:
Код:
procedure TForm1.Button1Click(Sender: TObject); |
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin if not(key in ['0'..'9']) then key:=#0; end; procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char); begin if not(key in ['0'..'9']) then key:=#0; end; procedure TForm1.Edit3KeyPress(Sender: TObject; var Key: Char); begin if not(key in ['0'..'9']) then key:=#0; end; procedure TForm1.Edit4KeyPress(Sender: TObject; var Key: Char); begin if not(key in ['0'..'9']) then key:=#0; end; |
Подмена символов, не являющихся цифрами - хорошее дополнение, хотя описываемую проблему не решает. Кроме этого в приведенном коде, минимально его модифицируя, следует сделать так:
Код:
procedure TForm1.Button1Click(Sender: TObject); |
Вот это выходит
[Error] MainFormUnit.pas(100): Declaration of 'Edit1KeyPress' differs from previous declaration [Error] MainFormUnit.pas(102): Undeclared identifier: 'key' [Error] MainFormUnit.pas(104): Declaration of 'Edit2KeyPress' differs from previous declaration [Error] MainFormUnit.pas(106): Undeclared identifier: 'key' [Error] MainFormUnit.pas(108): Declaration of 'Edit3KeyPress' differs from previous declaration [Error] MainFormUnit.pas(110): Undeclared identifier: 'key' [Error] MainFormUnit.pas(112): Declaration of 'Edit4KeyPress' differs from previous declaration [Error] MainFormUnit.pas(114): Undeclared identifier: 'key' [Fatal Error] sellercalc.dpr(11): Could not compile used unit 'MainFormUnit.pas' |
надо создавать события OnKeyPress для каждого компонента Edit
|
И нельзя дать вписывать не цифры ибо это калькулятор, но не выходит цыфры продолжают работать.
|
что??? не понял вопрос
|
1. Должны только цифры вписываться
2. С проверкой помогли. А вот с цифрами всеравно никак не выходит. |
юзай компонент дефольный SpinEdit. там уже решена проблема. вводится только цифры + контрорль границ ввода на уровне VCL там в пропертисах устанавливается
|
сделал так
Код:
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);хотя если тебе не надо ловить числа из буфера то просто можно заменить этим Код:
procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin ClipBoard.Clear; end; |
| Время: 23:19 |