Einzelnen Beitrag anzeigen

Sillium

Registriert seit: 9. Jul 2005
24 Beiträge
 
#1

Thread aus DLL ohne fehler schließen!!

  Alt 15. Sep 2005, 20:44
Hi,


ich erstelle in einer DLL einen Thread:

Delphi-Quellcode:
type
  TAnimationThread = class(TThread)
  private
    { Private declarations }
    FWnd: HWND;
    DC : HDC;
    FPaintRect: TRect;
    FfgColor: TColor;
    FInterval: integer;
  protected

  protected
    procedure Execute; override;
  public
    FName : String;
    Image :TBitmap;
    wnd : hWnd;
    procedure Ready;
    constructor Create(barcolor : TColor; name : String);
  end;

{**********************************************************************
  Konstruktor
***********************************************************************}


constructor TAnimationThread.Create(barcolor : TColor; name : string);
begin
  inherited Create(True);
  Application.CreateForm(TSplash2, Splash2);
  Splash2.Show;
  FfgColor := barColor;
  FName := name ;
  //FreeOnterminate := True;
  Resume;
end; { TAnimationThread.Create }
Im TAnimationThread.execute wird eine Form (Splash2) erstellt, die den Benutzer zeigt, dass gerade was gemacht wird (Bitte warten). Auf dieser Form läuft ein einem Panel ein Bitmap von links nach rechts und zurück............

Funktioniert alles wunderbar!

So wird der Thread aufgerufen:
Delphi-Quellcode:
{* Start-Prozedur *}
procedure DLLWorking(nameP:PChar);stdcall;
var
name:String;
ani : TAnimationThread;
begin
      name:=String(nameP);
      ani := TanimationThread.Create($00556F60, name);
      Application.ProcessMessages;
end;
Zum beenden habe ich diese Prozedur:

Delphi-Quellcode:
{* End-Prozedur *}
procedure DLLReady(wnd:Hwnd);stdcall;
var
ani : TAnimationThread;
begin
      ani.Ready; <---- schließt die Form!
      ani.Terminate; <----- soll meinen Thread beenden!!?????
end;
Wenn ich die DLL in Delphi ausführe (mit entsprechendem Projekt!) klappt alles ohne Fehler. Wenn ich allerdings das Projekt in Delphi ausführe bekomme ich einen Fehler!

Zugriffsverletzung.......

Danke für die Hilfe!

Sillium
  Mit Zitat antworten Zitat