Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Synchronize in einer Klasse aufrufen (https://www.delphipraxis.net/109502-synchronize-einer-klasse-aufrufen.html)

gsh 2. Mär 2008 21:19


Synchronize in einer Klasse aufrufen
 
Hi Leute

Ich hab eine etwas kompliziert Struktur:
Hauptthread -> 1.Klasse -> Thread -> 2.Klasse

So jetzt würd ich gerne in der 2. Klasse ein Formular erstellen und von dieser Klasse verwalten lassen.
Mein Problem er kennt die Procedure Synchronize nur im Thread und nicht in meiner Klasse.

Hat jemand ne Idee?

jbg 2. Mär 2008 21:19

Re: Synchronize in einer Klasse aufrufen
 
Du kannst die Klassenmethode TThread.StaticSynchronize bzw. TThread.Synchronize nutzen.

gsh 2. Mär 2008 21:27

Re: Synchronize in einer Klasse aufrufen
 
ne kann ich leider nicht da ich diese Fehlermeldung erhalte:
Zitat:

[Pascal Fehler] GlobalTransferKlasse.pas(177): E2010 Inkompatible Typen: 'TThread' und 'procedure, untyped pointer or untyped parameter'

mkinzler 2. Mär 2008 22:03

Re: Synchronize in einer Klasse aufrufen
 
Wie sieht den der entsprechende Code aus?

gsh 2. Mär 2008 22:16

Re: Synchronize in einer Klasse aufrufen
 
ahm naja welchen code meinst du genau:
Den da?
Delphi-Quellcode:
TThread.Synchronize(ShowTransferForm);
da bekomm ich diesen Fehler:
Zitat:

[Pascal Fehler] GlobalTransferKlasse.pas(177): E2389 Auf Protected-Element 'TThread.Synchronize' kann hier nicht zugegriffen werden
und bei dem:
Delphi-Quellcode:
TThread.StaticSynchronize(ShowTransferForm);
diesen Fehler:
Zitat:

[Pascal Fehler] GlobalTransferKlasse.pas(177): E2010 Inkompatible Typen: 'TThread' und 'procedure, untyped pointer or untyped parameter'
ShowTransferForm sieht so aus:
Delphi-Quellcode:
procedure TGlobalTransfer.ShowTransferForm;
begin
  TransferForm := TfrmTransfer.Create(nil);
  TransferForm.Show;
end;

mkinzler 2. Mär 2008 22:22

Re: Synchronize in einer Klasse aufrufen
 
Es handelt sich hier ja um keine Klassenmethode; du musst diese natürluch auf eine Instanz anwenden

gsh 2. Mär 2008 22:33

Re: Synchronize in einer Klasse aufrufen
 
hmm verstehe ... nur ist das etwas blöd zum umsetzen in meinem Konstrukt
Aber das schaff ich schon irgenwie sonst meld ich mich halt wieder :zwinker:

jbg 2. Mär 2008 22:43

Re: Synchronize in einer Klasse aufrufen
 
Und die Instanz kann auch "nil" sein. ;-)

gsh 3. Mär 2008 18:00

Re: Synchronize in einer Klasse aufrufen
 
echt?

d.h.:
Delphi-Quellcode:
(nil as TThread).Synchronize(ShowTransferForm);

jbg 3. Mär 2008 20:37

Re: Synchronize in einer Klasse aufrufen
 
Nein. Das heißt: TThread.Synchronize(nil, MyDummyFunction);


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:36 Uhr.
Seite 1 von 2  1 2      

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