AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

MultiThreading bringt Form nach vorn

Ein Thema von jaikai · begonnen am 7. Jan 2007 · letzter Beitrag vom 7. Jan 2007
Antwort Antwort
jaikai

Registriert seit: 1. Jun 2005
70 Beiträge
 
#1

MultiThreading bringt Form nach vorn

  Alt 7. Jan 2007, 14:36
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
Wenn die Programme das machen, wie's wir machen, wären sie unbrauchbar...
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: MultiThreading bringt Form nach vorn

  Alt 7. Jan 2007, 14:39
öffnest du innerhalb des Threads ein TForm?
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
jaikai

Registriert seit: 1. Jun 2005
70 Beiträge
 
#3

Nee

  Alt 7. Jan 2007, 15:12
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.
Wenn die Programme das machen, wie's wir machen, wären sie unbrauchbar...
  Mit Zitat antworten Zitat
jaikai

Registriert seit: 1. Jun 2005
70 Beiträge
 
#4

Korrektur - hab doch ne Form

  Alt 7. Jan 2007, 15:25
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 <> 'besetztthen 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
Wenn die Programme das machen, wie's wir machen, wären sie unbrauchbar...
  Mit Zitat antworten Zitat
Antwort Antwort


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 23:43 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