Also hier der Source Code, sobald ich den Thread createn will bekomme ich ne Fehlermneldung :
Zugriffsverletzung bei Adresse 00453C20 in Modul 'Projekt1.exe'. Lesen von Adresse 00000000
hier der Code
und die thread unit
hoffe jemand kann mir helfen und sagen wo der fehler liegt
Zugriffsverletzung bei Adresse 00453C20 in Modul 'Projekt1.exe'. Lesen von Adresse 00000000
hier der Code
Code:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ubogiethread; type TForm1 = class(TForm) Button1: TButton; Memo1: TMemo; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; bogie:bogiethread; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var d:string; begin d:= edit1.text+'.'+edit2.Text+'.'+edit3.text ; bogie.create; end; end.
Code:
UNIT UBogiethread; interface //-------------------- ggf Uses-Liste anpassen ! -------------------- uses Windows, Messages, SysUtils, ping,classes; // für windows.beep type Bogiethread = CLASS(TThread) // weitere Attribute private b: string; start: integer; ende: integer; i:integer; // weitere Methoden protected procedure execute; override; procedure update; public constructor create; virtual; end; implementation uses unit1; //+--------------------------------------------------------------------- //| TPiepsThread: Methodendefinition //+--------------------------------------------------------------------- //-------- execute (protected) ----------------------------------------- procedure bogiethread.update; var f:string; begin f:= b+'.'+inttostr(i+start); ping.Execute( f); form1.Memo1.Lines.Add(f + ' antwortet'); end; procedure Bogiethread.execute; begin while not terminated do begin synchronize(update) end; end; //-------- create (public) --------------------------------------------- constructor Bogiethread.create; begin inherited create(false); // CreateSuspended = true freeOnTerminate := true; end; end.
Comment