Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите вернуть курсор...... [D7, NT4, Win2k, WinXP]


Страницы:   1 2

aleshap ©   (2006-03-07 16:06:00) 

Всем добрый день! И с праздником женскую половину (если такая имеется)
Есть проблема.
Форма на которой расположены около 10-ти полей TEdit. В действии OnExit одного из них (пусть Edit1) написан следующий код:

procedure TForm1.Edit1Exit(Sender: TObject);
begin
WAIT.Show;
 sleep(400);  // ... неважно...
WAIT.Hide;
end;

WAIT - форма типа "Ждите" (без элементов управления - да это и не важно)

И как только я перехожу с данного поля на любое другое, то теряется курсор (не мыши), и не обрабатывается событие OnEnter поля на которое перехожу, хотя при вводе с клавиатуры буковки появляются.

Помогите вернуть курсор.
Заранее благодарен!


aleshap   (2006-03-09 17:02:00) [1]

[22] Спасибо Большое!


ALS   (2006-03-09 15:21:00) [2]

Проблема решается заменой
WAIT.Hide;
на
PostMessage(WAIT.Handle, WM_CLOSE, 0, 0);


Leonid Troyanovsky   (2006-03-09 14:40:00) [3]


> shap   (09.03.06 14:18) [19]

> Но форму все же надо закрыть... путь и не Hide ([11] выбирайте
> все что вам угодно) и Что?


Кому нужно?
Обычно формы показывают юзеру. Прочитал он адресованное ему,
и закрыл. Если нужно ограничить по времени ставят таймер.

> Модальность давайте затрагивать не будем! Т.к. это уже другая
> историй. Вы же не меняли условия задач по математике(физике)
> в школе, чтобы ее решить - [17]

Почему, собс-но, модальность оказалась вне обсуждений.
И какие еще условия установлены (или не обсуждаются).

По-моему, ты чего-то недоговариваешь по существу.
Что за задача решается (и зачем).

--
Regards, LVT.


aleshap   (2006-03-09 14:22:00) [4]

Мне кажется, что обсуждения уходят уже не в то русло, которое могло бы привести к решению проблемы!

А фантазии на тему "Давайте переделаем мир" - я считаю неприемлемо

Всем спасибо!


aleshap   (2006-03-09 14:18:00) [5]


> А почему ты полагаешь, что я всего этого не читал?
> И что такого глубокого содержится в комментарии // ... неважно.
> ..

Кто как читает так и может!

Хорошо если это вам так мешает - то убирает,
sleep(400);  // ... неважно...

Но форму все же надо закрыть... путь и не Hide ([11] выбирайте все что вам угодно) и Что?

Модальность давайте затрагивать не будем! Т.к. это уже другая историй. Вы же не меняли условия задач по математике(физике) в школе, чтобы ее решить - [17]


> Т.е., пока я не видел никакого внятного описания проблемы

Вы можете найти в самом вопросе, после его внимательного прочтения.


Leonid Troyanovsky   (2006-03-09 13:56:00) [6]


> aleshap   (09.03.06 13:39) [16]

> По поводу sleep - данная команда к проблеме не имеет совершенно
> НИКАКОГО отношения, и была включена в код (кстати с комментарием
> - я в принципе предполагал, что читающий обратит на него
> внимание) для пояснения, что между открытием и закрытием
> формы - содержится некий код опять-таки не имеющий НИКАКОГО
> отношения к проблеме.


А почему ты полагаешь, что я всего этого не читал?
И что такого глубокого содержится в комментарии // ... неважно...

Теперь, с самого начала.  Убираем

sleep(400);  // ... неважно...
WAIT.Hide;

И фокус виден всегда, вне зависимости от способа закрытия формы
(вручную или таймером). Хотя, скорее всего, этой форме больше
пристало быть модальной.

Т.е., пока я не видел никакого внятного описания проблемы
(кроме симптомов сомнительного происхождения).

--
Regards, LVT.


aleshap   (2006-03-09 13:45:00) [7]

> [15] видимо нарушается логика обработки перехода контролов...
Да спасибо, это конечно поможет, но мне не нужно "обходное" решение (в виду поставленной задачи).
К сожалению, необходимо решение данной проблемы.

P.S. Хотя я чувствую, что другого выхода по всей видимости нет.


aleshap   (2006-03-09 13:39:00) [8]

Да конечно!

По поводу sleep - данная команда к проблеме не имеет совершенно НИКАКОГО отношения, и была включена в код (кстати с комментарием - я в принципе предполагал, что читающий обратит на него внимание) для пояснения, что между открытием и закрытием формы - содержится некий код опять-таки не имеющий НИКАКОГО отношения к проблеме.

По поводу Hide - потрудитесь прочесть [4], [5], [10] и [11].

Теперь потрудитесь обосновать ваше сообщение [12] и какое отношение оно имеет к проблеме?


REA   (2006-03-09 13:32:00) [9]

видимо нарушается логика обработки перехода контролов.
думаю можно послать самому себе в обработчике OnExit какое нибудь свое сообщение вроде WM_WAITWINDOW и в нем уже проделать все что нужно.


Leonid Troyanovsky   (2006-03-09 13:29:00) [10]


> aleshap   (09.03.06 13:22) [13]

> Не утруждайте себя глупыми замечания совершенно не относяшиеся
> к делу!


Потрудись обосновать свои слова, как насчет глупости,
так и насчет отношения к делу.

--
Regards, LVT.


aleshap   (2006-03-09 13:22:00) [11]

>Sleep здесь абсолютно не по делу (как, собс-но, и Hide).

Господа - вы о чем...
Не утруждайте себя глупыми замечания совершенно не относяшиеся к делу!


Leonid Troyanovsky   (2006-03-09 12:48:00) [12]


> aleshap   (09.03.06 12:29) [11]

> Дело вовсе не в этом...


Sleep здесь абсолютно не по делу (как, собс-но, и Hide).

--
Regards, LVT.


aleshap   (2006-03-09 12:29:00) [13]

>Ты её не закрываешь, а прячешь. Вставь после WAIT.Hide; SetFocus;

Дело вовсе не в этом...Можно ставить хоть Hide, хоть Close, хоть Free - результат один и тот же. И никакой SetFocus в этом не поможет... читайте [4] и [5].


Плохиш   (2006-03-09 11:15:00) [14]


> aleshap   (07.03.06 16:53) [4]
> Да показываю, но еще форму2 я и закрываю - фокуса там оставаться
> не должно

Ты её не закрываешь, а прячешь. Вставь после WAIT.Hide; SetFocus;


aleshap   (2006-03-09 10:59:00) [15]

Господа знатоки, еще раз обращаю ваше внимание к проблеме....


Германн   (2006-03-08 02:27:00) [16]


> ArtemESC ©   (07.03.06 22:54) [7]
>
> Application.ProcessMessages - наверное...


Мимо.


ArtemESC   (2006-03-07 22:54:00) [17]

Application.ProcessMessages- наверное...


aleshap   (2006-03-07 18:42:00) [18]

Да по всей видимости проблема на много серьезнее чем я предполагал....


Джо   (2006-03-07 17:16:00) [19]

> [4] aleshap   (07.03.06 16:53)

Да, действительно, пропадает и Caret и выделение, хотя фокус ввода второй Edit получает, странно. Извините, сразу не понял.


aleshap   (2006-03-07 16:53:00) [20]

Да показываю, но еще форму2 я и закрываю - фокуса там оставаться не должно и не остается

По всей видимости вы не понимаете, поэтому я вам и предложил наиграть ситуацию...


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо