Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.009 c
1-47458
ded_di
2002-07-03 14:28
2002.07.15
TExcelApplication


14-47710
agrig
2002-06-18 21:09
2002.07.15
как 1С v.6 записывает свои файлы и чем сжимает?


14-47669
Андриянов Денис
2002-06-09 19:04
2002.07.15
Есть ли такая библиотека которая делает возмо


1-47335
Plt
2002-07-01 10:15
2002.07.15
Как работать с TWordDocument: текст, таблицы, формулы


1-47550
sector
2002-06-28 01:21
2002.07.15
Цвет символов в RichEdit




   Наверх