Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.02.2012, 13:41   #1
bibika
Пользователь
 
Регистрация: 11.10.2011
Сообщений: 18
По умолчанию TWebBrowser полная загрузка

Имеется компонент TWebBrowser, который грузит с диска большое дерево на html и JavaScript. При первом запуске программы наблюдается некоторая задержка при прорисовке страницы. Подскажите, как на время полной загрузки страницы, закрыть ее другой формой - типа сплаш скрина. Я себе так вижу алгоритм "Показывать Сплаш форм пока вся страница не загрузится". Помогите с доработкой вот такого простого кода:

Код:
procedure TForm1.FormCreate(Sender: TObject);
var dirsp:string;

begin
GetDir (0, dirsp);
dirsp:=dirsp+'/html/index.htm';
wb1.Navigate(dirsp);
end;

Спасибо
bibika вне форума Ответить с цитированием
Старый 27.02.2012, 14:26   #2
denisbrain
Форумчанин
 
Регистрация: 29.05.2011
Сообщений: 449
Радость

Цитата:
Сообщение от bibika Посмотреть сообщение
Имеется компонент TWebBrowser, который грузит с диска большое дерево на html и JavaScript. При первом запуске программы наблюдается некоторая задержка при прорисовке страницы. Подскажите, как на время полной загрузки страницы, закрыть ее другой формой - типа сплаш скрина. Я себе так вижу алгоритм "Показывать Сплаш форм пока вся страница не загрузится". Помогите с доработкой вот такого простого кода:

Код:
procedure TForm1.FormCreate(Sender: TObject);
var dirsp:string;

begin
GetDir (0, dirsp);
dirsp:=dirsp+'/html/index.htm';
wb1.Navigate(dirsp);
end;

Спасибо
а есть ли вариант дерево реконструировать через Ajax подгружать только нужные компоненты дерева ?!
задания на pascal/delphi ICQ 368254335
Tel +79177425326 mail denis-naymov1985(at)mail.ru login skype denis.new.skype
denisbrain вне форума Ответить с цитированием
Старый 27.02.2012, 14:47   #3
bibika
Пользователь
 
Регистрация: 11.10.2011
Сообщений: 18
По умолчанию

Цитата:
Сообщение от denisbrain Посмотреть сообщение
а есть ли вариант дерево реконструировать через Ajax подгружать только нужные компоненты дерева ?!
Нет к сожалению, программа будет запускаться с носителя. Я думал так, пока грузится страница закрывать ее другой формой, только страница прогрузилась, другую форму закрываем. Но как это сделать
bibika вне форума Ответить с цитированием
Старый 27.02.2012, 15:24   #4
denisbrain
Форумчанин
 
Регистрация: 29.05.2011
Сообщений: 449
По умолчанию

Цитата:
Сообщение от bibika Посмотреть сообщение
Нет к сожалению, программа будет запускаться с носителя. Я думал так, пока грузится страница закрывать ее другой формой, только страница прогрузилась, другую форму закрываем. Но как это сделать
Код:


  webComplit:boolean;
  load:boolean=true;
implementation



{$R *.dfm}


procedure sleep(m:integer);
var i,t:integer;
begin
t:=windows.GetTickCount;
  repeat
   i:=windows.GetTickCount;
   if ((i-t)>m) then exit;
   application.ProcessMessages;
  until false;
end;
procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
begin
   webComplit:=true;
end;

procedure TForm1.FormActivate(Sender: TObject);
var x:integer;
begin
if load then begin
  load:=false;
  x:=form1.left;
  webComplit:=false;
  form1.left:=form1.width*(-1)-50;
  form1.WebBrowser1.Navigate('netsoftware.ucoz.ru');
  repeat
     sleep(1000);
  until webComplit;
  form1.left:=x;
end;
задания на pascal/delphi ICQ 368254335
Tel +79177425326 mail denis-naymov1985(at)mail.ru login skype denis.new.skype
denisbrain вне форума Ответить с цитированием
Старый 27.02.2012, 15:47   #5
bibika
Пользователь
 
Регистрация: 11.10.2011
Сообщений: 18
По умолчанию

Спасибо за быстрый ответ. Если не сложно приложите к сообщению полные исходные тексты, а то у меня компилятор жутко ругается на ошибки.

В другом форуме рекомендуют использовать TWebrowser.OnDocumentComplete. Что выбрать?

Люди покажите простой работающий код с этим свойством.
Еще раз спасибо

Последний раз редактировалось bibika; 27.02.2012 в 22:20.
bibika вне форума Ответить с цитированием
Старый 27.02.2012, 23:48   #6
bibika
Пользователь
 
Регистрация: 11.10.2011
Сообщений: 18
По умолчанию

Как мне прикрутить TWebrowser.OnDocumentComplete к коду с первого сообщения. Народ помогите, а то я уже такое нагуглил, что вообще запутался.
bibika вне форума Ответить с цитированием
Старый 28.02.2012, 07:04   #7
denisbrain
Форумчанин
 
Регистрация: 29.05.2011
Сообщений: 449
По умолчанию

Цитата:
Сообщение от bibika Посмотреть сообщение
Как мне прикрутить TWebrowser.OnDocumentComplete к коду с первого сообщения. Народ помогите, а то я уже такое нагуглил, что вообще запутался.
примерно так
Изображения
Тип файла: jpg webBrowser1.jpg (148.7 Кб, 125 просмотров)
задания на pascal/delphi ICQ 368254335
Tel +79177425326 mail denis-naymov1985(at)mail.ru login skype denis.new.skype
denisbrain вне форума Ответить с цитированием
Старый 28.02.2012, 09:23   #8
bibika
Пользователь
 
Регистрация: 11.10.2011
Сообщений: 18
По умолчанию

Цитата:
Сообщение от denisbrain Посмотреть сообщение
примерно так
Нет я понимаю что нужно кликнуть по левой панели. Я спрашивал не о том, а о том как все это дело прикрутить к такому коду

Код:
procedure TForm1.FormCreate(Sender: TObject);
var dirsp:string;

begin
GetDir (0, dirsp);
dirsp:=dirsp+'/html/index.htm';
wb1.Navigate(dirsp);
end;
что б пока идет отображение index.htm это занимает около 5-8 сек, закрыть форму другой формой с картинкой.
bibika вне форума Ответить с цитированием
Старый 28.02.2012, 09:28   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

кидаете на форму панель делаете её на всю форму, на нее кидете картинку(Image)
изначально она видима.

потом в OnDocumentComplete скрываете(<ваша панель>.Visible:=false) её и все.

denisbrain, код из поста 4 лучше выкинуть.
1)не хорошо называть процедуру так же как другую(причем системная и важная)
2)зачем второй раз входить в цикл сообщений, когда можно просто вернуться к нему?
3)активное ожидание вместо нормально продуманого кода.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 28.02.2012, 09:49   #10
denisbrain
Форумчанин
 
Регистрация: 29.05.2011
Сообщений: 449
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
кидаете на форму панель делаете её на всю форму, на нее кидете картинку(Image)
изначально она видима.

потом в OnDocumentComplete скрываете(<ваша панель>.Visible:=false) её и все.

denisbrain, код из поста 4 лучше выкинуть.
1)не хорошо называть процедуру так же как другую(причем системная и важная)
2)зачем второй раз входить в цикл сообщений, когда можно просто вернуться к нему?
3)активное ожидание вместо нормально продуманого кода.
трудимся!! пишем код "не приходя в сознание"
Вложения
Тип файла: rar программа демотиватор.rar (859.3 Кб, 12 просмотров)
задания на pascal/delphi ICQ 368254335
Tel +79177425326 mail denis-naymov1985(at)mail.ru login skype denis.new.skype
denisbrain вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Полная информация о компьютере Harikolo Общие вопросы Delphi 6 15.09.2019 02:49
загрузка TWebBrowser в потоке xrob Общие вопросы Delphi 4 23.02.2012 08:47
Lazarus: Полная кроссплатформенность? docbrain Lazarus, Free Pascal, CodeTyphon 10 16.05.2010 15:42
Incompatible types: 'Unit1.TWebBrowser' and 'SHDocVw.TWebBrowser' simon15x Общие вопросы Delphi 0 10.04.2010 03:11
Полная загрузка ЦП в цикле while ActioNs Общие вопросы C/C++ 3 15.08.2009 19:52