Форум: "Основная";
Текущий архив: 2002.09.02;
Скачать: [xml.tar.bz2];
ВнизХелп! НЕ ПОНИМАЮ В ЧЕМ ДЕЛО ! Найти похожие ветки
← →
NeyroSpace (2002-08-22 14:14) [0]Есть 3а Unit"а. В первом Form1, во втором Form2, созданая как модал Form1, и Unit3 в котором хранится процедура динамического создания обьекта(ов).
Из Unit3"a динамически создаю компонент на Form1, расположенной в Unit1"е:
Edit[CurEditComponent] := TEdit.CreateParented(Form1.Handle);
Все нормально, но как только я пытаюсь создать тот же самый компонент, для Form2 (модального окна Form1) - ничего не получается.
Edit[CurEditComponent] := TEdit.CreateParented(Form2.Handle);
по всем признакам компонент создается, но его не видно.
Однако, если текст создания перенести в Unit2 с модальной Form2, то все работает. Мне хотелось бы, поместить процеДУРУ динамического создания обьекта(ов) в отдельный модуль (чтобы не засорять Unit2), и передавать ему только параметры создания обьекта(ов), т.е. сделать некий универсальный юнит для дальнейшего использования.
Если кто-нить знает в чем трабла, помогите плизззз...
← →
ShuraGrp (2002-08-22 14:36) [1]Не видно потому, что надо Edit[CurEditComponent].parent = Form1.
Могу ошибаться, но TEdit.CreateParented(Form1);
← →
NeyroSpace (2002-08-22 14:48) [2]Это одно и тоже, можно передавать handle родительского окна, можно название компонента родительского окна:
на прямую
Edit[CurEditComponent].parent = Form1
или через переменную, что надо в моем слуае
function (название sParent:String или Handle:Hwnd или Component:TWinControl родительского окна)//что ни передавай, ну никак не получается создать на модальном окне , то что легко создается на его родителе
var
TempComp:TWinControl;
sParent:string;
..
begin
..
sParent:="Form2";//уже и так :-)
TempComp:=TWinControl(Form2.FindComponent(sParent));
if TempComp<>nil then begin
ParentHandle := TempComp.Handle;
//и через хендел, компонент создается, его свойства читаются но его не видно
← →
Smithson (2002-08-22 14:53) [3]Когда ты указываешь лялялял.Create(Form1), ты уведомляешь лялялял, что его родителем числится Form1. Но надо еще уведомить Form1, что ему подсунули очередного ребенка. Form1.InsertComponent(лялялял).
← →
NeyroSpace (2002-08-22 15:08) [4]Попробовал,не помогло. Значит трабла не в этом.
TEdit.CreateParented(Form1.Handle) - работает
TEdit.CreateParented(Form2.Handle) - нет
, где Form2 модальная относительно Form1.
← →
Skier (2002-08-22 15:36) [5]>NeyroSpace
Покажи код : как ты создаёшь TEdit-ы на Form2
(строки Edit[CurEditComponent] := TEdit.CreateParented(Form2.Handle) - не достаточно...)
И что есть Edit[...] ?
← →
NeyroSpace (inside deep debuging) (2002-08-22 16:02) [6]Edit[CurEditComponent] := TEdit.CreateParented(ParentHandle);
Form2.InsertComponent(Edit[CurEditComponent]);
так тоже пробовал но это дело не меняет. Я заметил самое главное на обычной форме Form1 создается на Form2(модальной от Form1) нет.
Трабла именно в том что Form2 модальное.
Edit:array of TEdit;//SetLength не забываю :-)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.09.02;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c