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

Вниз

Динамическое создание формы с TWebBrowser   Найти похожие ветки 

 
__Dmitry   (2004-01-23 13:27) [0]

Я создаю динамически на TPageControl страницы. На каждую, я динмичеси привязываю создаваемую форму которая содержит кроме всего прочего и браузер.

Все загружается и работает, но:

Когда я переключаюсь с одного таба на другой, содержимое в TWebBrowser полностью пропадает (так как будто я его создал заново и небыло ниразу Navigate).

Приходится в TWebBrowser, при его активизации, грузить заново всю HTML страницу, что не является решением проблемы.

Что же мне делать?


 
злой мутант   (2004-01-23 13:38) [1]

А формы создаются случаем не в момент нажатия на элемент PageControl`а? :)


 
__Dmitry   (2004-02-12 15:12) [2]

нет пользователь сам выбирает момент создания формы.
А чем собственно черевато создание в момент нажатия?


 
злой мутант   (2004-02-12 15:18) [3]

например тем, что формы будут создаваться заново, и, как следствие, WebBrouser будет пустым


 
__Dmitry   (2004-02-12 15:24) [4]

судя повсему это и происходит,
но немогу понять где.
Как это можно определить и исправить?


 
__Dmitry   (2004-02-12 15:46) [5]

Привожу вырезки из кода.

Если кто то сможет разобраться, очень прошу помочь



// Форма
//-----------------------
THelpForm = class(TForm)
WB: TWebBrowser;
public
. . . . . . . . . . .
private
fHelp:THelp;
end;

// Элемент коллекции окон
//-------------------------------------
THelp = class(TInterfacedObject, IHelp)
private
constructor Create(AForm: THelpForm);
procedure OpenURL(AURL:string);
procedure Activate;
procedure Update;
. . . . . . . . . . . . . . . .
private
fHelpForm: THelpForm;
. . . . . . . . . . . . . . . .
end;

// Коллекция окон
//-------------------------------------
THelpFactory = class(TInterfacedObject, IHelpFactory)
private
function CreateTabSheet(AOwner: TElPageControl): IHelp;
. . . . . . . . . . . . . . . .
private
fHelps: TInterfaceList;
. . . . . . . . . . . . . . . .
end;

-------------------------------------------------------

function THelpFactory.CreateTabSheet(AOwner: TPageControl): IHelp;
var
Sheet: THelpTabSheet;
LForm: THelpForm;
begin
Sheet := THelpTabSheet.Create(AOwner);
try
Sheet.PageControl := AOwner;
LForm := THelpForm.Create(Sheet);
LForm.Parent := Sheet;
with LForm do begin
fHelp := THelp.Create(LForm);
Sheet.objParam := TObject(fHelp);
Result := fHelp;
Align := alClient;
Visible := TRUE;
AOwner.ActivePage := Sheet;
end;
if Result <> nil then fHelps.Add(Result);
except
Sheet.Free;
end;
end;

-------------------------------------------------------

procedure THelp.OpenURL(AURL: string);
var
Flags: OLEVariant;
begin
Flags := 0;
fHelp.Navigate(AURL, Flags, Flags, Flags, Flags);
fURL := AURL;
fHelp.DoUpdateCaption;
end;



а теперь вызов


procedure TMainForm.DoOpenHelp(AURL: string);
var
LHelp: IHelp;
begin
. . . . . . . . . . . . . . . .

LHelp := GI_HelpFactory.CreateTabSheet(PageControl);
if LHelp <> nil then LHelp.OpenURL(AURL);
end;



 
__Dmitry   (2004-02-12 15:53) [6]

проверил,
форма при переключении заново не создается
OnCreate не срабатывает.

Каие нибудь еще есть версии?


 
__Dmitry   (2004-02-12 16:20) [7]

Такая особенность:
если на форму выкладываю TEdit
то они недоступны, т.е. форус на них не наводится.
Вот если поставлю Edit1.SetFocus тогда порядок можно редактировать. Правда если фокус опять потеряется то вернуть его нелья.

Люди! Ну помогите чем нибудь! Почему так странно ведут себя компоненты?



Страницы: 1 вся ветка

Текущий архив: 2004.02.25;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.031 c
7-80325
DelphiNew
2003-12-02 11:40
2004.02.25
Проблема приёма данных с СОМ порта


1-79879
BALU1111
2004-02-09 13:31
2004.02.25
Файл-отчет в Word 2000


1-79989
HF-Trade
2004-02-14 10:52
2004.02.25
Как сохраниться в определенную строку.


14-80123
JOJIN
2004-01-31 02:08
2004.02.25
OFF На заказ кто нибудь работает?


14-80119
Я хороший ;)
2004-02-02 19:09
2004.02.25
Подскажите ссылку





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский