Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.11.2011, 00:31   #1
celovec
Форумчанин
 
Регистрация: 15.06.2007
Сообщений: 182
По умолчанию edit1.text и if офирации с ним.

Поделитесь пожалуйста опытом.
Есть условие:
Код:
if Pos(AnsiLowerCase(Edit1.Text), AnsiLowerCase(Edit2.Text)) > 0 then begin
***
end;
Edit1.text достаточно часто меняется иногда до 4 раз в секунду, Edit2.Text 1-2 раза в минуту.
Из за чего может не срабатывать выше показанное условие?
Ранее я думал это из за того что Edit1.text достаточно быстро меняет свое содержимое, но это не так, бывали случаи когда текст менялся 1-2 раза в 10 секунд и условие не срабатывало. Из за чего это может быть?

Последний раз редактировалось celovec; 21.11.2011 в 00:36.
celovec вне форума Ответить с цитированием
Старый 21.11.2011, 01:20   #2
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

1) Edit предназначен для ввода данных человеком. Если у вас там что-то мельтешит 4 раза в секунду, значит, уже что-то у вас в программе задумано принципиально неверно.

2) Если поток исполнения один, всё всегда должно "срабатывать", даже если насиловать оба едита хоть 100 раз в секунду.

3) Условие не может "не сработать", т.е. если Pos() вернул 0 (или не 0), то так оно и было на момент его вызова.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 21.11.2011, 01:48   #3
celovec
Форумчанин
 
Регистрация: 15.06.2007
Сообщений: 182
По умолчанию

Может ли быть в кодировке проблема?
celovec вне форума Ответить с цитированием
Старый 21.11.2011, 05:58   #4
Johnson
кривокодер ;)
Форумчанин
 
Аватар для Johnson
 
Регистрация: 20.06.2008
Сообщений: 707
По умолчанию

Версия дельфяки?
Текст только из латиницы, или присутствует кирилица?

Это условие в каком эвенте содержится?
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид}
Johnson вне форума Ответить с цитированием
Старый 21.11.2011, 09:57   #5
Den7656
Форумчанин
 
Аватар для Den7656
 
Регистрация: 08.06.2011
Сообщений: 103
По умолчанию

а что мешает до показа текста в edit его анализировать\сравнивать ?
Жизнь хорошая штука -и⊥ʎdʞ ин ʞɐʞ
Den7656 вне форума Ответить с цитированием
Старый 21.11.2011, 11:35   #6
celovec
Форумчанин
 
Регистрация: 15.06.2007
Сообщений: 182
По умолчанию

Код:
Версия дельфяки?
7

Цитата:
Текст только из латиницы, или присутствует кирилица?
Кириллица и Латиница.


Цитата:
а что мешает до показа текста в edit его анализировать\сравнивать ?
Нет разницы, условие все равно пропускает.
celovec вне форума Ответить с цитированием
Старый 21.11.2011, 11:39   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Да вы код покажите и все понятно станет (возможно), а то пропускает да пропускает
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 21.11.2011, 11:45   #8
Den7656
Форумчанин
 
Аватар для Den7656
 
Регистрация: 08.06.2011
Сообщений: 103
По умолчанию

опишите сам цикл проверки и цикл присвоения EDIT'у значения.
Жизнь хорошая штука -и⊥ʎdʞ ин ʞɐʞ
Den7656 вне форума Ответить с цитированием
Старый 21.11.2011, 16:37   #9
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Код:
Edit2.Enabled:=False;
if Pos(AnsiLowerCase(Edit1.Text), AnsiLowerCase(Edit2.Text)) > 0 then 
begin
***
end;
Edit2.Enabled:=True;
mihali4 вне форума Ответить с цитированием
Старый 21.11.2011, 17:46   #10
Johnson
кривокодер ;)
Форумчанин
 
Аватар для Johnson
 
Регистрация: 20.06.2008
Сообщений: 707
По умолчанию

*FACEPALM*
Ни при каких условиях нельзя делать вычисления с помощью пользовательского интерфейса. Он только для отокбражения и ввода данных.
Представьте, что Вы рисовали бы себе на глазах кисточкой чтоб увидеть картину...
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид}
Johnson вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Максимальное значение edit1.text KoBRaAndrey Общие вопросы Delphi 7 07.10.2009 05:40
AnsiUpperCase(Edit1.Text); Шура Помощь студентам 3 01.12.2008 20:04
y=Edit1->Text ??? m.a.x.i.m Помощь студентам 8 31.03.2008 11:29
if edit1.text:='123'then ben95 Помощь студентам 5 28.01.2008 16:29
из edit1.text в stringgrid. fluer Общие вопросы Delphi 8 25.04.2007 11:23