Einzelnen Beitrag anzeigen

Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Fenster bzgl. nur eines Fensters in den Vordergrund brin

  Alt 1. Mai 2007, 09:00
Hallo,

der Code hier soll dein Fenster vor ein fremdes Fenster setzen.
Delphi-Quellcode:
type
  PWinPos = ^TWinPos;
  TWinPos = Record
    hForm, hFindWin, hFirstWin : HWND;
end;

function SetWinPos(hWnd: THandle; WinPos: PWinPos): Boolean; stdcall;
begin
  Result := true;
  if IsWindowVisible(hWnd) then
  begin
    if hWnd = WinPos^.hFindWin then
    begin
      SetWindowPos(WinPos^.hForm, WinPos^.hFirstWin, 0, 0, 0, 0, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
      Result := false;
    end;
    WinPos^.hFirstWin := hWnd;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  WinPos: TWinPos;
begin
  WinPos.hForm := Form1.Handle;
  WinPos.hFindWin := ...;//Handle des Fensters vor dem dein Fenster gesetzt werden soll
  WinPos.hFirstWin := HWND_TOPMOST;
  EnumWindows(@SetWinPos, integer(@WinPos));
end;
Du kannst damit dein Fenster also zwischen den anderen setzen.

Oder du kannst so   SetWindowPos(Form1.Handle, (*hWnd*), 0, 0, 0, 0, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE); ein anders Fenster vor dein Fenster setzen.
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat