Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.163 Beiträge
 
Delphi 12 Athens
 
#2

Re: Programm soll zwischen Vordergrund und Hintergrund switc

  Alt 17. Mai 2010, 16:59
MSDN-Library durchsuchenIsWindowVisible entspticht dem Auslesen von Delphi-Referenz durchsuchenTForm.Visible und jetzt rate mal, was man damit prüfen kann.

Was du suchst, wäre z.B. MSDN-Library durchsuchenGetForegroundWindow.
if GetForegroundWindow = {Form1.}Handle then ...
PS: der Wert für Result entspricht doch VISIBLE, also kann man da auch noch was einsparen
und SWP_NOSIZE sagt, daß die Positionsangabe eh nicht ausgewertet wird.
Eventuell braucht man nichtmal soviel WinAPI in seine VCL-Anwendung reinquetschen .
Delphi-Quellcode:
Function TForm1.Switch: Boolean;
begin
     Result := GetForeGroundWindow = Handle;
     if Result then
     begin
          SetWindowPos(Application.Handle, HWND_BOTTOM, 0, 0, 0,
             0, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
          Hide;
     end else
     begin
          if IsIconic(Application.Handle) then Application.Restore
             else Show;
          Application.BringToFront;
     end;
end;
oder wie wäre es hiermit?
Delphi-Quellcode:
Function TForm1.Switch: Boolean;
begin
     Result := GetForeGroundWindow = Handle;
     if Result then
          Application.Minimize
     else
     begin
          if IsIconic(Application.Handle) then Application.Restore
             else Show;
          Application.BringToFront;
     end;
end;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat