Einzelnen Beitrag anzeigen

nobile

Registriert seit: 15. Nov 2012
3 Beiträge
 
#4

AW: twwdbrichedit - Element '' hat kein übergeordnetes Fenster

  Alt 15. Nov 2012, 17:34
Sorry - versuche es mal mit dem Code beizufügen :

Code der EXE-Datei auf welchem blos das TwwDBRichEdit und der Button für den Aufruf der DLL ist.
Code:
unit probe;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, wwriched, DB, DBAccess, Uni, UniProvider,
  MySQLUniProvider, MemDS, AdvGlowButton;

type
  TAufrufDLL = procedure (WasAuchImmerZuUebergebenist:string);stdcall;

  TForm1 = class(TForm)
    wwDBRichEdit1: TwwDBRichEdit;
    UniQuery1: TUniQuery;
    MySQLUniProvider1: TMySQLUniProvider;
    UniDataSource1: TUniDataSource;
    UniConnection1: TUniConnection;
    Button_AufrufDLL: TAdvGlowButton;
    procedure FormShow(Sender: TObject);
    procedure Button_AufrufDLLClick(Sender: TObject);

  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}


procedure TForm1.FormShow(Sender: TObject);
begin
  UniQuery1.Open; // Query zum öffnen der Datenbank und anzeigen der Daten im TwwDBRichEdit - Öffnen des RichEditDialogs über F2 funktioniert tadellos
end;


procedure TForm1.Button_AufrufDLLClick(Sender: TObject);
var
  Handle     : THandle;
  pfad       : string;
  ProcAufruf : TAufrufDLL;

begin
  pfad := 'C:\PROBELAUF\Probedll.dll';
  Handle:=LoadLibrary(PChar(pfad));
  if Handle <> 0 then
    begin
      @ProcAufruf := GetProcAddress(Handle, 'ShowProbeDLL');
      if @ProcAufruf <> nil then
        begin
          ProcAufruf('blabla');
      end;
      FreeLibrary(Handle);
  end;
end;

end.

Code von der DLL welche über den Button "Button_AufrufDLL" aufgerufen wird. Auf diesem Formular ist ebenfalls ein TwwDBRichEdit, in welchem die Daten von der Datenbank angezeigt wird, aber beim Drücken der Taste F2 zum Öffnen des Dialogfeldes kommt die Fehlermeldung.
Code:
unit Unit_ProbeDLL;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, AdvPageControl, ComCtrls, StdCtrls, AdvGlowButton,
  ToolWin, DB, MemDS, DBAccess, Uni, AdvDBLookupComboBox, UniProvider,
  MySQLUniProvider, wwriched, ExtCtrls, DBCtrls;

type
  TF_ProbeDLL = class(TForm)
    my: TUniQuery;
    ud: TUniDataSource;
    MySQLUniProvider1: TMySQLUniProvider;
    re: TwwDBRichEdit;
    UniConnection1: TUniConnection;
    procedure FormShow(Sender: TObject);

  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  F_ProbeDLL: TF_ProbeDLL;

implementation

{$R *.dfm}

procedure ShowProbeDLL(WasAuchImmerZuUebergebenIst:string); stdcall;
begin
  with TF_ProbeDLL.Create(application) do
    try
      ShowModal;
    finally
      Free;
    end;
end;

exports

  ShowProbeDLL;

procedure TF_ProbeDLL.FormShow(Sender: TObject);
begin
  my.Open; // Query zum öffnen der Datenbank und anzeigen der Daten im TwwDBRichEdit - Öffnen des RichEditDialogs über F2 funktioniert nicht - FEHLER
end;

end.
Ich hoffe es ist nun etwas verständlicher
  Mit Zitat antworten Zitat