Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

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

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

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

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

вот такая элементарная задача а решить не могу
сто лет не кодил строго не судите
Никто не знает больше чем не знаю я
Nester вне форума Ответить с цитированием
Старый 22.12.2014, 19:31   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

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

ура заработало
Код:
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 в 20:03.
Nester вне форума Ответить с цитированием
Старый 22.12.2014, 20:07   #4
Nester
Форумчанин
 
Аватар для Nester
 
Регистрация: 22.10.2008
Сообщений: 103
По умолчанию

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

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


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


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