![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Функция Pos? [Win2k]
tolstiak © (2005-02-08 17:30:00)Проблема такая функция Pos всегда равна "0"...
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if Pos ('1',Edit1.Text)>0 then Key:=#0;
end;
поидее при нажатии "1" дожно блокироваться нажатие любой другой клавиши, а этого не произходит... :((
на Delphi 6 этот код работает нормально а на Delphi 8 for the Microsoft .NET Framework не работает...
tolstiak (2005-02-09 16:53:00) [1]> Defunct
гыггыгг... :)))) а так работает...
спасибо!!!
Defunct (2005-02-08 21:22:00) [2]> а есть ли методы борьбы с этим?
Например так:
var
S: String;
begin
S := TEdit(Sender).Text;
if Pos( '1', S) <> 0 then ...
end;
Поидее Delphi должен нормально приравнивать WideString к String.
tolstiak (2005-02-08 18:42:00) [3]>Dmitry_04
в Вашем коде на нажатие "1" не будет реагировать а на остальные сколько угодно... весь смысл. если один раз клавиша была нажата то блокируется все... а "1" это как пример...
> Defunct
а есть ли методы борьбы с этим?
Defunct (2005-02-08 18:22:00) [4]tolstiak (08.02.05 18:07) [3]
> почему?...
вариантов не так много. кодировка.
NET любит unicode, '1' в unicode <> '1'
нет под рукой D8 чтобы проверить.
Dmitry_04 (2005-02-08 18:08:00) [5]procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if Key='1' then Key := #0;
end;
tolstiak (2005-02-08 18:07:00) [6]> Anatoly Podgoretsky
ну-да... опечалка вкралась... конечно ПОСЛЕ нажатия "1" в поле Edit1
> Defunct
почему?... если есть фунция она не работает... на D6 этот же код работает...
Defunct (2005-02-08 17:58:00) [7]на VB for Microsoft .NET Framework такой код тоже работать не будет.
Anatoly Podgoretsky (2005-02-08 17:57:00) [8]Идея неверная, все равно нажимать какую клавишу, блокироваться будет если в Edit1.Text есть единица, хоть нажимай 9