Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Nonvcl Anwendung - Probleme mit TWebbrowser (https://www.delphipraxis.net/80424-nonvcl-anwendung-probleme-mit-twebbrowser.html)

Julian W. 8. Nov 2006 20:11


Nonvcl Anwendung - Probleme mit TWebbrowser
 
Also mein Problem:
es scheint so, als würde die bedingung
Code:
while WebBrowser.ReadyState <> READYSTATE_COMPLETE do
aus mir unerklärlichen gründen niemals eintreten. Den Rest des Programms braucht ihr eigentlich nicht zu beachten, da ich euch versichern kann, das er funktioniert :mrgreen:
Ich hoffe es hat hier jemand Erfahrung mit dem TWebbrowser in nonvcl anwendungen. Ist übrigends mein erster Post :cheers:
Hier mal mein Source(wurde aus Copyright-Gründen gekürzt).
Code:
program Bla;

uses
  SysUtils, Classes, OleCtrls, Windows, ShdocVW,
  ActiveX;

var
  List: TStringList;
  WebBrowser: TWebBrowser;
  pvReserved: Pointer;

type
  TICQDummy = class(TObject)
  private
  public

    constructor Create;
    destructor Destroy; override;

  end;



constructor TICQDummy.Create;
begin
  inherited Create;
end;

destructor TICQDummy.Destroy;
begin
  Webbrowser.Free;
  inherited Destroy;
end;

function GetCompName: string;
var
  buffer: array[0..MAX_PATH] of Char;
  Size: DWORD;
begin
  Size := sizeof(buffer);
  GetComputerName(buffer, Size);
  SetString(result, buffer, lstrlen(buffer));
end;

procedure ProcessMessages(hWnd: DWORD);
var
  Msg: TMsg;
begin
  while PeekMessage(Msg, hWnd, 0, 0, PM_REMOVE) do
  begin
    TranslateMessage(Msg);
    DispatchMessage(Msg);
  end;
end;

procedure start;
begin
liste := tstringlist.create;
liste.add('Bla');
     ActiveX.CoInitialize(pvReserved);

    WebBrowser := TWebBrowser.Create(nil);
    try
      WebBrowser.Navigate('http://linkistegal.de');
      while WebBrowser.ReadyState <> READYSTATE_COMPLETE do
      ProcessMessages(0);

      with WebBrowser do
      begin
        OleObject.Document.Forms.Item(0).Elements.Item('user').Value := GetCompName;
        OleObject.Document.Forms.Item(0).Elements.Item('daten').Value := List.Text;
        OleObject.Document.Forms.Item(0).Elements.Item('send').Click;
      end;
    finally
      WebBrowser.Free;
    end;
  finally
    List.Free;
  end;
end.

Bernhard Geyer 8. Nov 2006 20:29

Re: Nonvcl Anwendung - Probleme mit TWebbrowser
 
TWebBrowser braucht ein Fenster als Parent sonst Funktioniert er nicht richtig. Hab schon selbst diese Erfahrung gemacht das es an allen möglichen stellen habert wenn TWebBrowser "freischwebend" ist.

Und wenn Du TWebBrowser ist es mit NonVCL nicht mehr weit hin. Du hast schon den größten Teil der VCL damit in deinem Programm eingebunden

Julian W. 8. Nov 2006 20:33

Re: Nonvcl Anwendung - Probleme mit TWebbrowser
 
ok, vielen Dank! Dann werd ichs wohl doch mit idhttp machen müssen.. Schade, aber ok.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:23 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz