AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Selbe Funkion in TForm und TThread benutzen
Thema durchsuchen
Ansicht
Themen-Optionen

Selbe Funkion in TForm und TThread benutzen

Ein Thema von SyntaxXx · begonnen am 30. Jun 2015 · letzter Beitrag vom 1. Jul 2015
Antwort Antwort
SyntaxXx

Registriert seit: 14. Dez 2008
328 Beiträge
 
Delphi XE4 Architect
 
#1

Selbe Funkion in TForm und TThread benutzen

  Alt 30. Jun 2015, 20:48
Guten Abend,
ich schreibe eine Anwendung, die eine Aufgabe erledigt.

Diese Aufgabe soll entweder im Hauptthread ausgeführt werden, oder in mehreren Unterthreads.

Jetzt ist meine Frage, muss ich die Funktion die die Aufgabe erledigt zwei mal definieren?
Also einmal function TForm1.MeineFunktion: Boolean; und einmal function TThread1.MeineFunktion: Boolean; oder kann ich diese auch nur einmal ohne TForm1 und Thread1 definieren und übergebe die Funktion dann irgendwie?
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Selbe Funkion in TForm und TThread benutzen

  Alt 30. Jun 2015, 21:22
Pauschal kann man das nicht sagen ...

Hat diese Funktion irgendwas mit der Form zu schaffen (wird dort auf etwas von der Form zugegriffen)?

Wenn ja, dann nicht im Thread, wenn nein, warum ist die als Methode der Form definiert?
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
SyntaxXx

Registriert seit: 14. Dez 2008
328 Beiträge
 
Delphi XE4 Architect
 
#3

AW: Selbe Funkion in TForm und TThread benutzen

  Alt 30. Jun 2015, 21:32
Ich hab mich sehr blöd ausgedrückt, aber deine Anmerkungen sind natürlich richtig.
Ich habs aber schon lösen können.

Delphi-Quellcode:
type
  FMeineFunktion = function (Param1: String; Param2: String): Boolean;

  TThread1 = class(Thread)
    protected
      procedure Execute;
    private
      MeineFunktion: FMeineFunktion;

...

function MeineFunktion (Param1: String; Param2: String): Boolean;
begin
  // Mache irgendwas
end;
So kann ich die Funktion von einem ButtonOnClick ohne Probleme aufrufen, und beim Thread kann ich die Funktion einfach festlegen.
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#4

AW: Selbe Funkion in TForm und TThread benutzen

  Alt 1. Jul 2015, 07:09
Normalerweise packt man das in eine eigene Klasse. Dann können TForm1 und TThread1 darauf zugreifen. Wird hier mit gemeinsamen Daten gearbeitet, müssen diese synchronisiert werden, d.h. die Klasse sorgt dafür, das immer nur einer/eine (PC! ) exklusiven Zugriff auf die Daten hat.
  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 05:42 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