AGB  ·  Datenschutz  ·  Impressum  







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

Synchronize Frage

Ein Thema von Errraddicator · begonnen am 30. Jun 2008 · letzter Beitrag vom 30. Jun 2008
Antwort Antwort
Errraddicator

Registriert seit: 26. Jun 2008
161 Beiträge
 
Delphi 2007 Professional
 
#1

Synchronize Frage

  Alt 30. Jun 2008, 10:41
Heyho zusammen,

ist es wohl möglich eine Funktion über Synchronize aufzurufen die wahlweise Parameter und/oder Rückgabewerte hat, und wenn ja wie mache ich das.

Weder im Netz, noch aus der Hilfe habe ich da großartig was zu gefunden.
Nur wie ich normale prozeduren mit Synchronize aufrufe.


Danke im voraus

cu Patrick
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#2

Re: Synchronize Frage

  Alt 30. Jun 2008, 10:48
HI,

dafür müsstest du dir deine eigene Variante von Syncronisize erstellen. Du kannst aber auch eine Prozedur machen, die den Funktionsaufruf für dich erledigt und dann die Werte über Eigenschaften zuweist.

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Errraddicator

Registriert seit: 26. Jun 2008
161 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Synchronize Frage

  Alt 30. Jun 2008, 10:52
Die 2. Möglichkeit habe ich schon ein paar Mal benutzt bisher, das klappt auch, ist mir aber teilweise einfach zu umständlich, bzw. da habe ich dann zu viele globale Eigenschaften.

D.h. dann müsste ich mir sozusagen einen Funktion um die Funktion basteln, richtig?
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Synchronize Frage

  Alt 30. Jun 2008, 11:03
Das war bisher die Standardvariante (und auch die einzige)
Andreas Hausladen = jbg hat da mal eine Unit zu geschrieben um das zu vereinfachen
Hier im Forum suchenAsyncCalls
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Errraddicator

Registriert seit: 26. Jun 2008
161 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Synchronize Frage

  Alt 30. Jun 2008, 11:14
Ok, gucke ich mir ma an, sieht aber auf den ersten Blick nich schlecht aus.

Danke
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#6

Re: Synchronize Frage

  Alt 30. Jun 2008, 11:29
Hi,

du könntest auch einen lokalen Recordtyp definieren und über einen Callback/Event die Werte per Record übergeben.

Dann rufst Du im Thread-Context eine Prozedur mit Synchronize(MyProc) auf, die den Record befüllt und die Eventmethode startet.

z.B.
Delphi-Quellcode:
type
  TMeinStatus = record
    Message: WideString;
    ErrorCode: Integer;
  end;

  TMeinStatusEvent = procedure(Status: TMeinStatus) of object;
  
  ...

  TMeinThread = class(TThread)
  private
    FStatus: TMeinStatus;
    FOnStatus: TMeinStatusEvent;
  ...
  protected
    procedure SetStatus;
  public
    property OnStatus: TMeinStatus read FOnStatus write FOnStatus;
  end;

...

  procedure TMeinThread.SetStatus;
  begin
    if Assigned(OnStatus) do
      FOnStatus(FStatus);
  end;

...
  procedure TMeinThread.Execute;
  begin
    ...
    FStatus.Message := 'test';
    FStatus.ErrorCode := 0;
    Synchronize(SetStatus);
    ...
  end;
Dann eine Procedur im VCL-Threadcontext erstellen, die als OnStatus-Event fungiert. Event zuweisen und lüppt. Prinzip verstanden?

Gruß Assertor
Frederik
  Mit Zitat antworten Zitat
30. Jun 2008, 11:45
Dieses Thema wurde von "Sharky" von "VCL / WinForms / Controls" nach "Object-Pascal / Delphi-Language" verschoben.
Scheint jetzt weniger mit VCL zu tun zu haben?
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 16:46 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