AGB  ·  Datenschutz  ·  Impressum  







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

Form in den Vordergrund bringen

Ein Thema von Lefko · begonnen am 2. Aug 2003 · letzter Beitrag vom 29. Apr 2008
Antwort Antwort
Seite 1 von 2  1 2      
Lefko

Registriert seit: 31. Jul 2003
359 Beiträge
 
Delphi 6 Enterprise
 
#1

Form in den Vordergrund bringen

  Alt 2. Aug 2003, 14:34
Hallo Freunde,

ich weiss nicht, ob ich zu doof bin oder was.
ich will nur, dass mein programm wiederhergestellt und VOR ALLE anderen (Windows-)Fenster gesetzt und aktiviert wird.

Das hab ich auf mehrere Weisen probiert, es klappt NIE!

also:

Application.restore;
Application.bringtoFront;
Form1.activate;

oder:

Application.restore;
Form1.bringtofront;

oder:

Application.restore;
Form1.formstyle := fsStayontop;


NIX davon funktioniert. das programm wird wiederhergestellt und blinkt in der taskleiste, mehr nicht.
(ich hab winME)

würde mich über ne lösung freuen!

MfG Lefko.
Johannes
-=[Nennst du meinen Namen, bin ich schon nicht mehr da]=-
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Form in den Fordergrund bringen

  Alt 2. Aug 2003, 14:41
Ich weiß, ja nicht, was du machst, aber bei mir funktioniert davon alles.
Delphi-Quellcode:
Application.Restore;
Application.BringToFront;
Form1.BringToFront;
Schon mal versucht?

Am besten gibst du uns noch ein wenig mehr Source (z.B. Minimieren, wo rufst du den obigen Source auf, usw.)

Chris
  Mit Zitat antworten Zitat
heiopei
(Gast)

n/a Beiträge
 
#3

Re: Form in den Fordergrund bringen

  Alt 2. Aug 2003, 14:44
Willkommen im forum lefko,
was macht die funktion application.restore und warum soll das programm wiederhergestellt werden, bzw. was passiert davor?

tschüss,
heiopei
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Form in den Fordergrund bringen

  Alt 2. Aug 2003, 14:54
Hm... Was könnte Application.Restore denn machen?
Wie wäre es damit, dass es die Anwendung wiederherstellt (Gegenteil von minimieren)?

Chris
  Mit Zitat antworten Zitat
D.BraunSoft
(Gast)

n/a Beiträge
 
#5

Re: Form in den Fordergrund bringen

  Alt 2. Aug 2003, 14:55
Ich benutze die folgenden Zeilen in einem Timer (2s) um ein Alarmfenster
in einem Leitstellenprogramm zu realisieren.


setActivewindow(Application.handle);
Application.restore;
bringtofront;

viel Spaß
  Mit Zitat antworten Zitat
Lefko

Registriert seit: 31. Jul 2003
359 Beiträge
 
Delphi 6 Enterprise
 
#6

Re: Form in den Fordergrund bringen

  Alt 2. Aug 2003, 15:35
Ahja, dann hab ich auch noch SetForeGroundWindow(Application.handle) probiert...

auch das klappt nicht.

ich werd den o.g. tipp ausprobieren, danke, aber vielleicht wisst ihr etwas 100%iges.

MfG Lefko.
Johannes
-=[Nennst du meinen Namen, bin ich schon nicht mehr da]=-
  Mit Zitat antworten Zitat
Lefko

Registriert seit: 31. Jul 2003
359 Beiträge
 
Delphi 6 Enterprise
 
#7

Re: Form in den Vordergrund bringen

  Alt 6. Aug 2003, 18:52
Hallo Freunde,

Ich hab jetzt einfach in der Form.Create Form1.formstyle := fsStayOnTop eingestellt und beim Minimieren Form1.formstyle := fsNormal eingestellt.
damit funktioniert es einigermaßen, auch, wenn es gegen den Rat von Borland ist (siehe Hilfe...)

MfG Lefko.
Johannes
-=[Nennst du meinen Namen, bin ich schon nicht mehr da]=-
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Form in den Vordergrund bringen

  Alt 6. Aug 2003, 18:55
Schon mal mit SetWindowPos und HWND_TOP als zweiten Parameter probiert? Und diese Warnung würde ich nicht ignorieren, sie steht da nicht umsonst.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
lkz633

Registriert seit: 9. Jun 2002
Ort: Aachen
221 Beiträge
 
#9

Re: Form in den Vordergrund bringen

  Alt 6. Aug 2003, 20:10
hatte das gleiche Problem, habe dann diesen Code gefunden, ich glaube von swissdelphicenter:

Delphi-Quellcode:
function ForceForegroundWindow(hwnd: THandle): Boolean;
const
  SPI_GETFOREGROUNDLOCKTIMEOUT = $2000;
  SPI_SETFOREGROUNDLOCKTIMEOUT = $2001;
var
  ForegroundThreadID: DWORD;
  ThisThreadID: DWORD;
  timeout: DWORD;
begin
  if IsIconic(hwnd) then ShowWindow(hwnd, SW_RESTORE);

  if GetForegroundWindow = hwnd then Result := True
  else
  begin
    // Windows 98/2000 doesn't want to foreground a window when some other
    // window has keyboard focus

    if ((Win32Platform = VER_PLATFORM_WIN32_NT) and (Win32MajorVersion > 4)) or
      ((Win32Platform = VER_PLATFORM_WIN32_WINDOWS) and
      ((Win32MajorVersion > 4) or ((Win32MajorVersion = 4) and
      (Win32MinorVersion > 0)))) then
    begin
      // Code from Karl E. Peterson, [url]www.mvps.org/vb/sample.htm[/url]
      // Converted to Delphi by Ray Lischner
      // Published in The Delphi Magazine 55, page 16

      Result := False;
      ForegroundThreadID := GetWindowThreadProcessID(GetForegroundWindow, nil);
      ThisThreadID := GetWindowThreadPRocessId(hwnd, nil);
      if AttachThreadInput(ThisThreadID, ForegroundThreadID, True) then
      begin
        BringWindowToTop(hwnd); // IE 5.5 related hack
        SetForegroundWindow(hwnd);
        AttachThreadInput(ThisThreadID, ForegroundThreadID, False);
        Result := (GetForegroundWindow = hwnd);
      end;
      if not Result then
      begin
        // Code by Daniel P. Stasinski
        SystemParametersInfo(SPI_GETFOREGROUNDLOCKTIMEOUT, 0, @timeout, 0);
        SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, TObject(0),
          SPIF_SENDCHANGE);
        BringWindowToTop(hwnd); // IE 5.5 related hack
        SetForegroundWindow(hWnd);
        SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, TObject(timeout), SPIF_SENDCHANGE);
      end;
    end
    else
    begin
      BringWindowToTop(hwnd); // IE 5.5 related hack
      SetForegroundWindow(hwnd);
    end;

    Result := (GetForegroundWindow = hwnd);
  end;
end;
Gruss lkz633

[edit=Daniel B]Delphi-Tags korrigiert. Mfg, Daniel B[/edit]
  Mit Zitat antworten Zitat
Lefko

Registriert seit: 31. Jul 2003
359 Beiträge
 
Delphi 6 Enterprise
 
#10

Re: Form in den Vordergrund bringen

  Alt 17. Aug 2003, 17:39
Oke, ich hab s jetz einfach so gemacht, danke

MfG Lefko.
Johannes
-=[Nennst du meinen Namen, bin ich schon nicht mehr da]=-
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 21:50 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