К вопросу о создании login-формыИсточник: delphikingdom
В login-форме не получается установить фокус на текстовом поле для ввода имени пользователя. Пользователь вынужден щелкать мышью на текстовом поле, что, конечно, не очень ему удобно. Предлагается вариант решения этой проблемы. Несколько раз я на форумах встречал вопрос по следующей ситуации:
Меня тоже коснулась эта проблема. Возможно она давно уже решена, но мне найти решение на форумах не удалось. Зато удалось как-то получить решение самому. Итак:
Вот и все. Наверное, мною изобретен очередной велосипед, а специалисты найдут массу изъянов, но ... Собственно код procedure Tfrm_Security2_Login.FormShow(Sender: TObject); var x,y: Integer; pt: TPoint; begin // Имитируем щелчок левой кнопки мыши в поле ввода имени пользователя x:=edt_Login.Left+7; y:=edt_Login.Top+7; SetCursorPos(x,y); mouse_event(MOUSEEVENTF_LEFTDOWN,x,y,0,0); mouse_event(MOUSEEVENTF_LEFTUP,x,y,0,0); // Имитируем щелчок левой кнопки мыши в левом верхнем углу login-формы SetCursorPos(7,7); Application.ProcessMessages; GetCursorPos(pt); SetCursorPos(pt.x,pt.y); // Вытаскиваем login-форму на передний план и активизируем ее Windows.SetForegroundWindow(Self.Handle); end; |