![]() |
Systemfehler. Code: 1400 Ungültiges Fensterhandle
Moinsen
und wiedermal ich ^^ Diesmal habe cih das Problem das ich beim schließen meines Programmes folgenden Fehler bekomme: ![]() Der Fehler tritt immer dann auf wenn ich im Programm meine Funktion in einem Thread starte. Starte ich die Funktion ohne Thread kommt kein Fehler. Der Fehler kommt auch nur dann wenn ich folgenden Bereich drin lasse (kommentiere ich ihn aus geht es wieder).
Delphi-Quellcode:
Hoffe ihr seht wo mein Fehler liegt. kann euch auch gerne noch den Rest des Codes zeigen.
for iiii := 0 to ListBox4.Count -1 do
begin Form1.Memo1.Lines.Clear; Form1.Memo1.Lines.Text := ''; ListBox3.Items.Clear; ListBox2.Items.Clear; Filename := ListBox4.Items.Strings[iiii]; Memo1.Lines.LoadFromFile('Datanorm\'+Filename); for iii := 0 to Memo1.Lines.Count-1 do begin datanormsatz := TStringList.Create; line := Memo1.Lines[iii]; Split(';',line,datanormsatz); if datanormsatz[0] = 'A' then ListBox3.Items.Add(line); if datanormsatz[0] = 'T' then ListBox2.Items.Add(line); datanormsatz.free; end; Label5.Caption := IntToStr(Listbox3.Count-1); Memo2.Lines.Add('Beginne Import von: '+ Filename); WriteLog('Beginne Import von: '+ Filename); //db_import; end; |
Re: Systemfehler. Code: 1400 Ungültiges Fensterhandle
Läuft dieser Code innerhalb des Threades? Das wäre sehr ungünstig, in einem thread greift man nicht auf VCL-Komponenten zu.
|
Re: Systemfehler. Code: 1400 Ungültiges Fensterhandle
In welcher Zeile (Debugger)?
|
Re: Systemfehler. Code: 1400 Ungültiges Fensterhandle
Er nennt mir keine Zeile.
Wieso greift man in einem Thread nicht auf VCL-Komponennten zu??? |
Re: Systemfehler. Code: 1400 Ungültiges Fensterhandle
Weil die VCL nicht threadsafe ist. Ein Zugriff kann bzw. darf nur über Aufruf von Synchronize erfolgen.
|
Re: Systemfehler. Code: 1400 Ungültiges Fensterhandle
Zitat:
|
Re: Systemfehler. Code: 1400 Ungültiges Fensterhandle
Ich versteh zwar grad nicht wieso aber ok.
Kann mir vllt jemand sagen wie ich es anstelle ohne auf die VCL zurückzugreifen? Derzeit lade ich eine Textdatei runter, lade sie in ein memofeld splite dieses dann in zwei listen felder und splite dann weiter. und ich ehrlich gesagt keine ahnung wie ich das ohne das memofeld und die lsitboxen anstellen soll //edit: desweiteren habe ich auch eine progressbar die ich im thread aktualiesire. wie sol cih das alles denn machen wenn ich in einem thread nicht darauf zugreifen kann, darf, soll? |
Re: Systemfehler. Code: 1400 Ungültiges Fensterhandle
Schau mal in die Hilfe zu TThread.Synchronize
|
Re: Systemfehler. Code: 1400 Ungültiges Fensterhandle
Zitat:
|
Re: Systemfehler. Code: 1400 Ungültiges Fensterhandle
Mal sehen, was die kommende Threadlibrary von CodeGear bringt
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:11 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz