Форум: "Основная";
Текущий архив: 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