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
 
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.436 Beiträge
 
Delphi 12 Athens
 
#11

AW: TCollection & TCollectionitem Tutorial

  Alt 15. Nov 2017, 07:48
Moin...
Zitat:
Das wäre jetzt der ganze Code, dieser lässt sich auch compilieren.
... das wars dann auch schon.
Zitat:
Im Moment ist der Code noch nicht sinnvoll.
...meine ich auch. Der ganze Workflow ist nicht schlüssig. Ein Programmablaufplan ist dir geläufig? (siehe Beispielbild) Damit solltest du anfangen.
Beispiel:
Was soll passiern wenn der Button3 mehrfach gedrückt wird? ...usw.
Zitat:
Ich hab in meiner Arbeit vor paar Tagen angefangen Delphi zu lernen.
Threads und deren Fallstricke, sind imho nicht der geeignete Anfang.

Zitat:
Mein Chef hätte jetzt noch gerne das ich da mit Messages arbeite.
Ist im Prinzip eine Art von Syncronisierung. Ob ein Event mit Syncronize oder PostMessage ist nur in der Ausführung unterschiedlich. (synchron, asynchron)

Zitat:
Danke nochmal für die ganze Hilfe.
...du bist noch lange nicht fertig.

grobe Fehler:
1:
Form7.Memo1.Lines.Add('Thread Nr. 0 ' + DateTimeToStr(Now) + ' Uhr'); Wie ich schon gesagt habe, ein Zugriff auf die GUI ist keine gute Idee!
http://www.delphipraxis.net/1386197-post54.html
2:
Delphi-Quellcode:
var
  Form7: TForm7;
  Thread1, Thread2, Thread3, Thread4, Thread5, Thread6: TMyThread;
  ID, ThreadID: integer;
Globale Variablen in Verbindung mit Threads sind keine gute Idee!
https://forum.delphi-treff.de/index....len-Variablen/
3:
Delphi-Quellcode:
procedure TForm7.Button3Click(Sender: TObject);
begin
  case ID of
    0:
      begin
        Thread1.Terminate;
        Thread1.WaitFor;
        Thread1.Free;
      end;
Beim Beenden des Threads über den Button wird er "abgeräumt"...nicht aber beim Beenden der Anwendung!
Einfügen: In die DPR ReportMemoryLeaksOnShutdown := True; und wundern.
4:
Delphi-Quellcode:
procedure TForm7.Timer1Timer(Sender: TObject);
begin
  Timer1.interval := 6000;
end;
Was denkst du was da passiert?

Tipps (kein Muß):
1: Bitte Codeformatter benutzen. Wie in anderen Programmiersprachen auch...sprechende Namen verwenden.
2: Stelle dir mal vor das du 100 Threads hast? Wie sieht die USES aus? Schei... Wie sehen die Proceduren aus? Schei... Für so etwas gibt es Listen mit den Instanzen als Inhalt. Thread erstellen, ab in die Liste. Von dort holt man sich die Instanz in eine Variable. (z.B. CurrentThread)
Angehängte Grafiken
Dateityp: png programmablaufplan.png (49,9 KB, 15x aufgerufen)
  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 21:49 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