AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Fehler bei Aufruf eines TForms mit TWebbrowser aus DLL
Thema durchsuchen
Ansicht
Themen-Optionen

Fehler bei Aufruf eines TForms mit TWebbrowser aus DLL

Ein Thema von MaBuSE · begonnen am 6. Jan 2005 · letzter Beitrag vom 10. Jan 2005
 
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.837 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Fehler bei Aufruf eines TForms mit TWebbrowser aus DLL

  Alt 6. Jan 2005, 11:05
Hallo,

wenn ich eine Unit1.pas mit einem TWebBrowser (Standard Komponente aus Internetpallette) aus einer Applikation erzeuge klappt das ohne Probleme, aus einer DLL nicht.

Unit1.pas:
Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    WebBrowser1: TWebBrowser;
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

end.
Aus einer Unit2.pas (Hauptformular) kann das Form ohne Probleme erzeugt werden.
Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
begin
  Form1 := TForm1.Create(Application);
  try
    Form1.ShowModal;
  finally
    Form1.Free;
  end;
end;
Das klappt super !!!

Wenn ich nun eine DLL erzeuge:

Project1.dpr:
Delphi-Quellcode:
library Project1;

uses
  Forms,
  SysUtils,
  Classes,
  Unit1 in 'Unit1.pas{Form1};

{$R *.res}

procedure showPdf;
begin
  Form1 := TForm1.Create(Application);
  try
    Form1.ShowModal;
  finally
    Form1.Free;
  end;
end;

procedure showPdfWithApp(App: TApplication);
var
  dllApp : TApplication;
begin
  dllApp := Application;
  Application := App;
  Form1 := TForm1.Create(App);
  try
    Form1.ShowModal;
  finally
    Form1.Free;
  end;
  Application := dllApp;
end;

exports
  showPdf, showPdfWithApp;

begin
end.
und dann in einem Projekt2.exe die Funktion aufrufe gibts einen Fehler:

Unit2.pas vom Project2.dpr:
Delphi-Quellcode:
unit Unit2;

interface

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

type
  TForm2 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

procedure showPdf; external 'Project1.dll';
procedure showPdfWithApp(app: TApplication); external 'Project1.dll';

procedure TForm2.Button1Click(Sender: TObject);
begin
  showPdf;
end;

procedure TForm2.Button2Click(Sender: TObject);
begin
  showPdfWithApp(Application);
end;

end.
Die TWebBrowser Komponente wirft einen EOleSysError mit Meldung :
Zitat:
CoInitialize wurde nicht aufgerufen
Was ist zu tun.

Ich hatte erst den Verdacht, er will die Application der Anwendung haben, aber das half nichts.
(Bei MDI Fenstern aus der DLL war das so)
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:12 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