Текущий архив: 2002.07.15;
Скачать: CL | DM;
Вниз
Передача фокуса форме 8-( Найти похожие ветки
← →
ЮРИЙ_К © (2002-06-26 13:09) [0]Братья и сестры ! Проблем произошел с передачей фокуса. Подскажите. Из одной формы вызываю другую, первую перед этим минимизирую, так вот вторая, появившись не получает фокус, нужно обязательно на нее мышкой тыкнуть. Как лечить? Да форму вторую вызываю и савлю в ShowModal.
← →
Skier © (2002-06-26 13:13) [1]> ЮРИЙ_К
Код в студию !
← →
panov © (2002-06-26 13:34) [2]Form1.Hide;
Form2.ShowModal;
← →
ЮРИЙ_К © (2002-06-26 14:52) [3]panov
Hide не могу, т.к. у меня на первой форме блокнот, вторая открывается со второй страницы, короче когда даю Show - устанавливается на первую станицу, геморно короче 8-(.
А вот и кодик подоспел, хотя ничего там особого нету
Screen.Cursor := crHourGlass;
SotrFrm.WindowState := wsMinimized;
InsNUFrm := TInsNUFrm.Create(Application);
if InsNUFrm.ShowModal = mrOk then
begin
... ля-ля-ля- тополя
end;
InsNUFrm.Close;
InsNUFrm.Free;
SotrFrm.WindowState := wsNormal;
← →
Skier © (2002-06-26 14:59) [4]> ЮРИЙ_К
Странно...
У меня твой код прекрасно работает.
Какие св-ва ты менял (в ИО) у форм SotrFrm и InsNUFrm ?
← →
Skier © (2002-06-26 15:03) [5]> ЮРИЙ_К
В догонку.
Какие события у формы InsNUFrm ты обрабатываешь ?
← →
ЮРИЙ_К © (2002-06-26 15:11) [6]> Skier
Не понял, что ента ИО ?
Единственное событие
procedure TInsNUFrm.FormActivate(Sender: TObject);
begin
Screen.Cursor := crDefault;
if Sound AND StartZv then LoadSound("Open_waw");
end;
← →
Юрий_К © (2002-06-26 15:12) [7]Дошло 8-)
во
object InsNUFrm: TInsNUFrm
Left = 252
Top = 157
BorderIcons = [biSystemMenu]
BorderStyle = bsSingle
ClientHeight = 176
ClientWidth = 475
Color = clBtnFace
Constraints.MaxWidth = 483
Constraints.MinWidth = 483
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = "MS Sans Serif"
Font.Style = []
KeyPreview = True
OldCreateOrder = False
Position = poScreenCenter
OnActivate = FormActivate
PixelsPerInch = 96
TextHeight = 13
← →
Skier © (2002-06-26 15:14) [8]> ЮРИЙ_К
ИО - энто Инспектор Объектов
А попробуйте убрать (временно) событие FormActivate
Тоже самое происходит ???
← →
ЮРИЙ_К © (2002-06-26 15:37) [9]> Skier
Угу 8-((
Так самое интересное, что я принудительно делаю
TEdit1.SetFocus, курсор в поле ввода моргает, Т.Е. зафокусился, наченаешь по клаве давить - все в пустоте, тконешь зверем мышиным - форма фокусится, ой. млин, нисиво не понимаю 8>(
← →
Skier © (2002-06-26 15:45) [10]> ЮРИЙ_К
Где ты делаешь TEdit1.SetFocus ?
← →
ЮРИЙ_К © (2002-06-26 17:21) [11]> Skier
на OnShow или Activate, без разницы
← →
Skier © (2002-06-26 17:33) [12]>ЮРИЙ_К
Честно говоря, какая-то странная проблема.
Ну попробуй так что ли :
1) Создай новое приложение
2) Создай там 2 формы
3) Не меняй никаких свойств у форм и не пиши
никаких обработчиков событий
4) И попробуй тот же подход, т.е.
SotrFrm.WindowState := wsMinimized;
InsNUFrm := TInsNUFrm.Create(Application);
if InsNUFrm.ShowModal = mrOk then
begin
... ля-ля-ля- тополя
end;
InsNUFrm.Close;
InsNUFrm.Free;
SotrFrm.WindowState := wsNormal;
5) Может тогда будет ясно...почему...
← →
Volj © (2002-06-26 21:07) [13]Попробуй сделать
windows.setfocus(InsNUFrm.Handle)
.
У меня были подобные грабли с вложенными MDI-формами. Почему-то дельфийский SetFocus не работал :(
← →
ЮРИЙ_К © (2002-06-27 15:33) [14]> Volj
Спасибо, помогло 8-)
← →
pasha_golub © (2002-06-27 15:47) [15]Попробуй SetWindowPos...
Страницы: 1 вся ветка
Текущий архив: 2002.07.15;
Скачать: CL | DM;
Память: 0.5 MB
Время: 0.011 c