1.3.2.4. Перевод приложения на передний план
1.3.2.4. Перевод приложения на передний план
Первая копия приложения, получив команду от другой копии, должна вывести себя на передний план. Казалось бы, все просто: с помощью функции SetForegroundWindow мы можем вывести туда любое окно. Однако так было только до Windows 95 и NT 4. В более поздних версиях введены ограничения, и теперь программа не может вывести себя на передний план по собственному усмотрению. Функция SetForegroundWindow просто заставит мигать соответствующую кнопку на панели задач.
Тем не менее, если программа свернута, команда Application.Restore не только восстанавливает окно, но и выводит его на передний план, что нам и требуется. Ну а если программа не свернута, то "выливаем из чайника воду и тем самым сводим задачу к предыдущей": сначала сворачиваем приложение с помощью Application.Minimize, а потом разворачиваем его. Цели мы добились — главное окно на переднем плане.
Дело портит только то, что изменение состояния окна сопровождается анимацией: видно, как главное окно сначала сворачивается, а потом разворачивается. Чтобы убрать этот неприятный эффект, можно на время сворачивания/разворачивания окна запретить анимацию, а потом восстановить ее. С учетом этого метод GoToForeground выглядит так, как показано в листинге 1.50.
Листинг 1.50. Перевод приложения на передний план
// Перевод приложения на передний план
procedure TDKSViewMainForm.GoToForeground;
var
Info: TAnimationInfo;
Animation: Boolean;
begin
// Проверяем, включена ли анимация для окон
Info.cbSize:= SizeOf(TAnimationInfo);
Animation:= SystemParametersInfo(SPI_GETANIMATION,
SizeOf(Info), @Info, 0 and (Info.iMinAnimate <> 0);
// если включена, отключаем, чтобы не было ненужного мерцания
if Animation then
begin
Info.iMinAnimate:= 0;
SysteParametersInfo(SPI_SETANIMATION, SizeOf(Info), @Info, 0);
end;
// Если приложение не минимизировано, минимизируем
if not IsIconic(Application.Handle) then Application.Minimize;
// Восстанавливаем приложение. При этом оно автоматически выводится
// на передний план
Application.Restorе;
// Если анимация окон была включена, снова включаем ее
if Animation than
begin
Info.iMinAnimate:= 1;
SystemParametersInfo(SPI_SETANIMATION, SizeOf(Info), @Info, 0);
end;
end;
Теперь у нас сделано все, что нужно: приложение умеет ассоциировать расширение с двумя командами; проверять, не ассоциировано ли расширение с другим приложением, и если да, предлагать пользователю установить эту ассоциацию; запрещать запуск второй копии приложения, переводя вместо этого на передний план первую копию; передавать параметры второй копии первой, чтобы она могла выполнить требуемые действия.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
13.3. Динамический перевод сообщений программ
13.3. Динамический перевод сообщений программ Только что освещенные интерфейсы стандартной библиотеки С решают простые части проблемы локализации. Для денежных, числовых значений, значений времени и даты, также, как для проблем сортировки строк, применяется управление
Перевод в различные системы счисления
Перевод в различные системы счисления base_convertКонвертация числа из одной системы счисления в другую.Синтаксис:string base_convert(string $number, int $frombase, int $tobase)Переводит число $number (заданное как строка в системе счисления по основанию $frombase) в систему по основанию $tobase. Параметры $frombase и
2.4. Перевод
2.4. Перевод Перевод дает возможность наблюдать механизм конкретизации заданий отсутствия в работе. При переводе басни о волке и ягненке с английского языка на японский требуется упомянуть о том месте у реки, где находятся действующие лица, хотя этого не требуется в
Банковский перевод
Банковский перевод Банковский перевод является, пожалуй, самым распространенным способом передачи денег. Причем под словом «банк» в подавляющем большинстве случаев подразумевается Сбербанк, так как в России он имеет самую обширную сеть филиалов, поэтому наиболее
Почтовый перевод
Почтовый перевод Это еще один популярнейший способ перевода. Почтовые отделения есть практически везде, и если в вашем местечке нет банка, то обязательно где-то поблизости находится старая добрая почта.Кстати, на счет «старой доброй». Эти слова вовсе не означают, что и
Перевод
Перевод Знание какого-либо иностранного языка открывает перед вами широчайшие горизонты на рынке удаленной работы. Однако места, на которые вы можете рассчитывать, будут сильно зависеть от уровня ваших знаний.Если вы знаете иностранный язык в совершенстве, то вам будут
8.4.5. Перевод процесса в фоновый режим
8.4.5. Перевод процесса в фоновый режим Если вы запускаете какой-то процесс путем запуска программы из командной строки, то обычно процесс запускается, как говорят, "на переднем плане". Это значит, что процесс "привязывается" к терминалу, с которого он запущен, воспринимая
Перевод на другие языки
Перевод на другие языки Увеличение количества посетителей – одна из приоритетных задач любого Web-сайта. Расширить аудиторию за счет иностранных клиентов позволяет перевод Web-страниц на другой язык. Для некоторых сайтов, которые ориентированы на многоязычных
1.1. Машинный перевод
1.1. Машинный перевод Исторически машинный перевод является первой попыткой использования компьютеров для решения невычислительных задач (знаменитый Джорджтаунский эксперимент в США в 1954 г.; работы по машинному переводу в СССР, начавшиеся в 1954 г.). Развитие электронной
Перевод текстов
Перевод текстов Как мы уже отмечали ранее, удаленные переводчики также являются потенциальными жертвами мошенников. При этом схема обмана может выглядеть примерно так, как и в ситуации с набором текстов. Ниже мы приводим конкретный пример объявления, которое дали
PROMT – перевод текста
PROMT – перевод текста Знание хотя бы одного иностранного языка необходимо сегодня всем, как воздух. В особенности пользователям: ведь избежать столкновения с английским языком на компьютерном поприще, увы, невозможно. Ладно, если бы дело касалось только файлов с
ПИСЬМОНОСЕЦ: Передний Край ушел в другое место
ПИСЬМОНОСЕЦ: Передний Край ушел в другое место Автор: Владимир ГуриевДоброго времени.Уже неоднократно встречал высказывания о низком качестве научных статей в wiki-ресурсах. Однако поводом к написанию послужила передача по «Discovery» с названием "Действительно большие вещи"
3. Перевод в конечный формат
3. Перевод в конечный формат Итак… переводим книгу в нужный формат. Я здесь рассматриваю только формат PDF как единственно простое, быстрое, кардинальное решение «форматного вопроса»… стойте. Где-то я уже это говорил. Ах, да. Ну, хорошо, есть много форматов в которые можно
Заполняем передний план
Заполняем передний план Заполненный передний план всегда смотрится выигрышно. Городской пейзаж здесь не является исключением. Старайтесь не допускать скучной пустоты — однотонного асфальта, равномерного газона и т. д. Если посмотреть внимательно, можно скомпоновать