Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 1175
от 07.09.2008, 17:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 401, Экспертов: 44
В номере:Вопросов: 2, Ответов: 2

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 142873: Здравствуйте уважаемые эксперты. Мой вопрос в следующем. Что и как надо сделать чтобы консольное (или приложение с формой) в Delphi 6 возвращало значение - результат (выполнилось или нет и по какой причине). Т.к. данный exe файл будет вызываться ...
Вопрос № 142895: Здравствуйте все! Покажите плиз как грамотно сделать чтобы при потери фокуса Popup меню на иконке в трее исчезало. Т.е. если клик будет за областью меню, то меню убрать....

Вопрос № 142.873
Здравствуйте уважаемые эксперты. Мой вопрос в следующем.
Что и как надо сделать чтобы консольное (или приложение с формой) в Delphi 6 возвращало значение - результат (выполнилось или нет и по какой причине). Т.к. данный exe файл будет вызываться из другого приложения - из Oracle Forms и в случае не корректного завершения exe файла - принимать необходимые действия
Отправлен: 02.09.2008, 04:56
Вопрос задал: Иваненков В.Д (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: PavelGM
Здравствуйте, Иваненков В.Д!

Для возврата с кодом ошибки в консольном приложении можно использовать процедуру Halt: procedure Halt [ ( Exitcode: Integer) ];

Для VCL так не рекомендуют, но пользовался - никаких особых эксцессов не заметил - процесс все равно терминируется и все лишнее из памяти убирается.

При нормальном завершении вроде бы 0 возвращается.
Ответ отправил: PavelGM (статус: Студент)
Ответ отправлен: 02.09.2008, 11:06
Оценка за ответ: 5
Комментарий оценки:
Да, все получилось. Просто, я в вызываемой программе не могу отловить только код возврата - 0 не 0


Вопрос № 142.895
Здравствуйте все!
Покажите плиз как грамотно сделать чтобы при потери фокуса Popup меню на иконке в трее исчезало. Т.е. если клик будет за областью меню, то меню убрать.
Отправлен: 02.09.2008, 12:45
Вопрос задал: Maximus777 (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: PavelGM
Здравствуйте, Maximus777!

За это отвечате система - это свойство Popup меню. Т.е. Popup меню так и работает - "если клик будет за областью меню, то меню убрать". У меня с этим проблем не было (WinXP/Win2K/WinNT4). Вызывал его появление по перехвату нотификационного сообщения от иконки как-то так

Код:

SetForegroundWindow(Handle);
GetCursorPos(p);
Popup.Popup(p.x,p.y);


Если же у вас не-Popup меню, то есть "самодельное", то попробуйте с функциями SetCaptureMouse/ReleaseCapture и будете получать все сообщения от мыши даже за пределами вашего окна.

Еще есть вариант с ловушками (но это уже "тяжелая артиллерия" :)) SetWindowsHookEx с WH_MOUSE_LL - а дальше анализируйте, где мышь и ч то делает.
Ответ отправил: PavelGM (статус: Студент)
Ответ отправлен: 03.09.2008, 11:27
Оценка за ответ: 5
Комментарий оценки:
Спасибо. Теперь всё ясно. Вот эта строка SetForegroundWindow(Handle); меняет всё дело. По-моему компонент TrayIcon мог бы сам вставлять эту строку в код, раз уж без неё там никак.


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2008, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале

∙ Версия системы: 5.2 RC 1 от 03.09.2008

Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное