AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Synchronize in einer Klasse aufrufen

Ein Thema von gsh · begonnen am 2. Mär 2008 · letzter Beitrag vom 3. Mär 2008
Antwort Antwort
Seite 1 von 2  1 2   
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#1

Synchronize in einer Klasse aufrufen

  Alt 2. Mär 2008, 21:19
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?
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.481 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

Re: Synchronize in einer Klasse aufrufen

  Alt 2. Mär 2008, 21:19
Du kannst die Klassenmethode TThread.StaticSynchronize bzw. TThread.Synchronize nutzen.
  Mit Zitat antworten Zitat
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#3

Re: Synchronize in einer Klasse aufrufen

  Alt 2. Mär 2008, 21:27
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'
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Synchronize in einer Klasse aufrufen

  Alt 2. Mär 2008, 22:03
Wie sieht den der entsprechende Code aus?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#5

Re: Synchronize in einer Klasse aufrufen

  Alt 2. Mär 2008, 22:16
ahm naja welchen code meinst du genau:
Den da?
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:
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;
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Synchronize in einer Klasse aufrufen

  Alt 2. Mär 2008, 22:22
Es handelt sich hier ja um keine Klassenmethode; du musst diese natürluch auf eine Instanz anwenden
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#7

Re: Synchronize in einer Klasse aufrufen

  Alt 2. Mär 2008, 22:33
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
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.481 Beiträge
 
Delphi 10.1 Berlin Professional
 
#8

Re: Synchronize in einer Klasse aufrufen

  Alt 2. Mär 2008, 22:43
Und die Instanz kann auch "nil" sein.
  Mit Zitat antworten Zitat
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#9

Re: Synchronize in einer Klasse aufrufen

  Alt 3. Mär 2008, 18:00
echt?

d.h.:
(nil as TThread).Synchronize(ShowTransferForm);
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.481 Beiträge
 
Delphi 10.1 Berlin Professional
 
#10

Re: Synchronize in einer Klasse aufrufen

  Alt 3. Mär 2008, 20:37
Nein. Das heißt: TThread.Synchronize(nil, MyDummyFunction);
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 14:56 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