AGB  ·  Datenschutz  ·  Impressum  







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

TCollection & TCollectionitem Tutorial

Ein Thema von MrBrown90 · begonnen am 7. Nov 2017 · letzter Beitrag vom 16. Nov 2017
Antwort Antwort
Seite 1 von 2  1 2      
MrBrown90

Registriert seit: 7. Nov 2017
39 Beiträge
 
#1

AW: TCollection & TCollectionitem Tutorial

  Alt 16. Nov 2017, 10:36
Ja ich meinte Constructor. Aber ich verstehe leider überhaubt nicht, wie ich das umsetzten soll.

So ist Quatsch oder ?

Delphi-Quellcode:
TThreadItem = class(TCollectionItem)

  private

  public

    FThreadItem:TMyThread;

    constructor Create(ACollection: TCollection); override;

  published

  end;

 

constructor TThreadItem.Create(ACollection: TCollection);

begin

    inherited Create(ACollection);

    FThreadItem:=TMyThread.Create;

 

end;
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.073 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: TCollection & TCollectionitem Tutorial

  Alt 16. Nov 2017, 10:56
Wäre eine Möglichkeit.
Ich würde prinzipiell die Instanz von TMyThread von außen erzeugen und über eine Property eingeben, aber das ist jetzt Geschmackssache und erstmal irrelevant.
Das TThreadItem ist dann in deiner Lösung verantwortlich für die Erzeugung der TMyThread-Instanzen und auch für deren Anhalten/Freigabe/Zerstörung.

Mache dir nun Gedanken, wie die jeweilige TMyThread-Instanz ihre ID erhält.
Vergleiche meinen Vorschlag mit dem erweiterten Constructor.
  Mit Zitat antworten Zitat
MrBrown90

Registriert seit: 7. Nov 2017
39 Beiträge
 
#3

AW: TCollection & TCollectionitem Tutorial

  Alt 16. Nov 2017, 13:00
Okay, also wenn ich das richtig verstehe, muss ich dann auch im deconstructor meine Threads terminieren und freigeben?


Mit den Ids hätte ich jetzt über die Listbox gelöst...oder ist das wieder schlecht, weil ich wieder direkt auf die GUI zugreife?

Delphi-Quellcode:
for i := 0 to 5 do

  begin

   ListBox1.Items.AddObject('Thread Nr. ' + IntToStr(i), TObject(ThreadL.AddEx));

  end;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#4

AW: TCollection & TCollectionitem Tutorial

  Alt 16. Nov 2017, 13:41
Wenn der Hauptthread auf die GUI zugreift, ist das unproblematisch. Nur wenn Deine TThread-Instanzen das tun sollen, muss das (wie auch immer) synchronisiert geschehen, sei es per Messages, TThread.Synchronize oder TThread.Queue.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.073 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: TCollection & TCollectionitem Tutorial

  Alt 16. Nov 2017, 13:43
Destructor! Es mangelt wirklich an den Grundlagen!
https://en.wikipedia.org/wiki/Destru...r_programming)
Macht man heutzutage im Informatik-Studium nur noch HTML?


Das kannst du so machen, wie im Quelltext-Schnipsel gezeigt.

Wie hast du es denn gelöst, das der TMyThread seine ID/die Nummer erhält?

Das hat übrigens mit GUI-Zugriff und Threads nichts zu tun, da du hier immer noch im Hauptthread bist.
Alles was du im Execute von deinen Threads ausführst, sollte halt nur synchronisiert zum Mainthread erfolgen.
Dafür wurde dir aber auch schon dreimal der Link zur Doku gepostet.

Geändert von TiGü (17. Nov 2017 um 08:09 Uhr)
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.490 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: TCollection & TCollectionitem Tutorial

  Alt 16. Nov 2017, 16:57
Destructor! Es mangelt wirklich an den Grundlagen!
https://en.wikipedia.org/wiki/Destru...er_programming)
Macht man heutzutage im Informatik-Studium nur noch HTML?
Nun ja, in modernen Programmiersprachen benötigt man Destruktoren nur noch sehr selten.

@MrBrown90: Geduld! Weiter so. Nur wer dran bleiben kann, wird es als Softwareentwickler zu was bringen.
  Mit Zitat antworten Zitat
MrBrown90

Registriert seit: 7. Nov 2017
39 Beiträge
 
#7

AW: TCollection & TCollectionitem Tutorial

  Alt 16. Nov 2017, 14:16
Ja da mangelt es.

Das wollte ich so lösen.

Delphi-Quellcode:
procedure TForm7.StartClick(Sender: TObject);

var

Thread1: TMyThread;

begin

 

  Thread1:= TMyThread(ListBox1.Items[ListBox1.ItemIndex]);

  Thread1.Resume;
Scheint aber falsch zu sein, da die Meldung kommt "das handle ist ungültig"
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.073 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: TCollection & TCollectionitem Tutorial

  Alt 16. Nov 2017, 14:29
Scheint aber falsch zu sein, da die Meldung kommt "das handle ist ungültig"
Jup, das ist auch falsch.
Was für ein Datentyp kommt denn bei ListBox1.Items[Index] zurück?
Tipp: Du hattest es schon mal richtig dazustehen (Beitrag #65).
  Mit Zitat antworten Zitat
MrBrown90

Registriert seit: 7. Nov 2017
39 Beiträge
 
#9

AW: TCollection & TCollectionitem Tutorial

  Alt 16. Nov 2017, 14:30
Okay,da hab ich nicht überlegt! Ich muss ja erstmal einen Thread a7s meiner TCollection holen
  Mit Zitat antworten Zitat
MrBrown90

Registriert seit: 7. Nov 2017
39 Beiträge
 
#10

AW: TCollection & TCollectionitem Tutorial

  Alt 16. Nov 2017, 14:31
Ich brauch ListBox1.Items.Objects

Mit nur .Items spreche ich ja die line an
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 15:17 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-2025 by Thomas Breitkreuz