Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.05.23;
Скачать: CL | DM;

Вниз

непонятная трабла с 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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.015 c
3-73084
Alban
2002-04-26 19:46
2002.05.23
Работа с утилитой Query Analyzer в MsSQL 7.0


1-73147
Kid_a
2002-05-13 18:57
2002.05.23
DrawGrid


14-73401
Baz
2002-04-16 15:16
2002.05.23
Паладин! Хелп!


1-73215
maxon
2002-05-14 13:07
2002.05.23
сообщение нескольким компонентам


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