AGB  ·  Datenschutz  ·  Impressum  







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

TTreeNode gelöscht - Thread gelöscht...?

Ein Thema von ralfi · begonnen am 14. Apr 2004 · letzter Beitrag vom 3. Mai 2004
Antwort Antwort
ralfi

Registriert seit: 9. Dez 2003
20 Beiträge
 
#1

TTreeNode gelöscht - Thread gelöscht...?

  Alt 14. Apr 2004, 13:26
Hallo!

Ich weise einem Thread einen TTreeNode zu, indem ich die Create-Procedur des Threads überschrieben habe. Den Thread muss dann die ImageIndex des TTreeNodes ändern und somit so eine Art Fortschrittsanzeige darstellen. Das funktioniert schon mal ganz richtig.

Jetzt möchte ich es so machen, dass wenn das TTreeNode gelöscht wird, beendet sich auch der Thread, dem diese TTreeNode zugewiesen wurde. Wie mache ich das?

Danke!
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: TTreeNode gelöscht - Thread gelöscht...?

  Alt 14. Apr 2004, 13:41
1.) Das Thread-Objekt (genauer der Zeiger darauf) in TTreeNode.Data speichern,
direkt nachdem der Thread erzeugt wurde.

2.) im Event OnDeletion des TreeViews:
Delphi-Quellcode:
procedure TForm1.TreeView1Deletion(Sender: TObject; Node: TTreeNode);
begin
   if Assigned(Node.Data) then
   begin
      TThread(Node.Data).Terminate;
      TThread(Node.Data).Free;
   end;
end;
Andreas
  Mit Zitat antworten Zitat
ralfi

Registriert seit: 9. Dez 2003
20 Beiträge
 
#3

Re: TTreeNode gelöscht - Thread gelöscht...?

  Alt 14. Apr 2004, 14:04
An erster Stelle vielen Dank!

Zitat von shmia:
1.) Das Thread-Objekt (genauer der Zeiger darauf) in TTreeNode.Data speichern,
direkt nachdem der Thread erzeugt wurde...
wie mache ich das?
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#4

Re: TTreeNode gelöscht - Thread gelöscht...?

  Alt 14. Apr 2004, 14:44
Delphi-Quellcode:
procedure TForm1.MakeNewThread(const tname:string);
var
   thread : TThread;
   node : TTreeNode;
begin
   thread := TMyThread.Create(True); // neuen Thread erzeugen
   node := TreeView1.Items.Add(nil, tname); // neuen Knoten erzeugen
   node.Data := Pointer(thread); // <-- Zeiger auf Thread-Objekt im TreeNode merken
   thread.Resume; // Thread losrennen lassen
end;
Andreas
  Mit Zitat antworten Zitat
romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.166 Beiträge
 
Delphi 10 Seattle Professional
 
#5

Re: TTreeNode gelöscht - Thread gelöscht...?

  Alt 3. Mai 2004, 20:35
@shmia

Danke sehr! Es hat geklappt!
Eine andere Frage: kann ich dasselbe auch für zwei und mehr Threads machen, ich meine mehrere Threads mit einen TTreeNode verknüpfen und dann wenn Node gelöscht wird, auch alle verknüpfte Threads beendet werden? Wenn ja, wie?

Danke!
  Mit Zitat antworten Zitat
Antwort Antwort


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 20:40 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