![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#16
|
|||
|
|||
|
Изменил вопрос
|
|
#17
|
||||
|
||||
|
Цитата:
Цитата:
Код:
NumberEdit[0].OnKeyPress:=EditKeyPress; где EditKeyPress - предыдущая версия. |
| Этот пользователь сказал Спасибо YVitaliy за это полезное сообщение: | ||
sorockinalex (28.11.2012)
| ||
|
#18
|
|||
|
|||
|
А было так. Изменённое. Работает! Спасибо!
Код:
procedure TFAddEquipmentNumbers.FormCreate(Sender: TObject);
begin
LoadFormProperties(Self as TForm);
SetLength(numberEdit,1);
SetLength(birthyearEdit,1);
NumberEdit[0]:=TEdit.Create(Self);
NumberEdit[0].Parent:=Self;
NumberEdit[0].Left:=8;
NumberEdit[0].Top:=69;
NumberEdit[0].Width:=60;
NumberEdit[0].Height:=21;
NumberEdit[0].Visible:=true;
NumberEdit[0].Enabled:=true;
NumberEdit[0].OnKeyPress:=EditKeyPress;
birthyearEdit[0]:=TEdit.Create(Self);
birthyearEdit[0].Parent:=Self;
birthyearEdit[0].Left:=76;
birthyearEdit[0].Top:=69;
birthyearEdit[0].Width:=30;
birthyearEdit[0].Height:=21;
birthyearEdit[0].MaxLength:=2;
birthyearEdit[0].Visible:=true;
birthyearEdit[0].Enabled:=true;
birthyearEdit[0].OnKeyPress:=EditKeyPress;
try ApplyImage.Picture.LoadFromFile('icons\apply.ico');
except showmessage('Íå íàéäåíà èêîíêà apply.ico') end;
try CloseImage.Picture.LoadFromFile('icons\close.ico');
except showmessage('Íå íàéäåíà èêîíêà close.ico') end;
end;Код:
procedure TFAddEquipmentNumbers.EditKeyPress(Sender: TObject; var Key: Char); const allowedsymbols: set of Char=['0'..'9']; begin if (Key in allowedsymbols) then begin end else key :=#0; end; |
|
#19
|
|||
|
|||
|
Опять с той же проблемой, но немного вдругом ракурсе. Решил наконец вынести процедуру эту в DataModule...
Объявил процедуру здесь Код:
procedure EditKeyPressDigits(Sender: TObject; var Key: Char); const ... var ... implementation... Сама процедура: Код:
procedure EditKeyPressDigits(Sender: TObject; var Key: Char); const allowedsymbols: set of Char=['0'..'9', #8, #46]; begin if (Key in allowedsymbols) then begin end else key :=#0; end; Теперь как её вызвать не знаю. То, что в предыдущем посте отказывается работать: Код:
Edit2.OnChange := EditKeyPressDigits; Цитата:
Где-то в другом месте нужно объявлять процедуру или по-другому объявлять... Подскажите, вечная проблема с вынесением процедур за пределы текущего модуля... |
|
#20
|
|||
|
|||
|
Пытаюсь её разместить в паблик в дата модуле - пишет:
Цитата:
Добавил тут же.... Разобрался... Не указал TDM. в заглавии самой процедуры внизу Но всё равно пишет при компиляции, что Цитата:
Последний раз редактировалось sorockinalex, 11.01.2013 в 09:07. |
|
#21
|
|||
|
|||
|
Сделал!
Делать так: Помещаем процедуру в public Код:
type
TDM = class(TDataModule)
...
public
procedure EditKeyPressDigits(Sender: TObject; var Key: Char);внизу сама процедура Код:
procedure TDM.EditKeyPressDigits(Sender: TObject; var Key: Char);
const
allowedsymbols: set of Char = ['0'..'9', #8, #46];
begin
if (Key in allowedsymbols) then
begin
end
else
key := #0;
end;Вызов процедуры так: Код:
Edit2.OnKeyPress := DM.EditKeyPressDigits; |
|
#22
|
|||
|
|||
|
Ну надо не OnChange использовать, а OnKeyPress.
У него другие параметры - посмотри в справке |