Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.08.04;
Скачать: CL | DM;

Вниз

Кнопка на панели задач   Найти похожие ветки 

 
Kair ©   (2003-07-19 09:45) [0]

Как сделать так, чтобы значок программы не появлялся на панели задач?
ShowWindow в OnPaint при определенных обстоятельствах не работает. Есть ли еще способы?


 
Palladin ©   (2003-07-19 10:32) [1]

это ж с какого такого похмелья надо было догадатся запихать ShowWindow в OnPaint...


 
Kair ©   (2003-07-19 10:39) [2]

С такого:
ShowWindow(Application.Handle,sw_Hide);
Но при кое-каких вредных действий узера кнопка может появиться на панели задач.
Точно не уверен, но, кажется, я где-то видел другой способ.


 
Palladin ©   (2003-07-19 10:48) [3]


> Но при кое-каких вредных действий узера

расскажи мне эти действия?


 
Юрий Зотов ©   (2003-07-19 10:49) [4]

> Kair © (19.07.03 10:39)

А почему в OnPaint? Вы представляете себе, что делает обработчик OnPaint и зачем он нужен? Вот о чем говорил Palladin.

Перенесите в OnCreate главной формы. И запомните - ЮЗЕРЫ "кое-каких" вредных действий не совершают. Их совершают кое-какие программисты.

Надеюсь, Вы не из их числа?


 
Palladin ©   (2003-07-19 10:50) [5]

И еще один вопросик.
Где в таком:
ShowWindow(Application.Handle,sw_Hide);

написано что это надо пихать в OnPaint?


 
Kair ©   (2003-07-19 11:00) [6]

OnActivate.

Ну в общем по FindWindow сделал ограничение запуска копий.
Иконку для запуска с Рабочего стола переместил на панель быстрого запуска (там иконки эксплорера, свернуть все окна и прочие), это чтобы быстрее нажимать. Нажимаю быстро несколько раз на иконку. Ограничение запуска копий, срабатывает (правда не всегда), но у той единственной копии появляется кнопка на панели задач.

:)


 
Юрий Зотов ©   (2003-07-19 11:24) [7]

> Ограничение запуска копий, срабатывает (правда не всегда)

Это потому, что Вы сделали его по поиску окна. При быстром кликаньи по иконке вторая копия проверяет окно еще ДО того, как его создала первая копия. Поэтому не находит и запускается.

Для проверки на повторный запуск используйте объект ядра (мьютекс, проекцию файла и т.д.). Примеры найдете на Королевстве в разделе Hello, World!

А OnActivate - это тоже не то, что нужно. Используйте OnCreate.


 
Palladin ©   (2003-07-19 11:29) [8]

Пример с мьютексом лежит в FAQ и на этом сайте.
Очень хороший пример...
http://www.delphimaster.ru/cgi-bin/faq.pl?look=1&id=988619824&n=15


 
Kair ©   (2003-07-19 18:55) [9]

Не, на OnCreate почему-то не работает.

Так есть ли еще способы спрятать кнопку?


 
Palladin ©   (2003-07-19 19:00) [10]

Удалено модератором


 
Palladin ©   (2003-07-19 19:11) [11]

Удалено модератором


 
Palladin ©   (2003-07-19 19:16) [12]


IsJustCreated:boolean; // или глобально или в форме - где хочешь там и определяй

procedure TForm1.FormCreate(Sender: TObject);
begin
IsJustCreated:=true;
end;

procedure TForm1.FormShow(Sender: TObject);
begin
if IsJustCreated then
begin
ShowWindow(Application.Handle,sw_hide);
IsJustCreated:=false;
end;
end;


 
Anatoly Podgoretsky ©   (2003-07-19 21:45) [13]

Kair © (19.07.03 11:00)
FindWindow не предназначена для проверки вторй копии при очень быстром запуске их.



Страницы: 1 вся ветка

Текущий архив: 2003.08.04;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.018 c
14-10443
nick-from
2003-07-16 19:51
2003.08.04
Посоветуйте корпус + кулер


4-10524
xn0bys
2003-06-02 16:29
2003.08.04
Как сделать так, чтоб использование процессора было не 100%


1-10247
iNew
2003-07-21 08:59
2003.08.04
Скорость работы StringList и TextFile.


4-10491
dimonf
2003-05-30 19:54
2003.08.04
Как запретить одновременный запуск нескольких копий окна???


1-10231
LKJJed3
2003-07-21 10:50
2003.08.04
Как перевести из String в Extended?