Autor Beitrag
Kai Heitkamp
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Fr 06.12.02 11:27 
Hallo,

ich hole mit einem Programm mit Hilfe der Indy POP3 Komponente (TIdPOP3) eMails ab und stelle erstmal die Header in einem ListView dar. Da wärend des Abholens das gesamte Programm lahm liegt, wollte ich die Abhol-Prozedur in ein Thread stecken. Nur kann er innerhalb der Thread-Prozedur nicht auf die POP3 Komponente der Hauptform zugreifen, an der Stelle stürzt er immer ab (EAccessViolation).

Gibt es eine Möglichkeit innerhalb einer Thread-Prozedur (".Execute", bzw. die mit Synchronize aufgerufene Prozedur) auf Komponenten der Hauptform zuzugreifen ?
Für einen Tipp wäre ich sehr dankbar !

Thx
Kai
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Fr 06.12.02 16:42 
Hallo Kai,

das würde mit der Synchronize-Technik glaube ich funktionieren. Aber warum gehört die POP3-Komponenten nicht dem Thread? Das diese nicht dort liegt macht die Sache ja nur schwieriger und umständlicher!

Gruß
TINO
ase
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 203

Gentoo, Windows 9X, ME, 2k, NT, XP
Delphi 7 Prof., PHP 5 (Eclipse 3 SDK)
BeitragVerfasst: Fr 06.12.02 20:47 
Titel: einen senf dazu
servus!

also die pop3 kompo sollte dem thread gehören. also der thread sollte die kompo bei Create erstellen und bei Destroy zerstören. währe echt sinnvoller und einfacher.

wenn du bei synchronize die abfrage startest, dann kannst du dir alles sparen weil bei synchronize der main vcl thread steht. dann kannste auch alles ohne threads machen, is gehupft wie gesprungen ;)

wenn du allerdings eine mail im treeview anzeigen willst, dann musst du das im synchronize machen!!


ciao