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

Вниз

непонятная трабла с Editами   Найти похожие ветки 

 
PONTIY   (2002-05-14 13:33) [0]

в упрощенном виде код будет таким:

type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
procedure EditExit(Sender: TObject);

private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.EditExit(Sender: TObject);
begin
ShowMessage("ля-ля-ля");
end;


end.


Обработчик EditExit привязан ко всем Editaм. Так вот в чем непонятность. Если перескакивать из одного едита в другой табом то после закрытия ShowMessage фокус встает на следующий объект и без пробем можно начинать в нем вводить тексту. Однако если переходить из одного едита в другой мышкой, то после закрытия мессаги "ля-ля-ля", курсор вроде бы становиться на ту компонету на которую кликнули, но вот вводить текст в ней при этом нельзя до тех пор пока мы по ней еще раз не жамкним мышой.


 
Kozhanov   (2002-05-14 13:39) [1]

Насколько я знаю EditExit отрабатывает только "клавиатурную" потерю фокуса.


 
PONTIY   (2002-05-14 13:49) [2]

Если бы обрабатывало только клавиатурную, то у меня бы при потере фокуса от мышки не срабатывало ShowMessage.


 
Kozhanov   (2002-05-14 13:54) [3]

А что если добавить ещё обработчик события OnEnter и в нём ставить фокус на компонент.


 
PONTIY   (2002-05-14 14:03) [4]

Нет, SetFocus и Focused не помогает, все равно едитина в режим редактирования не входит ни в какую.


 
StarCon   (2002-05-14 14:05) [5]

Не получается - чтобы отработал OnEnter - надо еще раз ткнуть мышкой на поле


 
Kozhanov   (2002-05-14 14:08) [6]

А OnMouseDown тоже не помогает ?


 
PONTIY   (2002-05-14 14:12) [7]

Kozhanov, и по колесу пинал и в выхлопную трубу заглядывал, ничего не помогает :)


 
StarCon   (2002-05-14 14:15) [8]

нет, не помогает и OnClick тоже :)


 
Shaman_Naydak   (2002-05-14 15:34) [9]

Объясню в чем прикол..
У тебя при переходе мышкой новый контроль успевает словить нажатие, а отжатие из-за твоего ShowMessage теряется..
он и остается висеть в состоянии выделения мышкой (потому еще раз тыкать и надо)..
В лоб у меня что-то не срослось это полечить, советую сделать так:
на on Exit клади в очередь свое сообщение, + создай его обработчик, где и отобрази ShowMessage.. Это позволит не нарушить нормальную последовательность обработки событий!

Если сильно надо именно так (хотя зачем?), цинкани, я тады возьму ломик и посижу с часок над этим делом, а так - вилы



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

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

Наверх




Память: 0.46 MB
Время: 0.006 c
1-73137
MisterBin
2002-05-12 09:43
2002.05.23
Чтобы было не видно курсора в поле ввода


7-73427
BMax
2002-02-24 12:21
2002.05.23
Реестр


6-73347
alextov
2002-03-10 11:04
2002.05.23
Надо написать Прокси.


3-73082
Dangerouse
2002-04-25 13:49
2002.05.23
Как с помощью Query в Paradox базу засунуть изменения из TEdit


1-73203
Демон
2002-05-14 16:16
2002.05.23
Про OnKeyPress





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский