Новые книги

В книге описано тестирование программных продуктов в Google: как устроены процессы, как организованы команды, какие техники используются, кто ответственен за качество. Принципы, на которых построено тестирование в Google, применимы в проектах и компаниях любого размера. Авторы книги сами работали над продуктами Google, создавая инструменты тестирования, настраивая процессы и занимаясь непосредственно тестированием. Книга рассчитана на профессионалов из индустрии разработки программного обеспечения: специалистов по тестированию, программистов, менеджеров.
Данная книга предназначена для пользователей Microsoft Excel и содержит описание приемов и методов работы, которые из-за своей специфичности недостаточно представлены (либо вообще не представлены) в пользовательской, справочной и иной соответствующей документации. Изучение приведенных в книге примеров позволит читателю открыть для себя не известные ранее возможности Excel. Предлагаемый материал легко усваивается благодаря тому, что излагается доступным и понятным языком.

Вопрос и Ответ 16

Вопросы и Ответы


      16. Почему не получается создать окно StayOnTop (всегда наверху)?

      Создать окно которое всегда будет наверху (не будет перекрываться другими окнами) несложно, для этого достаточно полю FormStyle объекта TForm присвоить значение fsStayOnTop. И это прекрасно работает... до тех пор пока Вам не понадобится несколько раз сделать окно то нормальным, то снова StayOnTop. Если это делать процедурами RestoreTopMosts и NormalizeTopMosts иногда происходит необъяснимое игнорирование второй процедуры и Ваше окно остается навсегда (до завершения) в положении "...наверху".

      Для предотвращения подобного стоит пользоваться процедурой API:

      procedure SetWindowPos(Wnd: HWnd; WndInsertAfter: HWnd; X, Y, cx, cy: Integer; Flags: Word);

      эта процедура позволяет делать с окном очень много, но мы остановимся лишь на двух возможностях интересующих нас.

      Пример:

      ............

      VAR isTopMost: Boolean;

      ............

      procedure TForm1.bTopMostClick(Sender: TObject);
      begin

        IF isTopMost THEN

          {Окно в состояние - всегда наверху}
          SetWindowPos(Application.Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE Or SWP_NOMOVE)

        ELSE

          {Окно в нормальное состояние}
          SetWindowPos(Application.Handle, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOSIZE Or SWP_NOMOVE)

        isTopMost := NOT isTopMost;

      end;

      ............


...предыдущая страница следующая...
оглавление



"Вопрос и Ответ 16"
Copyright © "В помощь Веб-Мастеру" (Alexander D. Belyaev) 2005-2024 .
При перепечатке любого материала видимая ссылка на источник "В помощь Веб-Мастеру" и все имена, ссылки авторов обязательны!
Время генерации страницы: 0.006