Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.04.09;
Скачать: [xml.tar.bz2];

Вниз

Помогите вернуть курсор......   Найти похожие ветки 

 
aleshap   (2006-03-07 16:06) [0]

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

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

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

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

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


 
Джо ©   (2006-03-07 16:17) [1]

> , то теряется курсор (не мыши),

Так какой "курсор" теряется? Откуда он "теряется"?


 
aleshap   (2006-03-07 16:27) [2]

курсор - который определяет место ввода (для полной внятности - вертикальная мигающая "палочка")
предлагая наиграть....
создаете 2 формы....
на Form1 располагаете 2 поля. В OnExit поля Edit1 включаете след код:

Form2.Show;
Form2.Hide;

запускаете и пробуете перейти с одного поля на другое


 
Джо ©   (2006-03-07 16:41) [3]

> запускаете и пробуете перейти с одного поля на другое

И пробовать не буду. Зачем? Я и так знаю, что фокус ввода будет на каком-то из контроллов формы2. Ты ведь ее показываешь и активируешь.


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

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

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


 
Джо ©   (2006-03-07 17:16) [5]

> [4] aleshap   (07.03.06 16:53)

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


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

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


 
ArtemESC ©   (2006-03-07 22:54) [7]

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


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


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


Мимо.


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

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


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


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

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


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

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

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


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


> aleshap   (09.03.06 12:29) [11]

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


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

--
Regards, LVT.


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

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

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


 
Leonid Troyanovsky ©   (2006-03-09 13:29) [14]


> aleshap   (09.03.06 13:22) [13]

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


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

--
Regards, LVT.


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

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


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

Да конечно!

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

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

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


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

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

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


 
Leonid Troyanovsky ©   (2006-03-09 13:56) [18]


> aleshap   (09.03.06 13:39) [16]

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


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

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

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

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

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

--
Regards, LVT.


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


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

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

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

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

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


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

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


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

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

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

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


 
Leonid Troyanovsky ©   (2006-03-09 14:40) [21]


> shap   (09.03.06 14:18) [19]

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


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

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

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

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

--
Regards, LVT.


 
ALS ©   (2006-03-09 15:21) [22]

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


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

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



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2006.04.09;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.5 MB
Время: 0.015 c
15-1142426573
Игорь М
2006-03-15 15:42
2006.04.09
Вопрос по Excel


2-1143303978
XiAndr
2006-03-25 19:26
2006.04.09
Новые страницы в TWebBrowser


1-1141476664
Diamond
2006-03-04 15:51
2006.04.09
Переключания м/у модулями


9-1127749540
Ford
2005-09-26 19:45
2006.04.09
IDirect3DDevice9 Не хочет создаваться


2-1143470623
el-magnifico
2006-03-27 18:43
2006.04.09
запуск приложения





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский