Autor Beitrag
Peter18
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 489
Erhaltene Danke: 2


Delphi4
BeitragVerfasst: Mi 21.10.15 13:30 
Ein freundliches Hallo an alle,

ich hoffe hemand hat das Werkzeug, um mir das Brett vom Kopf zu nehmen!

Ich möchte mit Delphi 4 einen Thread erstellen. Hab ich auch schon getan! Aber ich finde den Weg zu dem Assistenten nicht mehr wieder, der mir eine entsprechende Unit erstellt.

Warscheinlich werden viele sagen: "Ist doch ganz einfach!" War es auch, aber ich seh es nicht.

Grüße von der wolkigen Nordsee

Peter


Moderiert von user profile iconNarses: Topic aus Sonstiges (Delphi) verschoben am Mi 21.10.2015 um 14:30
mandras
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 429
Erhaltene Danke: 107

Win 10
Delphi 6 Prof, Delphi 10.4 Prof
BeitragVerfasst: Mi 21.10.15 14:10 
Ein D4 habe ich grad nicht zur Hand,

bei D6 geht's wie folgt:

Datei/neu/weitere | Thread-Objekt
patmann2001
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 201

Windows 7 Prof.
Delphi XE2
BeitragVerfasst: Mi 21.10.15 14:26 
Hallo,

neue Unit hinzufügen und dann den nachfolgenden Code einfügen:

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
unit DeinUnitName;

interface

uses
  System.Classes;

type
  TDeinThreatName = class(TThread)
  private
    { Private-Deklarationen }
  protected
    procedure Execute; override;
  end;

implementation

{
  Wichtig: Methoden und Eigenschaften von Objekten in visuellen Komponenten können nur
  in einer Methode verwendet werden, die mit 'Synchronize' aufgerufen wird, z.B.:

      Synchronize(UpdateCaption);

  und UpdateCaption könnte folgendermaßen aussehen:

    procedure TTest.UpdateCaption;
    begin
      Form1.Caption := 'Im Thread aktualisiert';
    end;

    oder

    Synchronize(
      procedure
      begin
        Form1.Caption := 'Im Thread über eine anonyme Methode aktualisiert'
      end
      )
    );

  wobei eine anonyme Methode übergeben wird.

  Entsprechend kann der Entwickler die Methode 'Queue' mit den gleichen Parametern wie oben
  aufrufen, anstatt eine andere TThread-Klasse als ersten Parameter zu übergeben, und
  den aufrufenden Thread in eine Warteschlange mit dem anderen Thread zu stellen.

}


{ TTest }

procedure TDeinThreatName.Execute;
begin
  { Thread-Code hier einfügen }
end;

end.


Sollte gehen.

lg Patmann
Sinspin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1321
Erhaltene Danke: 117

Win 10
RIO, CE, Lazarus
BeitragVerfasst: Mi 21.10.15 14:44 
Ich denke nicht dass es geht.

System.Classes gibt es m.e. in D4 noch nicht.
Die Stelle muss in Classes (ohne System. davor) geändert werden.

Und auch das zweite Synchronize Beispiel sowie die Methode Queue wird der Compiler nicht haben wollen, falls man versucht dies zu verwenden.

Alles andere sollte seit D3 in etwa gleich geblieben sein.

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
unit DeinUnitName;

interface

uses
  Classes; //System.Classes;

type
  TDeinThreatName = class(TThread)
  private
    { Private-Deklarationen }
  protected
    procedure Execute; override;
  end;

implementation

{
  Wichtig: Methoden und Eigenschaften von Objekten in visuellen Komponenten können nur
  in einer Methode verwendet werden, die mit 'Synchronize' aufgerufen wird, z.B.:

      Synchronize(UpdateCaption);

  und UpdateCaption könnte folgendermaßen aussehen:

    procedure TTest.UpdateCaption;
    begin
      Form1.Caption := 'Im Thread aktualisiert';
    end;
}


{ TTest }

procedure TDeinThreatName.Execute;
begin
  { Thread-Code hier einfügen }
end;

end.

_________________
Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Warum sollte unser aller Mutter, die Natur, nicht die gleichen Rechte haben?
Peter18 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 489
Erhaltene Danke: 2


Delphi4
BeitragVerfasst: Do 22.10.15 00:57 
Hallo mandras,

danke, das war es!
Nur das habe ich nicht probiert. Werd mir einen entsprechenden Kommentar in die Unit schreiben, damit ich nicht wieder so "blöde" Fragen stellen muss!

hallo patmann2001, hallo Stefan,

auch euch Dank! Die Variante von mandras hatte ich irgendwann entdeckt, konnte mich aber nicht mehr erinnern auf welchem Weg ich dahin gekommen bin. Nutze ich wohl zu selten und schreibe zu oft ab (wie in der Schule?). Aber trotzdem nochmals Dank für eure Mühe.

Was macht das wetter Stefan?

Grüße von der Nordsee

Peter