Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 22.12.2014, 20:16   #1
Nester
Форумчанин
 
Аватар для Nester
 
Регистрация: 22.10.2008
Адрес: LocalHost
Сообщений: 103
Репутация: 39
По умолчанию Программно развернуть свёрнутое приложение

форма WindowState=wsMinimized
на форме таймер Interval=5000
в таймере одна строка Form1.WindowState:=wsNormal;

запускается в свёрнутом виде но после 5 сек окно не разворачивается

вставлял такое ShowWindow( Form1.Handle, SW_NORMAL );
окно появляется но пустое (без контролов) видимо обработчики прорисовки
и прочего в этом состоянии выключены

вот такая элементарная задача а решить не могу
сто лет не кодил строго не судите
__________________
Никто не знает больше чем не знаю я
Nester вне форума   Ответить с цитированием
Старый 22.12.2014, 20:31   #2
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк.ua
Сообщений: 18,901
Репутация: 6688
По умолчанию

Код:
  Visible:=True;
  WindowState:=wsNormal;
  Timer1.Enabled:=False;
__________________
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар на форуме   Ответить с цитированием
Старый 22.12.2014, 20:43   #3
Nester
Форумчанин
 
Аватар для Nester
 
Регистрация: 22.10.2008
Адрес: LocalHost
Сообщений: 103
Репутация: 39
По умолчанию

ура заработало
Код:
Procedure TForm1.Timer1Timer(Sender: TObject);
  Var MX,MY,x,y: Integer;
             FS: TFormStyle;

 Begin
  //Если приложение свёрнуто
  If Form1.WindowState=wsMinimized Then
   Begin
    Form1.Visible:=True;
    Form1.WindowState:=wsNormal;
   End;

  //Запоминаем состояние окна
  FS:=Form1.FormStyle;
  //Показываем форму поверх всех
  Form1.FormStyle:=fsStayOnTop;

  //Запоминаем координаты курсора мышки
  MX:=Mouse.CursorPos.X;
  MY:=Mouse.CursorPos.Y;
  //Расчитываем координаты центра области Caption окна Form1
  X:=Form1.Left+(Form1.Width Div 2);
  Y:=Form1.Top+5;
  //Устанавливаем курсор в нужную позицию
  SetCursorPos( X,Y );
  //Кликаем левой кнопкой мышки
  Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, X, Y, 0, 0);
  Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, X, Y, 0, 0);
  //Восстанавливаем состояние окна
  Form1.FormStyle:=FS;
  //Возращаем курсор на место
  SetCursorPos( MX,MY );

  //Фокус на объект ввода
  Memo1.SetFocus;
  //Останавливаем таймер
  Timer1.Enabled:=False;

 End;
__________________
Никто не знает больше чем не знаю я

Последний раз редактировалось Stilet; 22.12.2014 в 21:03.
Nester вне форума   Ответить с цитированием
Старый 22.12.2014, 21:07   #4
Nester
Форумчанин
 
Аватар для Nester
 
Регистрация: 22.10.2008
Адрес: LocalHost
Сообщений: 103
Репутация: 39
По умолчанию

использую эту процедуру естественно не в таймере
в программе есть поток который читает данные со сканера штрих кода
режим USB-COM и при получении данных
показывает окно программы (если оно закрыто другими окнами или свёрнуто) с фокусом на объекте ввода
куда и пишится barcode
__________________
Никто не знает больше чем не знаю я
Nester вне форума   Ответить с цитированием
Старый 22.12.2014, 21:10   #5
Nester
Форумчанин
 
Аватар для Nester
 
Регистрация: 22.10.2008
Адрес: LocalHost
Сообщений: 103
Репутация: 39
По умолчанию

что то типа SwitchToThisWindow
но его не проверял и думаю он не работает как мне нужно
__________________
Никто не знает больше чем не знаю я
Nester вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как программно развернуть форму на весь экран? chandrasecar Общие вопросы Delphi 6 26.07.2015 11:39
Как развернуть приложение горячими клавишами cryker Общие вопросы Delphi 4 01.03.2012 18:29
Баг в цикле: программно развернуть - свернуть - восстановить окно chandrasecar Общие вопросы Delphi 23 02.12.2011 16:05
Как программно определить зависшее приложение? Air Win Api 5 26.11.2007 01:30
По нажатию, каких сочетаний клавиш можно программно развернуть приложение, если оно свернуто в трее? Johnny_B Win Api 1 04.06.2007 08:20


08:46.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.