Текущий архив: 2004.12.05;
Скачать: CL | DM;
ВнизПроблема с mdi окнами. Найти похожие ветки
← →
Tria © (2004-11-24 10:37) [0]Выглядит следующим образом. Есть mdi-приложение. В нем открыто mdi child окно (1) с деревом свойств. На форме (1) есть action с shortcut на клавиши Delete. При двойном щелчке на этом дереве (или выбора пункта меню) открывается еще одно child окно (2). Так вот, при открытии этого окна (2) возникают проблемы:
1. При редактировании текста в TEdit клавиша Del не функционирует, событие нажатия этой клавиши не доходит до объекта (OnKeyDown не срабатывает).
2. При открытии окна (2) по двойному щелчку на дереве в окне (1) второй щелчек мышки передается в окно (2) и срабатывает соответствующее событие. При этом открытие окна (2) происходит в событии OnDblClick дерева окна (1).
Может кто подскажет, как с этим бороться?
← →
TUser © (2004-11-24 10:47) [1]Покажи код
← →
tria © (2004-11-24 11:23) [2]Код в окне (1) по открытию окна (2). Вызывается по action с shortcut Enter и по OnDblClick дерева окна (1).
//строки,определяют какое окно открывать
....
//Нашли, что это окно
Else If p is TPerech Then begin
TfmEditPerechn.CreateEdit(self,pAgr);
end
//В окне (2) процедура CreateEdit(self,pAgr);
constructor TfmEditPerechn.CreateEdit(Owner: TComponent;pn:TAgregateObj);
var capt:string;
begin
If Not Assigned(pn) Then begin
ShowMessage("Передали nil!"); Halt;
end;
Create(Owner);
ThisNew:=False;
If pn is TRegister Then begin
Self.pn:=TRegister.Create;
(Self.pn as TRegister).Assign(Pointer(pn));
end
Else
Case pn.Id of
10..69: begin //перечисления
Self.pn:=TPerech.Create;
(Self.pn as TPerech).Assign(Pointer(pn));
end;
70..159:begin// - справочники
self.pn:=TSprav.Create();
(self.pn as TSprav).Assign(Pointer(pn));
end;
160..255:begin// - документы
self.pn:=TDoc.Create();
(self.pn as TDoc).Assign(Pointer(pn));
end;
end;//Case
capt:=Caption;
ObjToForm(pn);
Caption:=Capt+pn.Name;
btOK.Top:=Height-btOK.Height-27;
btOK.Left:=Width-btOK.Width-10;
OrderTabByTopLeft(Self);
end;
← →
tria © (2004-11-24 11:25) [3]Если окно (2) открывать модально, то все проблемы исчезают. (вылазят другие, связанные с тем, что код не рассчитан на работу с модальными окнами).
← →
tria © (2004-11-24 14:37) [4]Неужели нет ни одной идеи?
Никто не сталкивался с такими проблемами?
Страницы: 1 вся ветка
Текущий архив: 2004.12.05;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.039 c