HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 01.12.2009, 22:53
ZdezBilYa
Участник форума
Регистрация: 29.08.2008
Сообщений: 151
Провел на форуме:
1551582

Репутация: 107
Отправить сообщение для ZdezBilYa с помощью ICQ
По умолчанию

Попробуй: CoolTrayIcon
Я ставил CoolTrayIcon_D140.dpk для D2010 (попробуй его или CoolTrayIcon_D120.dpk)
 
Ответить с цитированием

  #2  
Старый 01.12.2009, 23:03
SultanOFF
Участник форума
Регистрация: 04.06.2009
Сообщений: 176
Провел на форуме:
840493

Репутация: 0
По умолчанию

и то и другое попробовал поставить и все таже тупость
 
Ответить с цитированием

  #3  
Старый 01.12.2009, 23:13
POS_troi
Познавший АНТИЧАТ
Регистрация: 01.12.2006
Сообщений: 1,769
Провел на форуме:
3718311

Репутация: 1118


Отправить сообщение для POS_troi с помощью ICQ
По умолчанию

Знач так (опять действительно для С++)

В Экшене формы Resize ставим такой код

Код:
if(this->WindowState == FormWindowState::Minimized)
			 {
				this->ShowInTaskbar = FALSE;
			 }
У мну все работает
 
Ответить с цитированием

  #4  
Старый 01.12.2009, 23:27
ZdezBilYa
Участник форума
Регистрация: 29.08.2008
Сообщений: 151
Провел на форуме:
1551582

Репутация: 107
Отправить сообщение для ZdezBilYa с помощью ICQ
По умолчанию

Нашел такое для Delphi:
Как среагировать на минимизацию формы перед тем как произойдет изменение?
при сворачивании - пищит динамик
Код:
type

TForm1 = class(TForm)

private

{Private declarations}

   procedure WMSysCommand(var Msg: TWMSysCommand);

     message WM_SYSCOMMAND;

public

{Public declarations}

end;


procedure TForm1.WMSysCommand;

begin

if (Msg.CmdType = SC_MINIMIZE)  then

   MessageBeep(0)

else

   inherited;

end;
 
Ответить с цитированием

  #5  
Старый 01.12.2009, 23:26
SultanOFF
Участник форума
Регистрация: 04.06.2009
Сообщений: 176
Провел на форуме:
840493

Репутация: 0
По умолчанию

resize тоже обрабатываю и все равно..ппц видимо придется перехватывать минимизацию
 
Ответить с цитированием

  #6  
Старый 01.12.2009, 23:37
SultanOFF
Участник форума
Регистрация: 04.06.2009
Сообщений: 176
Провел на форуме:
840493

Репутация: 0
По умолчанию

Код:
procedure TForm1.WMSysCommand;

begin

if (Msg.CmdType = SC_MINIMIZE)  then
 begin
 Application.CreateHandle;
ShowWindow(Application.Handle, SW_HIDE);
Application.ShowMainForm := FALSE;
  end
else

   inherited;
end;
по идее должно скрывать иконку с трея, а все равно нифига! Может есть еще какой нить хороший компонент для работы с треем?
 
Ответить с цитированием

  #7  
Старый 01.12.2009, 23:43
ZdezBilYa
Участник форума
Регистрация: 29.08.2008
Сообщений: 151
Провел на форуме:
1551582

Репутация: 107
Отправить сообщение для ZdezBilYa с помощью ICQ
По умолчанию

Цитата:
Сообщение от SultanOFF  
Может есть еще какой нить хороший компонент для работы с треем?
в составе Raize Components есть компонент TRzTrayIcon
 
Ответить с цитированием

  #8  
Старый 01.12.2009, 23:44
SultanOFF
Участник форума
Регистрация: 04.06.2009
Сообщений: 176
Провел на форуме:
840493

Репутация: 0
По умолчанию

хорошо, завтра посмотрю и отпишусь, спасибо
 
Ответить с цитированием

  #9  
Старый 02.12.2009, 02:18
Markus_13
Познающий
Регистрация: 19.02.2009
Сообщений: 83
Провел на форуме:
181715

Репутация: 50
Отправить сообщение для Markus_13 с помощью ICQ
По умолчанию

имхо - бред - для подобной мелочи юзать какие-то компоненты, есть прекрасная функция в ShellApi - называется Shell_NotifyIcon

Пример приложения, сворачивающегося в трей:
Код:
unit Unit1;
interface
uses Windows,Messages,SysUtils,Forms,ShellApi;
const WM_ICO_0D=WM_USER+13; ticID=12345;
type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
  public
//месага отсылаемая окну
    procedure wmIco(var msg:TMessage);message WM_ICO_0D;
  end;

var Form1:TForm1;

implementation

//процедура добавления иконки в трэй (разобраться несложно)
procedure trayAdd(win:tHandle;id:cardinal;ico:hIcon;
msg:cardinal;tip:string);var nid:TNotifyIconData;
begin fillChar(nid,sizeOf(tNotifyIconData),0);with nid do
begin cbSize:=sizeOf(tNotifyIconData);wnd:=win;uID:=id;
uFlags:=NIF_MESSAGE or NIF_ICON or NIF_TIP;
uCallbackMessage:=msg;hIcon:=ico;if length(tip)>63 then
setLength(tip,63);strPCopy(szTip,tip);end;
Shell_NotifyIcon(NIM_ADD,@nid);end;

//процедура удаления иконки
procedure trayDel(win:tHandle;n:Integer);var nid:tNotifyIconData;
begin with nid do begin cbSize:=sizeOf(tNotifyIconData);
wnd:=win;uID:=n;end;Shell_NotifyIcon(NIM_DELETE,@nid);end;

{$R *.dfm}

procedure TForm1.wmIco(var msg:TMessage);begin
//если кликнули по иконке левой или правой кнопкой мыши
if(msg.lParam=$0202)or(msg.lParam=$0205)then begin
//"переключаем" видимость окна
if isWindowVisible(Form1.Handle)then showWindow(Form1.Handle,sw_hide)
else showWindow(Form1.Handle,sw_show);
end;end;

procedure TForm1.FormCreate(Sender: TObject);begin
//добавляем иконку при создании формы
trayAdd(Handle,ticID,application.Icon.Handle,wm_ico_0d,application.Title);end;

procedure TForm1.FormActivate(Sender: TObject);begin
//убираем окно проги с панели приложений
ShowWindow(application.Handle,sw_hide);end;

procedure TForm1.FormDestroy(Sender: TObject);begin
//удаляем иконку при уничтожении формы
trayDel(Form1.Handle,ticid);end;

end.
 
Ответить с цитированием

  #10  
Старый 02.12.2009, 20:01
SultanOFF
Участник форума
Регистрация: 04.06.2009
Сообщений: 176
Провел на форуме:
840493

Репутация: 0
По умолчанию

проблему решил так:
Код:
procedure TForm1.FormCreate(Sender: TObject);
var ExtendedStyle:dword; w:hwnd;
begin
ExtendedStyle:=GetWindowLong(application.Handle, GWL_EXSTYLE);
SetWindowLong(application.Handle, GWL_EXSTYLE,ExtendedStyle or WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW);
with Application do begin
  ShowWindow(Handle, SW_HIDE);
  SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW);
end;
SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW);


end;
теперь иконки нет на панели задач, Я счастлив Спасибо всем кто пытался помочь
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


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




ANTICHAT.XYZ