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