Autor Beitrag
NetSpider
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 123

Windows XP Pro
Delphi 7 Enterprise
BeitragVerfasst: Fr 27.03.09 07:17 
Moderiert von user profile iconNarses: Abgetrennt von [url=www.delphi-forum.de/...p?t=79823]hier[/url]

Zitat:
Ganz nebenbei: Wenn du in diesem OnExecute auf Formularkomponenten zugreifst, musst du dich um die Synchronisierung (oder heißt es Synchronisation? *grübel*) kümmern.


OK, ich hab hier gerade ein Problem. der Indy TCPServer ist auf dem Hauptformular. Je nachdem was beim Server ankommt, soll etwas in eine LogFile geschrieben werden (ein TListView, welches aber auf einem anderen Formular untergebracht ist!)

Wenn ich meinen Code ausfuehre, dann zeigt er mir nach einem Log-Eintrag mein zweites Formular an - allerdings ohne TListview und ohne eintrag. Wie synchronisiere ich das ganze, damit ich auf andere Formulare zugreifen kann?

BTW: wenn ich das zweite Formular im Design-Mode Visible = true setzte (also, wenn es beim Programmstart zu sehen ist), dann tritt der Fehler nicht auf!
Ich benutze INDY10

Danke

---Moderiert von user profile iconNarses: Beiträge zusammengefasst---

Einfache Methods kann man anscheinend so ausfuehren:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
uses
  ..., IdSync;

//Server OnExecute

begin
...
TIdSync.SynchronizeMethod(ShowSecondFormular);
...
end;


Wenn ich aber Parameter uebergeben moechte (z.B. Eine Caption

ausblenden Delphi-Quelltext
1:
TIdSync.SynchronizeMethod(ShowSecondFormular(aCaption: String));					



dann kommt folgende Compiler Fehler-Meldung

ausblenden Quelltext
1:
[DCC Error] Unit1.pas(557): E2010 Incompatible types: 'TThreadMethod' and 'procedure, untyped pointer or untyped parameter'					

_________________
Wer in die Fußstapfen anderer tritt hinterlässt keine eigenen Spuren!