![]() |
MultiThreading bringt Form nach vorn
Moin,
ich hab mal wieder ein "unlösbares Problem"... Ein Timer startet alle 60 sec einen Thread (Multithread), der im Hintergrund verschiedene Dinge erledigt, allesamt unwichtig und Kleinkram, aber lebensnotwendig. An den Thread ist bei Mißglücken noch eine showmodal-form, gekoppelt, dies zur Not erzwingt beachtet zu werden - aber - sie kommt nur unter speziellen Bedingungen nach vorn und bleibt normalerweise im Stall. Wenn ich jetzt nicht im Programm selbst bin, sondern beispielsweise einen Brief in Word schreibe, dann schiebt sich nach den 60 sec die Form in den Vordergrund und unterbricht das Briefeschreiben. Kann ich dem Thread (Windows oder der Form) mitteilen, daß sie hinten bleibt und die Arbeit des Vordergrund-Anwendung nicht unterbricht, obwohl sie leise und still vor sich hinbrasselt? Der Timer darf nicht disabled werden... Danke |
Re: MultiThreading bringt Form nach vorn
öffnest du innerhalb des Threads ein TForm? :cyclops:
|
Nee
Nein - der Thread öffnet nur eine Form, sofern die Rückgabewerte leer sind. Sind sie im Normalfall auch nicht, es sei denn er kappt die Leitung...
Das Hauptprogramm selbst hat -zig Formen. |
Korrektur - hab doch ne Form
Halt Sorry - Natürlich gibt's ne Form.
Wie sollte die Routine sonst meckern können, wenn die Werte nicht stimmen...
Delphi-Quellcode:
// Der Thread:
procedure TKeyinside.Execute; begin Synchronize(Showform); // Thread Code abarbeiten end; procedure TKeyinside.Showform; { Nur hier darf das MultiThreading 'Form.create' hinein } begin if LaeuftSchon <> 'besetzt' then begin if not Assigned(Form_CheckIt) then begin Form_CheckIt:= TForm_CheckIt.Create(Form_CheckIt); with Form_CheckItdo begin // ... end; if Form_CheckIt.Rueckgabewert <> DemWasErSeinSollte then Form_CheckIt.ShowModal; Form_CheckIt.Destroy; Form_CheckIt:= nil; LaeuftSchon := ''; end; end; end; Wobei ich eine modale Form benötige, sofern der Rückgabewert falsch ist. 'TopMostWindows', 'HWND_TOPMOST' geht in diesem Falle nicht! Die aktuelle Bearbeitung muss unzterbrochen werden, bis alles wieder im Lot ist... Gruss |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:56 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