AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

erster versuch mit threads

Ein Thema von DGL-luke · begonnen am 30. Apr 2005 · letzter Beitrag vom 1. Mai 2005
 
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#1

erster versuch mit threads

  Alt 30. Apr 2005, 23:51
Habe soeben versucht, meinen ersten thread auf die beine zu stellen. der zweck dieses threads ist es, eine evtl. große zahl von dateinamen einzulesen uind zu manipulieren.

ich habe einfach mal "neues theread objekt" gemacht und alles, was mir relevant erschien, aus der erstellten unit in meine hauptunit kopiert (erster fehler ?!)

dann habe ich einige globale variablen gemacht, auf die der thread zugreifen darf (zweiter fehler?!)

und nun bekomme ich eine AV an adresse 00000000

ich zeig euch mal n bisschen code, nur um zu fragen, ob das denn so überhaupt funktionieren kann......

Delphi-Quellcode:
type
  TCheckThread = class(TThread)
  private
    { Private-Deklarationen }
  protected
    procedure Execute; override;
  end;

var
  MainForm: TMainForm;
  pop:boolean = false;
  Check: TStringList;
  Checked:TStringList;
  CheckBlocked:boolean=true;
  CheckThread:TCheckThread;
  ToLower:boolean=true;

implementation

{$R *.dfm}

procedure TCheckThread.Execute;
var bad,good:TStringList;
    i,k,count:integer;
    smallcheck:string;
    flags:TReplaceFlags;
    result:TStringList;

begin
  { Thread-Code hier einfügen }

flags:=[rfReplaceAll];
if not checkblocked then
 begin
  result:=TStringList.Create;

  checkblocked:=true;
  routines2.explode(check[0],'|',bad); //search-ausdrücke extrahieren
  routines2.explode(check[1],'|',good); //replace-ausdrücke extrahieren

  //...
  //unkritischer code(hoffe ich)
  //...

   mainform.MProtocol.Lines.Add('Check durchgeführt. Unterschiede: '
     + inttostr(strcomp(result.gettext,check.GetText)));
 end
else mainform.MProtocol.Lines.Add('thread abgebrochen. Kein Zugriff auf Checkliste');
end;

procedure TMainForm.FormCreate(Sender: TObject);
begin
 checkthread:=tcheckthread.Create(true);
 checkthread.FreeOnTerminate := true;

 Check:=TStringList.Create;
 Checkblocked:=false;

end;

procedure TMainForm.BSingleOpenClick(Sender: TObject);
begin
check.Assign(readdir(stv1));
check.Insert(0,'ä| '); //bad
check.Insert(0,'ae|_'); //good
checkthread.Execute;
end;
hoffe, der code reicht.
wird durch aufrufen der execute-methode denn überhaupt der thread ausgeführt, oder nur innerhalb des hauptthreads ausgeführt?
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  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 01:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz