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

Программирование на Delphi

  Все выпуски  

Программирование на Delphi (выпуск 56)


Программирование на DELPHI
Выпуск #56 (28 октября 2006 г.)

Разделы сайта:

Новости сайта
Delphi.int.ru Expert
Файловый архив
Статьи
Компоненты
Plug-in's
Документация
Исходники
Изображения
Игры
Программы
Форум
F.A.Q.
Архив рассылки
Каталог сайтов
Обратная связь

Доброго времени суток, уважаемые читатели!

Новости Delphi.int.ru Expert:

Версия 1.64 (26/10/2006): Изменён внешний вид страницы "Рейтинги экспертов", добавлены индикаторы онлайн-состояний участников на сайте на этой странице. Исправлены небольшие ошибки.

Статистика системы на 28.10.2006, 18:00:

Зарегистрированных экспертов: 61, из них в активном режиме 49.
Участниками задано вопросов: 146.
Всего отправлено ответов: 266.

У Вас есть идеи как сделать рассылку или сайт лучше? Ждём Ваших мнений! info@delphi.int.ru

Приятного чтения и до встречи через неделю!

Разделы рассылки:

Авторское слово
Delphi.int.ru Expert
Статья по Delphi
Файловый архив
Друзья
Юмор

Количество читателей рассылки: 5345.

Delphi.int.ru Expert
(текущая версия системы: 1.64
последнее обновление: 26.10.2006)

Если Вы не являетесь зарегистрированным пользователем сайта, зарегистрируйтесь прямо сейчас! Регистрация »

Delphi.int.ru Expert - это автоматизированная система экспертной помощи, призванная помочь в решении проблем, возникающих как у начинающих, так и опытных программистов, а также способствующая обмену информации между участниками лично и публикации этой информации в массовых рассылках в дальнейшем. Система полностью автоматизирована и постоянно развивается и обновляется. Если у Вас есть какие-то либо вопросы или Вы столкнулись с какой-либо проблемой при программировании на Delphi/WinAPI - задайте свой вопрос и эксперты попытаются Вам помочь. Кроме того, Вы сами можете записаться в состав экспертов и помогать другим.

Задать вопрос экспертам » | Справочное руководство » | Перейти в состав экспертов » | Эксперты системы »

Здесь публикуются вопросы вместе с ответами, срок действия которых закончился (каждый вопрос действителен в течение одной недели).

Delphi.int.ru Expert  – вопросы и ответы (#81 - #90)
Вопрос № 81

Текст вопроса:

Доброе время суток, господа Программисты. Подскажите пожалуйста, как скрыть программу из списков процессов(Диспетчер задач Windows)? Заранее благодарен!!! Жду вашего ответа.

Автор вопроса: Stalker (статус: Посетитель)
Дата и время отправки вопроса: 14.07.2006, 18:30
Получено ответов на вопрос: 2
Сообщений в форуме вопроса: 4
Страница данного вопроса >>


» Ответы на данный вопрос:

1. [Отвечает: bruder (статус: 3-ий класс), 14.07.2006, 18:43]:

Здравствуйте, Гринько Виктор Генадьевич!
http://www.delphi.int.ru/expert/?step=download&id=9

2. [Отвечает: Матвеев Игорь Владимирович (статус: 10-ый класс), 15.07.2006, 04:53]:

Здравствуйте, Гринько Виктор Генадьевич!
Хочу сказать, что это намного сложнее, чем в Win9x, в NT концептуально изменилась работа с процессами, менеджмент памяти и еще очень многое.
Для скрытия от Ctrl-Alt-Del можно использовать статью: http://delphiworld.narod.ru/base/app_xp_hide.html; Только KAV, например, не любит этот код, и Вам прийдется вставить несколько nop в asm вставки dll библиотеки. Но в любом случае, надо понимать, что Ваш процесс не станет полностью невидимым, см. http://www.wasm.ru.



Вопрос № 82

Текст вопроса:

Доброе время суток, господа Программисты. Подскажите пожалуйста, можно ли програмно отключить Ctrl+Alt+Delete, и как это сделать? Заранее благодарен!!! Жду вашего ответа.

Автор вопроса: Stalker (статус: Посетитель)
Дата и время отправки вопроса: 15.07.2006, 16:42
Получено ответов на вопрос: 2
Сообщений в форуме вопроса: 0
Страница данного вопроса >>


» Ответы на данный вопрос:

1. [Отвечает: bruder (статус: 3-ий класс), 16.07.2006, 09:46]:

Здравствуйте, Гринько Виктор Генадьевич!
Блокировка Диспечера задач в приложении.

Приложение:

2. [Отвечает: Помфюк Владимир Степанович (статус: 6-ой класс), 17.07.2006, 10:43]:

Здравствуйте, Гринько Виктор Генадьевич!
SystemParametersInfo(SPI_SETSCREENSAVEACTIVE,1,nil,false); - отключить
SystemParametersInfo(SPI_SETSCREENSAVEACTIVE,0,nil,false); - включить обратно



Вопрос № 83

Текст вопроса:

превед всем. никак нимагу понять как на winapi поменять цвет шрифта в окне класса edit со свойством multiline. Кто знает напишите. А также как поменять цвет (и возможно другие аттрибуты) тока выделеннога текста. часть проги чтобы было понятно выкладываю.

Приложение:

Автор вопроса: Будя (статус: Посетитель)
Дата и время отправки вопроса: 17.07.2006, 07:42
Получено ответов на вопрос: 0
Сообщений в форуме вопроса: 0
Страница данного вопроса >>


» Ответы на данный вопрос:

К сожалению, ответов на данный вопрос не поступило...



Вопрос № 84

Текст вопроса:

Привет! Подскажите пожалуйста как связать DBTreeView с набором данных в другой таблице таким образом, чтобы, встав курсором на узел, в таблице отображался набор данных всех дочерних веток этого узла?
Спасибо.

Автор вопроса: Алексей (статус: Посетитель)
Дата и время отправки вопроса: 23.07.2006, 13:16
Получено ответов на вопрос: 0
Сообщений в форуме вопроса: 0
Страница данного вопроса >>


» Ответы на данный вопрос:

К сожалению, ответов на данный вопрос не поступило...



Вопрос № 85

Текст вопроса:

Как сделать прогу-бота для web-чата, которая будет с заданным интервалом писать мне самому в приват, делая вид, что я сижу за компом? Дело в том, что чат переводит статус в "Отсутствует" через 10 минут после неактивности, а этого бы мне не хотелось. Html-код формы отправки сообщения в чате прилагаю.

Приложение:

Автор вопроса: Андрей Щеглов (статус: Посетитель)
Дата и время отправки вопроса: 25.07.2006, 03:47
Получено ответов на вопрос: 0
Сообщений в форуме вопроса: 0
Страница данного вопроса >>


» Ответы на данный вопрос:

К сожалению, ответов на данный вопрос не поступило...



Вопрос № 86

Текст вопроса:

Добрый день! Как сделать компонент TWEbBrowser невидимым? Причём если я использую свойство Visible, то видимых изменений не проосходит.

Автор вопроса: Жучков С. (статус: Посетитель)
Дата и время отправки вопроса: 27.07.2006, 07:13
Получено ответов на вопрос: 2
Сообщений в форуме вопроса: 0
Страница данного вопроса >>


» Ответы на данный вопрос:

1. [Отвечает: Darya Ermakova (статус: 8-ой класс), 27.07.2006, 11:05]:

Здравствуйте, Жучков С.!
Используйте метод Hide, помогает.

2. [Отвечает: Евгений В (статус: 1-ый класс), 27.07.2006, 15:05]:

Здравствуйте, Жучков С.!
Попробуйте сделать его размер, равным 0px или 1.
(Width и Height.)



Вопрос № 87

Текст вопроса:

Каким образом можно регулировать громкость звучания при использовании медиаплеера?
Заранее блпгодарен
Генри

Автор вопроса: Freger (статус: Посетитель)
Дата и время отправки вопроса: 27.07.2006, 15:34
Получено ответов на вопрос: 2
Сообщений в форуме вопроса: 0
Страница данного вопроса >>


» Ответы на данный вопрос:

1. [Отвечает: Матвеев Игорь Владимирович (статус: 10-ый класс), 28.07.2006, 07:13]:

Здравствуйте, Freger!
Можно изменить громкость по каналам.
LeftVolume, RightVolume - значения от 0 дл $FFFF.
waveOutSetVolume объявлена в MMSystem.pas.
Иначе изменить громкость для TMediaPlayer, наверное, не получится.

Приложение:

Оценка за ответ: 4.
Комментарий: Спасибо за помощь!

2. [Отвечает: Alexander A. Gribanov (статус: 2-ой класс), 28.07.2006, 12:02]:

Как установить громкость Wave-канала тебе уже рассказали. В приложении - функция для установки общей громкости. Принимает значения от 0 до 65535, где 0 - минимальная громкость, 65535 - максимальная. Эту функцию можно модифицировать для управления громкостью любого канала микшера, изменив строку
line.dwComponentType:=MIXERLINE_COMPONENTTYPE_DST_SPEAKERS на необходимую. Перечень констант MIXERLINE_COMPONENTTYPE_ххххх см. в mmsystem.pas или MSND.

Приложение:

Оценка за ответ: 4.



Вопрос № 88

Текст вопроса:

У меня есть мои функции:
VVV(S: String): String;
V(S: String): String;
Функция VVV(S: String): String фозвращает текст длиной 3 символа. Если S менше чем 3 символа, то функция добавит вначале нужное количество нулей. Например S=k. Функция вернет 00k.

Функция V(S: String): String тоже фозвращает текст длиной 3 символа. Если S менше чем 3 символа, то функция добавит вконце нужное количество нулей. Например S=k. Функция вернет k00.

Как сделать чтобы пользователь сам выбирал какую ему функцию использовать?
Хочу чтобы в момент когда нужна эта функция, она читалась с нужного параметра в ini-файле, ранее сохраненного пользователем.

Поставль вопрос по-другому!!!!!
В ini-файле записано
[Function]
Funk1=VVV(S)
Funk2=V(S)

Если надо SSS:=VVV(S)+V(S);, то как функции прочитать из ini-файла, чтобы они передались как функции, а не как строки (чтобы было SSS=00kk00, а не SSS=VVV(S)V(S).


Автор вопроса: Игорь Середюк (статус: Посетитель)
Дата и время отправки вопроса: 27.07.2006, 17:47
Получено ответов на вопрос: 3
Сообщений в форуме вопроса: 1
Страница данного вопроса >>


» Ответы на данный вопрос:

1. [Отвечает: bruder (статус: 3-ий класс), 27.07.2006, 19:36]:

Здравствуйте, Игорь Середюк!
Всё оч просто. Ставь условия.
var b1, b2: boolean;
if IniF.WriteString('Function','Funk1','VVV(S)')='VVV(S)' then bo1 := true else bo1 := false;
if IniF.WriteString('Function','Funk2','V(S)')='V(S)' then bo2 := true else bo2 := false;

Дальше по аналогии.
Удачи.

2. [Отвечает: Деревяно Евгений (статус: 1-ый класс), 27.07.2006, 21:59]:

Возможно подойдут процедурные типы:

// определяем процедурный тип. Дальше будет использована переменная этого типа.
TFun = function (S: String): String;
...

// объявляем две функции. В вашем примере это функции V и VVV
function Fun1(S: String): String;
begin
Result := 'This is Fun1. ' + s;
end;

function Fun2(S: String): String;
begin
Result := s + ' This is Fun2. ';
end;

// а теперь небольшой пример использования
procedure TForm1.Button1Click(Sender: TObject);
var
Fun: TFun; // объявляем переменную процедурного типа
begin
// в зависимости от какого-либо флага (записанного в ini) выбираем нужную в дальнейшем функцию
if CheckBox1.Checked then
Fun := Fun1
else
Fun := Fun2;
// и дальше можно работать с процедурной переменной, а не с функциями.
ShowMessage(Fun('Any text'));
end;

А чтобы получить 00kk00, следует объявить третью функцию, которая бы делала бы Fun1 + Fun2. При более сложных вариантах (SSS:=VVV(S)+V(S)+VVV(S)+VVV(S)+V(S) и т.д.) без парсера не обойтись.

ЗЫ:
Следует обратить внимание на то, что определение типа TFun, функций Fun1 и Fun2 должны быть идентичными. Более подробно обо всём этом можно почитать в Delphi Help. Топик Procedural types.

3. [Отвечает: Виталий Лещенко (статус: 2-ой класс), 28.07.2006, 00:08]:

Здравствуйте, Игорь Середюк!

Способ №1
if что-то там then что-то там else ;)
Способ №2
Делаешь тип:
type TMyFunc = function(s: string): string;
type
TMyFuncData = record
name: string;
func: TMyFunc;
end;
Затем делаешь массив типа TMyFuncData и инициализиреешь его нужным тебе образом...
Затем читаешь из .ini файла имя, ищеш в списке и используешь нужную функцию...

Оценка за ответ: 5.



Вопрос № 89

Текст вопроса:

Доброе время суток, господа Программисты. Подскажите пожалуйста. Мне понадобились два компонента для написание одной программы: TServerSocket и TClientSocket, где их взять, точнее скачать и как их установить? (В моем Delphi их нету) Заранее благодарен!!! Жду вашего ответа.

Автор вопроса: Stalker (статус: 1-ый класс)
Дата и время отправки вопроса: 28.07.2006, 01:44
Получено ответов на вопрос: 2
Сообщений в форуме вопроса: 1
Страница данного вопроса >>


» Ответы на данный вопрос:

1. [Отвечает: Dron (статус: 8-ой класс), 28.07.2006, 10:38]:

Здравствуйте, Гринько Виктор Генадьевич!
Всё очень просто. Несмотря на то, что эти компоненты почему-то пропали с палитры компонент, физически они сохранились. Добавить их легко:
Component - Install Packages
Щёлкаем Add и выбираем файл DELPHI\Bin\dclsockets70.bpl (цифры могут отличаться - 70 в Delphi 7). Дальше ставим эту галочку, ОК - и компоненты появятся. Удачи!

2. [Отвечает: Виталий Лещенко (статус: 2-ой класс), 28.07.2006, 12:12]:

Здравствуйте, Гринько Виктор Генадьевич!

Я так понимаю в Вас D7. Они есть! Просто не установленные... Borland настоятельно не рекомендует их использовать... о чем собственно сказано в readme.txt на диске Delphi

Установи пакет dclsockets70.bpl и эти компоненты появятся на палитре. Этот пакет у тебя лежит в папке bin



Вопрос № 90

Текст вопроса:

Здравствуйте! Пытаюсь доработать программу NetworkTrafficMonitor (она есть в разделе "скачать"), чтобы можно было задавать тарифы для каждого из соединений; так вот обнаружилась загвоздка с однозначной идентификацией соединения: оригинал программы работает с клиентскими IP-адресами, которые каждый раз отличаются. Решил идентифицировать соединение по IP-адресу сервера, но у меня получается его узнать только анализируя "IPForwardTable" (и то как-то не очень надежно), нет ли другого, более элегантного способа? Или как узнать Windows-наименования активных подключений (типа "Соединение с 77-66-55"). И еще: нет ли компонентов, чтобы добавить функцию дозвона?

Автор вопроса: Косолапов Дмитрий Юрьевич (статус: 2-ой класс)
Дата и время отправки вопроса: 28.07.2006, 13:05
Получено ответов на вопрос: 1
Сообщений в форуме вопроса: 0
Страница данного вопроса >>


» Ответы на данный вопрос:

1. [Отвечает: bruder (статус: 3-ий класс), 29.07.2006, 13:48]:

Здравствуйте, Косолапов Дмитрий Юрьевич!
Всё, что Вам нужно, http://www.delphi.int.ru/expert/?step=download&id=11

Оценка за ответ: 5.
Комментарий: Действительно; то что доктор прописал. Спасибо!!!




Статьи  >>

Отправляйте статьи по адресу info@delphi.int.ru и они будут опубликованы в ближайших выпусках рассылки и на сайте.


Файловый архив  >>

Разделы: Статьи | Компоненты | Plug-in's | Документация | Исходники | Программы | Игры | Изображения

Отправляйте полезные компоненты/модули, интересные исходники, собственные программы/игры и мы разместим их на сайте. Отправить можно здесь »

Название
Описание
Категория
Объём
Ссылки
Bred
Исходники текстового редактора, созданного полностью на WinAPI.
31 Кб
Universal print
В диалоговом окне "Печать" - в том, что вызывается по Ctrl+P, есть пункт "Печать в файл". Как распечатать этот файл впоследствии не ясно. Программа предназначена именно для того, чтобы распечатать данный prn-файл. Подробности в справке (прилагается).
247 Кб

Если у Вас есть книги по Delphi (в электронном виде, разумеется) или другая полезная документация - сообщите и её можно будет разместить на сайте.

Отправить файл »   

Ссылки  >>

Обмен баннерами приветствуется для сайтов схожей тематики. По поводу размещения текстовых ссылок обращайтесь сюда.

http://xskernel.excode.ru/
Сайт, посвящённый написанию операционной системы. Новости, информация об XSystem Kernel Team, документация, глоссарий, исходники системы. Open Source - наше направление.
http://www.ssgroup.fatal.ru/
Delphi 39. Ресурс для программистов. Статьи, исходники, компоненты, учебники, справочники, FAQ, программы и многое другое.
http://www.visualbasic.noka.ru/
Программирование на Visual Basic & Basic. Статьи, контролы, исходники, примеры, игры, ActiveX, форум по VB, а также многое другое на одном сайте!
 
Рассылки Subscribe.Ru
Интернет для Delphi-программиста
Visual Basic для новичков и профессионалов
Программирование на Delphi
   
 

Юмор.

Ведущий раздела: Bruder

Клятва компьютерщиков

Держа на винчестере руку
И чувствуя всю его прыть,
Клянемся себе и друг другу
Судьбу ЭВМ посвятить.
Клянемся, клянемся, клянемся
Последним бэкапом своим,
Клянемся, клянемся, клянемся
Как нам завещал сисадмин.
Конечно, судьбу - это слишком,
Но если ночами не спать,
То левыми кликами мышки
Возможно всю жизнь пролистать.
Клянемся, клянемся, клянемся,
Да будет наш вечен коннект,
Клянемся, клянемся, клянемся
И пусть нам поможет ресет.
Пусть бэды на секторе плачут,
И виндовсы тенью дрожат,
Троянские кони пусть скачут,
Мы дружно ответим - формат!
Клянемся, клянемся, клянемся
По клавишам больно не бить,
Клянемся, клянемся, клянемся
В пальто на ВЦ не входить.
Быть может нас хакер погубит
Иль насмерть в игре изобьют,
Но юзеры помнить нас будут,
А бластеры саунд споют.
Клянемся, клянемся, клянемся
Компьютерный двигать прогресс,
Клянемся, клянемся, клянемся
И вечность хранит UPS.

:))

Присылайте компьютерные анекдоты, рассказы и истории по этой ссылке и они обязательно будут опубликованы.
Ведущий рассылки, Ерёмин Андрей.

В избранное