Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2007.03.25;
Скачать: [xml.tar.bz2];

Вниз

Смерть WebBrowser-a при изменении TForm.FormStyle   Найти похожие ветки 

 
Мастерок ©   (2007-01-28 15:43) [0]

WebBrowser окрашивается полностью в белый цвет. Как его оживить?

Далее код примера:

Unit1.pas

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, OleCtrls, SHDocVw, MSHTML;

type
 TForm1 = class(TForm)
   WebBrowser1: TWebBrowser;
   Button1: TButton;
   Button2: TButton;
   procedure FormCreate(Sender: TObject);
   procedure Button1Click(Sender: TObject);
   procedure Button2Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;
IHTMLViewer: IHTMLDocument2disp;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
WebBrowser1.Navigate("about:blank");
IHTMLViewer:=IHTMLDocument2disp(Webbrowser1.Document);
IHTMLViewer.writeln("При изменении FormStyle вместо WebBrowser-a остаётся белый прямоугольник - возмутительно!!!");
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
FormStyle:=fsNormal;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
FormStyle:=fsStayOnTop;
end;

end.

Unit1.dfm

object Form1: TForm1
 Left = 248
 Top = 199
 Width = 570
 Height = 484
 Caption = "Form1"
 Color = clBtnFace
 Font.Charset = DEFAULT_CHARSET
 Font.Color = clWindowText
 Font.Height = -11
 Font.Name = "MS Sans Serif"
 Font.Style = []
 OldCreateOrder = False
 OnCreate = FormCreate
 PixelsPerInch = 96
 TextHeight = 13
 object WebBrowser1: TWebBrowser
   Left = 8
   Top = 8
   Width = 545
   Height = 377
   TabOrder = 0
   ControlData = {
4C00000054380000F72600000000000000000000000000000000000000000000
000000004C000000000000000000000001000000E0D057007335CF11AE690800
2B2E126208000000000000004C0000000114020000000000C000000000000046
8000000000000000000000000000000000000000000000000000000000000000
00000000000000000100000000000000000000000000000000000000}
 end
 object Button1: TButton
   Left = 232
   Top = 392
   Width = 75
   Height = 25
   Caption = "fsNormal"
   TabOrder = 1
   OnClick = Button1Click
 end
 object Button2: TButton
   Left = 232
   Top = 424
   Width = 75
   Height = 25
   Caption = "fsStayOnTop"
   TabOrder = 2
   OnClick = Button2Click
 end
end

Project1.dpr

program Project1;

uses
 Forms,
 Unit1 in "Unit1.pas" {Form1};

{$R *.res}

begin
 Application.Initialize;
 Application.CreateForm(TForm1, Form1);
 Application.Run;
end.


 
Olivetti   (2007-01-29 02:28) [1]

Ну, для начала, вот это как-то нехорошо:

var
 Form1: TForm1;
 IHTMLViewer: IHTMLDocument2disp;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
 WebBrowser1.Navigate("about:blank");
 IHTMLViewer:=IHTMLDocument2disp(Webbrowser1.Document);
 IHTMLViewer.writeln("При изменении FormStyle вместо WebBrowser-a остаётся белый прямоугольник - возмутительно!!!");
end;


Сделай или:

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
 IHTMLViewer: IHTMLDocument2disp;
begin
 WebBrowser1.Navigate("about:blank");
 IHTMLViewer:=IHTMLDocument2disp(Webbrowser1.Document);
 IHTMLViewer.writeln("При изменении FormStyle вместо WebBrowser-a остаётся белый прямоугольник - возмутительно!!!");
end;


или (нелогичный вариант):

var
 Form1: TForm1;
 IHTMLViewer: IHTMLDocument2disp;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
 WebBrowser1.Navigate("about:blank");
 IHTMLViewer:=IHTMLDocument2disp(Webbrowser1.Document);
 IHTMLViewer.writeln("При изменении FormStyle вместо WebBrowser-a остаётся белый прямоугольник - возмутительно!!!");
 IHTMLViewer := nil;
end;


 
Мастерок ©   (2007-01-29 05:14) [2]

Вот блин - не действует
Пробовал оба варианта.


 
DrPass ©   (2007-01-29 12:13) [3]

Цитата из справки Delphi:
"Note: It is not advisable to change FormStyle at runtime."

Чисто умозрительно - попробуй это
WebBrowser1.Navigate("about:blank");
IHTMLViewer:=IHTMLDocument2disp(Webbrowser1.Document);
IHTMLViewer.writeln("При изменении FormStyle вместо WebBrowser-a остаётся белый прямоугольник - возмутительно!!!");

делать и после изменения стиля


 
umbra ©   (2007-01-29 13:43) [4]


> WebBrowser окрашивается полностью в белый цвет

при изменении FormStyle меняется хендл формы. Поскольку  TWebBrowser - однопоточный СОМ-сервер, то его работа держится на сообщениях, которые посылаются окну-контейнеру (форме). Если хендл формы изменился, а веб-броузер не получает сообщений и, соответственно не знает, что делать.
 Попробуйте после изменения FormStyle присвоить значение хендла формы св-ву WebBrowser1.ParentWindow


 
TIF ©   (2007-01-29 16:03) [5]

Люди, может чуть не в тему, но как сделать Web Browser  невидимым? А то у него свойства visible нет...


 
umbra ©   (2007-01-29 16:37) [6]

WebBrowser.Application.Visible ?



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

Форум: "Основная";
Текущий архив: 2007.03.25;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.075 c
15-1172673922
partizan
2007-02-28 17:45
2007.03.25
Компонента для работы с ФТП


15-1172746544
trhwet
2007-03-01 13:55
2007.03.25
Можно ли увеличить объм оперативной памяти в ноутбуке?


15-1172915019
Kerk
2007-03-03 12:43
2007.03.25
Предвыборная агитация


3-1167831546
olevacho_
2007-01-03 16:39
2007.03.25
синхронизация данных между базами


15-1172430056
Nic
2007-02-25 22:00
2007.03.25
ЖК-монитор, WinXP, проблемы





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский