На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: jack128, Rouse_, Krid
  
    > Как сделать форму активной , Форма находится в ДЛЛ
      Так пойдет для активации?

      ExpandedWrap disabled
        procedure ShowMainForm;
        var
          hWnd, hCurWnd, dwThreadID, dwCurThreadID: THandle;
          OldTimeOut: DWORD;
          AResult: Boolean;
        begin
          ShowWindow(Application.Handle, SW_RESTORE);
          Application.MainForm.Visible := True;   // Показываем главную форму
         
          // Ставим нашу форму впереди всех окон
          hWnd := Application.Handle;
          SystemParametersInfo(SPI_GETFOREGROUNDLOCKTIMEOUT, 0, @OldTimeOut, 0);
          SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, Pointer(0), 0);
          SetWindowPos(hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE);
          hCurWnd := GetForegroundWindow;
          AResult := False;
          while not AResult do
          begin
            dwThreadID := GetCurrentThreadId;
            dwCurThreadID := GetWindowThreadProcessId(hCurWnd);
            AttachThreadInput(dwThreadID, dwCurThreadID, True);
            AResult := SetForegroundWindow(hWnd);
            AttachThreadInput(dwThreadID, dwCurThreadID, False);
          end;
          SetWindowPos(hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE);
          SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, Pointer(OldTimeOut), 0);
        end;
      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,0164 ]   [ 16 queries used ]   [ Generated: 27.04.24, 19:00 GMT ]