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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.02.2014, 04:00   #1
Winexcel
Форумчанин
 
Регистрация: 26.08.2013
Сообщений: 187
Смех Программа пропадает с taskbar'a.

Сообственно такая ситуация: Есть главная форма(GuardForm), защита софта, если софт активирован то GuardForm выполняет следующий код: MainForm.show
GuardForm.Hide
Сообственно ероблема что когда прячется главная форма(GuardForm) то программа исчезает с таск бара. Кто знает как исправить?

Последний раз редактировалось Winexcel; 28.02.2014 в 11:20.
Winexcel вне форума Ответить с цитированием
Старый 28.02.2014, 06:47   #2
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

Тогда не пряч окно, а сворачивай.
FaTaL вне форума Ответить с цитированием
Старый 28.02.2014, 07:22   #3
blackstrip
Форумчанин
 
Аватар для blackstrip
 
Регистрация: 21.01.2012
Сообщений: 240
По умолчанию

да, окно надо minimize ) а панель задач - не taskbat, а task baR
blackstrip вне форума Ответить с цитированием
Старый 28.02.2014, 11:20   #4
Winexcel
Форумчанин
 
Регистрация: 26.08.2013
Сообщений: 187
По умолчанию

Цитата:
Сообщение от blackstrip Посмотреть сообщение
да, окно надо minimize ) а панель задач - не taskbat, а task baR
Писал с телефона, прошу прощения.
Winexcel вне форума Ответить с цитированием
Старый 28.02.2014, 11:40   #5
Winexcel
Форумчанин
 
Регистрация: 26.08.2013
Сообщений: 187
По умолчанию

А можно ли как-то сделать перекулючение приоритета главной формы, ну была GuardForm а стала MainForm, просто в таск баре когда наводишь на иконку, высвечивается не то что нужно. Да и из за я не могу свернуть программу в трей.
Winexcel вне форума Ответить с цитированием
Старый 28.02.2014, 17:29   #6
spirit-ua
Форумчанин
 
Аватар для spirit-ua
 
Регистрация: 04.06.2009
Сообщений: 351
По умолчанию

Цитата:
Сообщение от Winexcel Посмотреть сообщение
А можно ли как-то сделать перекулючение приоритета главной формы, ну была GuardForm а стала MainForm, просто в таск баре когда наводишь на иконку, высвечивается не то что нужно. Да и из за я не могу свернуть программу в трей.
Я бы делал по другому: при запуске показывал главное окно и сразу же поверх него окно с проверкой, если все гуд то закрывал окно проверки, если нет - закрывал программу ну или что там задумано
Мне разрешено открывать только одну страницу - about :blank. Сперва было скучно, но потом я втянулся. Теперь у меня там живет 2 виртуальных друга, и я слышу голоса из розетки!
spirit-ua вне форума Ответить с цитированием
Старый 28.02.2014, 20:02   #7
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,872
По умолчанию

Цитата:
Сообщение от Winexcel Посмотреть сообщение
Сообственно такая ситуация: Есть главная форма(GuardForm), защита софта, если софт активирован то GuardForm выполняет следующий код: MainForm.show
GuardForm.Hide
А почему бы не сделать это в файле проекта?
Код:
program MyProgram;

uses
  Forms, Controls,
  uMainForm in 'uMainForm.pas' {MainForm},
  uGuardForm in 'uGuardForm.pas' {GuardForm}
  //Any other forms here
  ;

{$R *.res}

begin
  GuardForm:=TGuardForm.Create(Application);
  if GuardForm.ShowModal = mrOK then begin
    Application.Initialize;
    Application.CreateForm(TMainForm, MainForm);
    ...
    Application.Run;
  end;
end.
northener вне форума Ответить с цитированием
Старый 01.03.2014, 10:22   #8
Winexcel
Форумчанин
 
Регистрация: 26.08.2013
Сообщений: 187
По умолчанию

Цитата:
Сообщение от spirit-ua Посмотреть сообщение
Я бы делал по другому: при запуске показывал главное окно и сразу же поверх него окно с проверкой, если все гуд то закрывал окно проверки, если нет - закрывал программу ну или что там задумано
Открываем любой hex редактор, нопим вызов формы, получаем программу бесплатно
Winexcel вне форума Ответить с цитированием
Старый 01.03.2014, 11:27   #9
Winexcel
Форумчанин
 
Регистрация: 26.08.2013
Сообщений: 187
По умолчанию

Цитата:
Сообщение от northener Посмотреть сообщение
А почему бы не сделать это в файле проекта?
Код:
program MyProgram;

uses
  Forms, Controls,
  uMainForm in 'uMainForm.pas' {MainForm},
  uGuardForm in 'uGuardForm.pas' {GuardForm}
  //Any other forms here
  ;

{$R *.res}

begin
  GuardForm:=TGuardForm.Create(Application);
  if GuardForm.ShowModal = mrOK then begin
    Application.Initialize;
    Application.CreateForm(TMainForm, MainForm);
    ...
    Application.Run;
  end;
end.
Все проверки идут в
Код:
procedure TGuardForm.FormCreate(Sender: TObject);
А делать проверку в кнопке...Это не очень хорошо, да и не удобно пользователю. Перепробовал уже много действий с проектом:
Делал так:
Код:
	Application.Initialize;
	Application.CreateForm(TGuardForm, GuardForm);
	Application.CreateForm(TMainForm, MainForm);
	Application.Run;
И так:
В проекте:
Код:
GuardForm:=TGuardForm.Create(Application);
	Application.Initialize;
        {}
	Application.Run;
В guard form если всё удачно прошло то:
Код:
Application.CreateForm(TMainForm, MainForm);
guardform.Hide;
Сообсвтенно и пробовал в: PROJECT -> OPTIONS -> FORMS -> Свойство MainForm = Mainform
В AutoCreate-Forms на первом месте в списке стоит GuardForm.
Всё без результатов, после исчезновения GuardForm(GuardForm.hide) с таскбара - либо пропадает значок, либо форма не корректно разворачивается, а именно: если форму свернуть не через таскбар(двойным кликом по иконки в таскбаре) то форма сворачивается на рабочем столе в таком виде:


И развернуть ее можно только с этой формы, с таскбара при клике, тупо передается фокус на эту форму, вот же не задача
Winexcel вне форума Ответить с цитированием
Старый 01.03.2014, 12:09   #10
Winexcel
Форумчанин
 
Регистрация: 26.08.2013
Сообщений: 187
По умолчанию

Сообственно помогло следующее:
Если изменить указатель Application.MainForm на другую форму, то всё запашет как надо: реализация:
Код:
var
p:pointer;
begin
	Pointer(p) := @Application.MainForm;
	Pointer(p^) := MainForm;
Winexcel вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Символ пропадает MORPEH Общие вопросы Delphi 0 08.08.2013 21:27
программа держится на экране сикунду и пропадает :=) Общие вопросы Delphi 7 14.08.2012 10:53
Пропадает меню в ИЕ. AndrejG HTML и CSS 0 09.07.2011 18:13
Пропадает результат Никита_П Общие вопросы C/C++ 4 19.02.2010 20:13