Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.09.02;
Скачать: CL | DM;

Вниз

Хелп! НЕ ПОНИМАЮ В ЧЕМ ДЕЛО !   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.011 c
14-3593
besa
2002-08-05 17:33
2002.09.02
VisionFS 3.x под SCO Unix vare 7.01


6-3553
ec
2002-06-20 16:18
2002.09.02
многопоточность


1-3362
maxim2
2002-08-22 08:09
2002.09.02
Не запускается Delphi говорить что испорчен файл RTL60.BPL


1-3379
Jony
2002-08-22 10:39
2002.09.02
Групповая операция - одним оператором


1-3461
Unhandled Exception
2002-08-20 17:00
2002.09.02
Разное поведение компонента под Win98 и Win2000