AGB  ·  Datenschutz  ·  Impressum  







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

Parameter an Thread übergeben

Ein Thema von IMPEGA · begonnen am 8. Sep 2013 · letzter Beitrag vom 2. Okt 2013
Antwort Antwort
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: Parameter an Thread übergeben

  Alt 8. Sep 2013, 10:07
Dafür gibt's properties.

Delphi-Quellcode:
  private
    FSSL: boolean;
  public
    property SSL: boolean read FSSL write FSSL;
Innerhalb von TMyThread dann mit FSSL arbeiten.

// Edit: wenn man das write weglässt ist die Variable ReadOnly,
wenn man read weglässt WriteOnly.

Geändert von Bjoerk ( 8. Sep 2013 um 10:12 Uhr) Grund: // Edit:
  Mit Zitat antworten Zitat
IMPEGA

Registriert seit: 19. Jan 2008
Ort: Brhv
90 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: Parameter an Thread übergeben

  Alt 8. Sep 2013, 10:15
Kannst mir noch bitte sagen wie ich es dann von der Unit1 übergeben kann?
Ich lerne es erst.

Mir ist noch eine Frage eingefallen.
Irgendwo habe ich den Satz gelesen "alle Zugriffe auf nicht threadsichere VCL-Dinge über Synchronize erledigen"
Wie weit ist es wichtig?
Ist es so schlecht vom Thread aus auf zB. Tform1.Laqbel1 zu zugreifen?

Geändert von IMPEGA ( 8. Sep 2013 um 10:21 Uhr)
  Mit Zitat antworten Zitat
OlafSt

Registriert seit: 2. Mär 2007
Ort: Hamburg
284 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: Parameter an Thread übergeben

  Alt 8. Sep 2013, 10:36
Das Ding mit den Properties hast du noch nicht ganz verstanden


Delphi-Quellcode:
TMyThread = class(TThread);
private
    FSSL: boolean;
public
    property SSL: boolean read FSSL write FSSL;
end;
SSL kann nun wie eine public-Variable angesprochen werden:
Delphi-Quellcode:
...
Thread := TMyThread.Create(True);
Thread.SSL := False;
...
Zitat:
Ist es so schlecht vom Thread aus auf zB. Tform1.Laqbel1 zu zugreifen?
Ja. Ist es. Glaub es uns, wir leben damit schon über eine Dekade lang.
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Parameter an Thread übergeben

  Alt 8. Sep 2013, 10:41
Kannst mir noch bitte sagen wie ich es dann von der Unit1 übergeben kann? Ich lerne es erst.
Delphi-Quellcode:
  MyThread := TMyThread.Create(True);
  MyThread.SSL := False;
Mir ist noch eine Frage eingefallen. Irgendwo habe ich den Satz gelesen "alle Zugriffe auf nicht threadsichere VCL-Dinge über Synchronize erledigen"
Wie weit ist es wichtig? Ist es so schlecht vom Thread aus auf zB. Tform1.Laqbel1 zu zugreifen?
Ja. Und das am besten mit Events. Wird aber etwas kompliziert, wenn du nicht weißt, was ein Event ist? Und "Uses unit1" hat in der ThreadUnit nichts verloren.
  Mit Zitat antworten Zitat
IMPEGA

Registriert seit: 19. Jan 2008
Ort: Brhv
90 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: Parameter an Thread übergeben

  Alt 8. Sep 2013, 11:21
Danke Euch Jungs. Damit habt Ihr mir gut geholfen.
Das mit Propertys habe ich doch verstanden, sogar darüber gelesen, mir kam es aber so vor als ob es nicht wichtig wäre.
Propertys muss ich mir noch genaue durchlesen. Gar keine Frage.
Das man die so ansprechen kann, habe ich eigentlich gewusst, wollte aber nicht wie ein Trottel da stehen wenn es nicht so wäre, also lieber nachfragen.

Eine Frage hätte ich aber noch.
Wo ist eigentlich der Unterschied zwischen der Methode mit procedure und der Methode mit property.
Es wird doch genauso angewandt.
Sorry für die Neugier, mir geht es mehr darum es zu verstehen wieso und warum. Hinkriegen kann ich es schon, darum geht es aber nicht alleine.
Klar ist der Code kleiner, es muss aber noch mehr sein als nur das.


TMyThread = class(TThread);
private
FSSL: boolean;
public
property SSL: boolean read FSSL write FSSL;
end;




TMyThread = class(TThread);
private
FSSL: boolean;
public
procedure SetSSL(ThreadSSL : Boolean);
end;
implementation
...
...
procedure TMyThread.SetSSL(ThreadSSL : Boolean);
begin
SSL := ThreadSSL;
end;


Zitat:
Ja. Und das am besten mit Events. Wird aber etwas kompliziert, wenn du nicht weißt, was ein Event ist? Und "Uses unit1" hat in der ThreadUnit nichts verloren.
Dazu habe ich ein Beispiel. Kriege es zwar nachgebaut. Eigentlich wenn ich lange genug mir den Code anschaue, verstehe ich es auch, aus dem Kopf würde ich es aber nie im Leben coden können. Egal, ich mache ganz langsam. Step by step.

Geändert von IMPEGA ( 8. Sep 2013 um 11:24 Uhr)
  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 18:33 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