AGB  ·  Datenschutz  ·  Impressum  







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

Erste Schritte Multi-Threading

Ein Thema von Ykcim · begonnen am 10. Okt 2023 · letzter Beitrag vom 28. Nov 2023
Antwort Antwort
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.821 Beiträge
 
Delphi 12 Athens
 
#1

AW: Erste Schritte Multi-Threading

  Alt 23. Nov 2023, 15:37
Zu Events hilft eventuell als Einstieg die...Hilfe: http://docwiki.embarcadero.com/RADSt...gnisse_(Delphi)
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
856 Beiträge
 
Delphi 12 Athens
 
#2

AW: Erste Schritte Multi-Threading

  Alt 27. Nov 2023, 13:09
Hallo Sherlock,

vielen Dank für den Link. Leider läuft der ins Leere... Hast Du noch einen funktionierenden?

Vielen Dank
Patrick
Patrick
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.734 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: Erste Schritte Multi-Threading

  Alt 27. Nov 2023, 13:10
vielen Dank für den Link. Leider läuft der ins Leere... Hast Du noch einen funktionierenden?
Da fehlte ein ")" am Ende:
http://docwiki.embarcadero.com/RADSt...gnisse_(Delphi)
Thomas Mueller
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
856 Beiträge
 
Delphi 12 Athens
 
#4

AW: Erste Schritte Multi-Threading

  Alt 27. Nov 2023, 13:32
Vielen Dank!

Jetzt funktioniert der Link!

Kann mir noch jemand einen Tip geben, wie ich die Thread-Unit aufbauen sollte? Da steckt noch der Wurm drin...

LG Patrick
Patrick
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.562 Beiträge
 
Delphi 12 Athens
 
#5

AW: Erste Schritte Multi-Threading

  Alt 27. Nov 2023, 13:40
Bei dir auch.
[URL] selbst drumrumschreiben, oder den Link-Button benutzen.

Leider sind automatische Links zu doof, einfach die ) mitzunehmen, wenn im Link eine ( drin ist.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Edelfix

Registriert seit: 6. Feb 2015
Ort: Stadtoldendorf
251 Beiträge
 
Delphi 12 Athens
 
#6

AW: Erste Schritte Multi-Threading

  Alt 28. Nov 2023, 07:15
Wenn du im Projekt eine neue Unit hinzufügst dann hast du die Möglichkeit eine neue Unit von Type Thread zu wählen. Dann ist die Unit vor formatiert.
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
856 Beiträge
 
Delphi 12 Athens
 
#7

AW: Erste Schritte Multi-Threading

  Alt 28. Nov 2023, 09:14
Vielen Dank, dass wusste ich noch nicht.
Ich habe die Auslagerung gestern noch mit einer eigenen Unit gelöst, werde ich nachher posten.

Kurze Frage zu den Events: Sollten diese auch in einer eigenen Unit definiert werden oder im der Form, in der sie zur Anwendung kommen sollen?

Ich habe mich an den folgenden Links entlanggehangelt:
https://docwiki.embarcadero.com/RADS...nisse_(Delphi)

und bei diesem Thema an Post 2
https://www.delphipraxis.net/70116-e...rammieren.html

Das ist bis jetzt dabei rausgekommen:
Delphi-Quellcode:
type
   TTimeEvent = procedure (TimeValue: TTime) of object;
   TTimeObject = class
   private
     FTimeValue: TTimeEvent;

   public
     property OnGetTime: TTimeEvent read FTimeValue write FTimeValue;
     { Löst das Ereignis aus, wenn etwas registriert ist }
     procedure TriggerTimeEvent(TimeValue: TTime);
   end;
   TForm1 = class(TForm)
      lbl_eins: TLabel;
      lbl_zwei: TLabel;

...

private
      { Private-Deklarationen }
      MyThread: TMyThreads;

...

var
  Form1: TForm1;
  TimeObject: TTimeObject;

implementation

{$R *.dfm}

{ TTimeObject }

procedure TTimeObject.TriggerTimeEvent(TimeValue: TTime);
begin
   if Assigned(FTimeValue) then begin
      FTimeValue(TimeValue);
   end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
   MyThread := TMyThreads.Create;
   TimeObject := TTimeObject.Create;
   TimeObject.OnGetTime := Write_Uhr;
end;

procedure TForm1.FormShow(Sender: TObject);
begin
   MyThread.TH_Uhr_Start(False);
end;
In meiner ThreadUnit muss ich jetzt aber irgendwie den Aufruf anstoßen:
Delphi-Quellcode:
{ TMyThread_Uhr }

procedure TMyThread_Uhr.Execute;
var I: integer;
      sUhr: integer;
begin
   sUhr := 1000;
   while not Terminated do begin
      sleep(sUhr);
      Synchronize(procedure
                  begin
                     Form1.Write_Uhr(Now());
                  end);
   end;

end;
Und da weiß ich nicht, wie ich den Bezug zu Form1 loswerde...

Vielen Dank
Patrick
Patrick
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

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

AW: Erste Schritte Multi-Threading

  Alt 28. Nov 2023, 10:31
Zitat:
Und da weiß ich nicht, wie ich den Bezug zu Form1 loswerde
...Event? https://www.delphipraxis.net/1527953-post2.html
  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 19:41 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