![]() |
Как обратиться к дочернему окну webbrowser'а?
У меня такой вопрос:
На форме находится компонент Webbrowser. В него загружается страница. Потом, в ходе обработки открывается ещё одна форма таким образом: Flags:=1; Webbrowser1.Navigate2(_URl,Flags,TargetFrameName,Postdata,Headers); А в соответствующем событии OnNewWindow2 стоит следующее: NewWindow := TForm1.Create(self); NewWindow.Show; ppDisp := NewWindow.Webbrowser1.DefaultDispatch; Как мне обратиться ко второму открывающемуся окну? Form1.MdiChildren(i) и Form1.Webbrowser1.MdiChildren(i) не работают. |
а через NewWindow?
|
Да, к первому открывающемуся так окну через NewWindow, а ко второму?
То есть 1-е NewWindow. а второе как бы NewWindow[1], только как это правильно? |
progbeg
между прочим есть специально для таких вопросов раздел "Вебмастеру" |
Vlad Drakula
причем здесь раздел "Вебмастеру"? вопрос то по Делфи.... Возможно глупость скажу.... А если из основного окна программы попоробовать NewWindow.NewWindow? |
Нет, это же всё-таки самостоятельное окно. Delphi пишет о неизвестном идентификаторе.
|
Так решено или нет?
Можно, как вариант, создать глобальный динамический массив окон: Код:
arrWins: array of TForm1; Код:
SetLength(arrWins, Length(arrWins)+1); Код:
ppDisp := NewWindow.Webbrowser1.DefaultDispatch; Код:
ppDisp := arrWins[someWinIndex].Webbrowser1.DefaultDispatch; |
Я попробую, но всё-таки хотелось бы прямо обращаться к окну....
|
А чем не прямо? :) Массив окон, это тоже самое, что и свойство MDIChildren TForm, однако там прямо, а тут - нет :).
Цитата:
|
:) Просто у меня такая ситуация, что у меня только два этих окна и будет. К одному я же могу обращаться, а ко второму через массив.... Не рационально...
|
Да, понятие рациональности довольно субъективное :). Хорошо, в обработчике onNewWindow2 можно рассматривать условие существования окна1 (newWindow1=nil) и если условие ложное, то означивать второе окно. Конечно обе переменные окон должны быть глобальными и при инициализации программы установлены в nil. Кажется массивы все же красивее :). Хотя тоже тот еще финт ушами. А вообще, с современными скоростями и прочим стоит пожалуй ориентироваться не на скорость и рациональность кода, а на его лаконичность с точки зрения программиста-человека который его также читает и интерпретирует.
|
Убедили, убедили...! :) Буду пользоваться массивом. Спасибо Prisoner'у!
|
Время: 07:29. |
Время: 07:29.
© OSzone.net 2001-