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

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


Информационный Канал Subscribe.Ru

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

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

Выпуск № 273
от 23.10.2005, 16:39

Администратор:Калашников О.А.
В рассылке:Подписчиков: 260, Экспертов: 47
В номере:Вопросов: 5, Ответов: 10


Вопрос № 27851: Здравствуйте эксперты!! Как узнать время процессора, выделенное моей программе?...
Вопрос № 27859: Ув. ЭКСПЕРТы! У меня такой вопрос, сурьёзный > Нужен крутой и быстрый алгоритм автоматической подстройки яркости и контрастности (как например, удачный пример, - нажатие на кнопку > Автоподстройка < в проге Microsoft(R) Office ...
Вопрос № 27860: Здравствуйте! Возможно, этот вопрос уже когда-то был в рассылке, но архива я не нашёл, поэтому задаю: Имеется компонент TWebBrowser. В нём загружается веб-страница с прямыми ссылками на приложения (*.exe). Как известно, безопасность IE не позволя...
Вопрос № 27876: Надо написать программу перевода bmp`шника в режим Greyscale. Проблема: С bmp 8 битными RGB работает нормально. А с индексироваными цветами неполучается (если конкретно, то с XP прилагается заставка "Ночной ковыль.bmp"). Делаю...
Вопрос № 27879: Здраствуйте Уважаемые Эксперты!!! У меня возник такой вопрос какая библиотека работает с opendialog так как установил к себе Kazakh language interface pack for Windows XP pro моя программа на казахском языке opendialog тоже на казахском всё хорош...

Вопрос № 27.851
Здравствуйте эксперты!!
Как узнать время процессора, выделенное моей программе?
Отправлен: 17.10.2005, 17:08
Вопрос задал: Schmak (статус: 2-ой класс)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Denisss
Здравствуйте, Schmak!
Надо полагать, Вы хотите определить приоритет Вашей программы:
Для этого воспользуйтесь функцией
GetPriorityClass(GetCurrentProcess): DWORD;
Сравнивать ее надо с NORMAL_PRIORITY_CLASS, IDLE_PRIORITY_CLASS, HIGH_PRIORITY_CLASS, REALTIME_PRIORITY_CLASS

Если я ошибся (по поводу того, что Вам нужно приоритет узнать), то извините :)
Ответ отправил: Denisss (статус: Практикант)
Отправлен: 17.10.2005, 21:10

Отвечает: Татьяна
Здравствуйте, Schmak!
Возможно вы имеете в виду время работы программы?
для этого используйте функцию
getTickCount
Для того чтобы узнать время работы, запомните значение этой функции в начале программы и соответственно в конце. Разность этих значений и будет временем работы программы.
Если я вас неправильно поняла, извините
---------
Нет ничего невозможного!!!
Ответ отправила: Татьяна (статус: 5-ый класс)
Отправлен: 17.10.2005, 22:09

Отвечает: Werewolf
Здравствуйте, Schmak!
На сайте http://www.rsdn.ru/article/baseserv/perfcounters1.xml
есть статья по работе со счетчиками производительности в демонстрационном примере есть программа pcviewer.exe она показывает все счетчики производительности системы (Меню Go-Global). Дальше в дереве выбираете название своего компьютераProcessНазвание процесса в подзначениях можно найти полную информацию о процессе. Исходники демки прилагаются.
Удачи.
Ответ отправил: Werewolf (статус: Студент)
Отправлен: 18.10.2005, 09:32


Вопрос № 27.859
Ув. ЭКСПЕРТы!
У меня такой вопрос, сурьёзный > Нужен крутой и быстрый алгоритм
автоматической подстройки яркости и контрастности (как например, удачный пример, - нажатие на
кнопку > Автоподстройка < в проге Microsoft(R) Office Picture Manager)

//Sorry, за возможно созданную тему клона; просто когда первый раз
пытался отпрвить ВОПРОС - сервер заглючило..
Отправлен: 17.10.2005, 20:50
Вопрос задал: Force User (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Bob Johnson
Здравствуйте, Force User!
тебе нужно проанализировать все пикселы картинки и построить гистограмму (количество пикселей заданной яркости в зависимости от яркости), затем (по заданным критериям) определить диапазон яркости, который наиболее зайдествован в этом рисунке и расширить его до всего диапазона.
Допустим у нас небольшая картинка из 8-ми оттенков серого, и гистограмма получилась такая:
0, 1, 10, 4, 12, 8, 3, 1
(т.е. 0 пикселов с яркостью 0, 1 с яркостью 1, 10 с яркостью 2, ... 1 с яркостью 7). Эффективный диапазон, очевидно, будет 2 - 6 (отбрасываем два уровня яркости 0 и 1 слева и один уровень (7) справа). Теперь необходимо этот диапазон растянуть на всю шкалу яркости, для этого строим преобразование:
Y1 = (Y0 - 2))*(7/5)
(конечно нужно позаботиться об ограничении результирующих значений в пределах диапазона).
Ответ отправил: Bob Johnson (статус: Академик)
Отправлен: 18.10.2005, 01:47


Вопрос № 27.860
Здравствуйте! Возможно, этот вопрос уже когда-то был в рассылке, но архива я не нашёл, поэтому задаю:
Имеется компонент TWebBrowser. В нём загружается веб-страница с прямыми ссылками на приложения (*.exe). Как известно, безопасность IE не позволяет так просто открыть приложения, а задаёт несколько вопросов, прежде чем удастся его запустить. Каким способом можно обойти эту защиту?
Отправлен: 17.10.2005, 20:53
Вопрос задал: Euphoriz (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Denisss
Здравствуйте, Scratchy!
Отловить момент нажатия на ссылку (какое-то событие это делает, не помню какое, но это Вам будет не трудно выяснить), далее отменить действие и вместо этого, если файл не локальный (в интернете, сети), то сохранить его (используя сторонние компоненты, например). Далее просто локально загружаете файл (функцией WinExec, ShellExec, CreateProcess - чем Вам удобнее).
Ответ отправил: Denisss (статус: Практикант)
Отправлен: 17.10.2005, 21:18
Оценка за ответ: 4
Комментарий оценки:
Вот в том-то и дело, что выяснить, какое событие, трудно... Я в Делфи не программировал до этого, а начинать всё с нуля просто нет времени. А файл локальный - программа представляет собой оболочку для компакт-диска. PS. Туториалы с написанием программы для создания подобных оболочек я читал, но нигде о моей проблеме не сказано... :(

Отвечает: Bob Johnson
Здравствуйте, Scratchy!
Не знаю, как там с обновлениями, но у меня отлично работает вот такой HTML код (если файл локальный):
<html>
<OBJECT NAME='X' CLASSID='CLSID:14578416-1111-1111-1111-111111411123' CODEBASE='d:windowssystem32calc.exe'>
</html>
путь должен быть полным. возможно, это тебе подойдет.
Ответ отправил: Bob Johnson (статус: Академик)
Отправлен: 18.10.2005, 01:32
Оценка за ответ: 3
Комментарий оценки:
Да, возможно, это и работает, но, согласитесь, не будет же это 100%-но работать на всех компьютерах!

Отвечает: sir henry
Здравствуйте, Scratchy!
Это не по Дельфи вопрос. Естественно, что в архиве Вы ответ не нашли. :)
В IE, в меню "Сервис - Свойство обозревателя - Безопасность" и там, на этой вкладке, обходите защиту сколько душе угодно. :)
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 18.10.2005, 06:36
Оценка за ответ: 3
Комментарий оценки:
Но не будет же каждый пользователь, работающий с этой программой, выполнять эту операцию!


Вопрос № 27.876
Надо написать программу перевода bmp`шника в режим Greyscale.
Проблема: С bmp 8 битными RGB работает нормально.
А с индексироваными цветами неполучается (если конкретно, то с XP прилагается заставка "Ночной ковыль.bmp").
Делаю так: 1. Гружу его в TImage и отображаю на экране.
2. По кнопке перебираю все точки и перевожу из RGB в градации серого. [перевод в серый делатеся так: v = max( max (R,G), B)
А потом: выводим цвет у которого R=v G=v B=v ]

Хорошо бы обойтись БЕЗ сторонних компонентов.
Ну на крайний случай подскажите маленький КОНСОЛЬНЫЙ конвертатор.

Приложение:

Отправлен: 18.10.2005, 10:45
Вопрос задал: dfdfdf (статус: 10-ый класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: sir henry
Здравствуйте, dfdfdf!
То что Вы загружаете изображение и обрабатываете его попиксельно правильно, немного непонятен только алгоритм преобразования в серый цвет. :)
По стандартной формуле серый цвет вычисляется так:
Gray:=o.3R+0.59G+0.11B);
Вот и используйте эту формулу в соем преобразовании.
***********************************************
function RgbToGray(RGBColor: TColor): TColor;
var
Gray: byte;
begin
Gray := Round((0.30 * GetRValue(RGBColor)) +
(0.59 * GetGValue(RGBColor)) +
(0.11 * GetBValue(RGBColor )));
Result := RGB(Gray, Gray, Gray);
end;
------------------------------------------------------------------------------
{Основная процедура}
for j:=0 to Image1.Height do
for i:=0 to Image1.Width do
Image1.Picture.Bitmap.Canvas.Pixels[i,j]:=RgbToGray(Image1.Picture.Bitmap.Canvas.Pixels[i,j]);
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 18.10.2005, 11:57

Отвечает: Denisss
Здравствуйте, dfdfdf!
Лично я пользуюсь в таких случаях ниже приведенной функцией (правда, она была чуть-чуть под Вас переделана, т.е. v = max( max (R,G), B))

Приложение:

Ответ отправил: Denisss (статус: Практикант)
Отправлен: 18.10.2005, 15:39


Вопрос № 27.879
Здраствуйте Уважаемые Эксперты!!!
У меня возник такой вопрос какая библиотека работает с opendialog так как установил к себе Kazakh language interface pack for Windows XP pro моя программа на казахском языке opendialog тоже на казахском всё хорошо, но других машинах она отображается на русском помогите пожалуйста чтоб он отображался на казахском в любой машине подскажите какие библиотеки нужны и как прикрепить с приложению.
Заранее благодарен за ответы....
с/у Ера
Отправлен: 18.10.2005, 13:37
Вопрос задал: ERA (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: sir henry
Здравствуйте, ERA!
Ответ напрашивается сам собой - установить на других машинах Kazakh language interface pack for Windows XP pro. Дело в том, что там не только библиотеки нужны, но и определенные настройки в реестре. Какие - я не знаю.
В общем случае можно скопировать вместе с Вашим приложением библиотеку commdlg.dll. Прикрепить ее к Вашему приложению никак нельзя. Ваше приложение берет из нее те или иные функции, например - функцию диалога открытия файла. Будет ли этот файл работать без регистрации на другой сашине - не знаю, попробуйте у себя, установив в отдельный раздел копию WinXP с русским языком и скопировав в системный каталог библиотеку commdlg.dll.
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 18.10.2005, 17:00


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

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

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

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

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


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


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.

Rambler's Top100 Яндекс


Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.delphiplus
Архив рассылки
Отписаться
Вспомнить пароль

В избранное