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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.08.2010, 12:58   #51
FreeBrain
Пользователь
 
Регистрация: 27.08.2010
Сообщений: 60
По умолчанию

Я так поняла, что основной, но лучше я послушаю опытных товарищей))
FreeBrain вне форума Ответить с цитированием
Старый 29.08.2010, 13:00   #52
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

Через 5-10 минут я Вам дам пример.
Только скиньте, пожалуйста, консоль с уже уникальным заголовком.
Никогда не знаешь, где тебе повезет... (Фрай)

Последний раз редактировалось DIgorevich; 29.08.2010 в 13:07.
DIgorevich вне форума Ответить с цитированием
Старый 29.08.2010, 13:11   #53
FreeBrain
Пользователь
 
Регистрация: 27.08.2010
Сообщений: 60
По умолчанию

Знаю, что сейчас туплю, но задам еще раз вопрос, чтобы точно понять.
Запуская приложение, я запускаю экзешник. Мне все, что вы рассказали про скрытие консоли писать в проекте с таким же именем, как у этого экзешника или все-таки в проекте с именем первой формы, которая появляется?

Прикрепила
Вложения
Тип файла: rar Console.rar (81.5 Кб, 7 просмотров)

Последний раз редактировалось FreeBrain; 29.08.2010 в 13:15.
FreeBrain вне форума Ответить с цитированием
Старый 29.08.2010, 13:16   #54
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Если не ошибаюсь!
Код:

const
  WM_MYICONNOTIFY = WM_USER + 123;
type
  TForm1 = class(TForm)
    PopupMenu1: TPopupMenu;
  private
    { Private declarations }
  public
    { Public declarations }
    procedure WMICON(var msg: TMessage); message WM_MYICONNOTIFY;
    procedure CreateTrayIcon;
    procedure TForm1.DeleteTrayIcon;
  end;

var
  Form1: TForm1;
  nidata: TNotifyIconData;

implementation

{$R *.DFM}

uses ShellApi;

procedure TForm1.WMICON(var msg: TMessage);
var
  P: TPoint;
begin
  case msg.LParam of // обработка обратных сообщений
    WM_LBUTTONUP: //по нажатию левой клавиши, WM_RBUTTONUP по правой
      begin
        GetCursorPos(p);
        ShowWindow(Тут хэндл консоли)
        PopupMenu1.Popup(P.X, P.Y);
      end;
    WM_RBUTTONUP: PopupMenu1.Popup(P.X, P.Y); //как Default
  end;
end;

procedure TForm1.CreateTrayIcon;
begin
  with nidata do
  begin
    cbSize := SizeOf(TNotifyIconData);
    Wnd := Self.Handle; //HWND вашего окна (окна принимающего обратные сообщения)
    uID := 1; // номер значка
    uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP; //обрабатываемые флаги
    uCallBackMessage := WM_MYICONNOTIFY;
    hIcon := Application.Icon.Handle;
      // то откуда сдергивается значек это может быть и ImageList и т.д.
    StrPCopy(szTip, Application.Title);
      // всплывающая строка, может быть любой string главное с нулевым окончанием
  end;
  Shell_NotifyIcon(NIM_ADD, @nidata); // добавление значка
end;

procedure TForm1.DeleteTrayIcon;
begin
  with nidata do
  begin
    cbSize := SizeOf(TNotifyIconData);
    Wnd := Self.Handle;
    uID := 1;
  end;
  Shell_NotifyIcon(NIM_DELETE, @nidata); // удаление значка
end;
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 29.08.2010, 13:33   #55
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

Что-то я никак не могу аккуратно закрыть консоль... Она в процессах остается висеть, а убивать не стоит!
Вот пример кода:
Project2.rar
Обратите внимание на uses. Будут вопросы - обращайтесь, или, если хотите, перепишу Ваш код.
Никогда не знаешь, где тебе повезет... (Фрай)
DIgorevich вне форума Ответить с цитированием
Старый 29.08.2010, 13:44   #56
FreeBrain
Пользователь
 
Регистрация: 27.08.2010
Сообщений: 60
По умолчанию

Спасибо огромнейшее! Сейчас посмотрю. Наверное, еще обращусь за помощью...
Еще и 2 варианта))
Тут я совсем наглею. А возможно, чтобы консоль пряталась при нажатии на стандартную кнопку в верхнем правом углу, а разворачивалась уже из меню в трее? И чтобы из меню трея можно было просто закрыть консольное приложение?

Последний раз редактировалось FreeBrain; 29.08.2010 в 13:51.
FreeBrain вне форума Ответить с цитированием
Старый 29.08.2010, 13:51   #57
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Вот надо onDestroy формы до работать а то:
1)После закрытии программы иконка остаётся а толка от неё нет.
2) Если была скрыта консоль, то при закрытии программы исходя из п.1 мы её не покажем.
Код:
procedure TForm1.FormDestroy(Sender: TObject);
begin
    Form1.DeleteTrayIcon(1);
    ShowWindow (FindWindow(nil, 'PrServer'), SW_Show);
end;
Да я просто представляю что будет если к примеру запустить несколько копий основного приложения(бедная консоль и трей).
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303

Последний раз редактировалось Stilet; 30.08.2010 в 08:19.
Hacker19_90 вне форума Ответить с цитированием
Старый 29.08.2010, 14:07   #58
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

Лучше консоль из трея не убивать, а закрывать правильно (* энтер). Сама консоль прятаться в трей не будет.
Никогда не знаешь, где тебе повезет... (Фрай)
DIgorevich вне форума Ответить с цитированием
Старый 29.08.2010, 14:09   #59
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Вот поэтому и надо в онДестрое консоль вывести на рабочий стол
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 29.08.2010, 14:10   #60
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

надо конечно, я этого не писал, т.к. и без того понятно.
Никогда не знаешь, где тебе повезет... (Фрай)
DIgorevich вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Свернуть чужую программу в трей grafgrial Общие вопросы Delphi 6 18.06.2010 19:27
Как свернуть программу в трей !!! Football_lady Общие вопросы Delphi 1 06.02.2010 19:46
Свернуть в трей Nice42ru Помощь студентам 1 05.02.2010 17:02
Word документ свернуть в трей Foxx Microsoft Office Word 4 15.10.2009 23:50
Нужно свернуть прогу в трей AD_min Общие вопросы Delphi 5 13.10.2009 17:01