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

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

  Все выпуски  

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


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

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

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

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

Особо и сказать нечего... :-) Разве что на сайте появилось интерактивное меню, с помощью которого удобно переходить по основным разделам сайта.

Статистика Delphi.int.ru Expert на 09.11.2006, 18:00:

Зарегистрированных экспертов: 63, из них в активном режиме 50.
Участниками задано вопросов: 154.
Всего отправлено ответов: 281.

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

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

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

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

Количество читателей рассылки (09.11.2006, 18:00):
5310+523=5833.

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

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

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

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

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

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

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

Уважаемые эксперты!
Как в форму вставить таймер?
И по окончании времени заблокировать форму и выдать сообщение?
Спасибо.

Автор вопроса: Ilia Ermakov (статус: Посетитель)
Дата и время отправки вопроса: 28.07.2006, 18:16
Получено ответов на вопрос: 2
Сообщений в форуме вопроса: 3
Страница данного вопроса >>


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

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

Здравствуйте, Ilia Ermakov!
Поместите на форму компонент TTimer и в событии OnTimer пишите все действия, которые должны произойти

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

2. [Отвечает: Вадим К (статус: 8-ой класс), 28.07.2006, 19:53]:

Здравствуйте, Ilia Ermakov!
Выдать сообщение - ShowMessage('Сообщение');
Заблокировать форму - Form1.Enable:=false;
Хотя, если отображается сообщение, то форма будет заблокирована. А по закрытию сообщения закрываем форму.
Также неплохо отключить таймер в обработчике таймера, а то может выскакивать несколько сообщений.

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



Вопрос № 92

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

Уажаемые эксперты, какой параметр формы отвечает за то, чтобы ее нельзя было растягивать (сохранить один размер и положение на экране)?

Автор вопроса: Ilia Ermakov (статус: Посетитель)
Дата и время отправки вопроса: 28.07.2006, 20:17
Получено ответов на вопрос: 2
Сообщений в форуме вопроса: 2
Страница данного вопроса >>


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

1. [Отвечает: Сергей Устинов (статус: 1-ый класс), 28.07.2006, 20:29]:

Здравствуйте, Ilia Ermakov!

Установите BorderStyle:=bsSingle; - растягивать форму нельзя.
Можно также убрать ненужные кнопки:
В разделе BorderIcons отключаете biMinimize и biMinimize.

Удачи!

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

2. [Отвечает: Косолапов Дмитрий Юрьевич (статус: 2-ой класс), 28.07.2006, 20:51]:

Наиболее простой, но радикальный способ удить двух зайцев - поставить BorderStyle:=bsNone



Вопрос № 93

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

Уважаемые эксперты, какой метод таймера получает его текущее значение времени?
Спасибо.

Автор вопроса: Ilia Ermakov (статус: Посетитель)
Дата и время отправки вопроса: 28.07.2006, 20:36
Получено ответов на вопрос: 2
Сообщений в форуме вопроса: 1
Страница данного вопроса >>


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

1. [Отвечает: Косолапов Дмитрий Юрьевич (статус: 2-ой класс), 28.07.2006, 20:53]:

Смотря что понимать под значением таймера. Если его интервал - то свойство так и зовется - Interval. Если надо получить системное время, то это функция Time, и к таймеру она никакого отношения не имеет.

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

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

Никакой метод таймера не получает его текущее значние времени. Период таймера доступен через свойство Interval. Ввиду того, что TTimer - это обёртка вокруг функий WinAPI *WaitableTimer - в нём принципиально нет возможности узнать сколько он "натикал".

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



Вопрос № 94

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

Уважаемые эксперты какое свойство, или, может быть, это по-другому делается, рисует в ProgressBar квадратики?
Цель - связать таймер с ProgressBar.

Спасибо.

Автор вопроса: Ilia Ermakov (статус: Посетитель)
Дата и время отправки вопроса: 28.07.2006, 20:38
Получено ответов на вопрос: 2
Сообщений в форуме вопроса: 0
Страница данного вопроса >>


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

1. [Отвечает: Косолапов Дмитрий Юрьевич (статус: 2-ой класс), 28.07.2006, 20:57]:

Не помню точно, у прогресс-бара есть свойство либо Value, либо Position, либо Progress, либо что-то наподобие... Поэтому в событии OnTimer твоего таймера надо напиать как-то так: ProgressBar1.Progress:=NewPos, где NewPos - переменная, в которой хранится новое положение прогресс-бара. Также должны быть свойства, определяюшие интервал значений прогресс-бара.

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

У компонента TProgressBar есть свойства Min, Max и Position. Они задают минимальное, максимальное значение и текущую позицию соответственно. За то, чтобы рисовать "квадратики" или "не квадратики" отвечает свойство Smooth.
Для того, чтоб по таймеру показывать позицию ProgressBar'а нужно, например:
1. Помещаем на форму ProgressBar. Устанавливаем свойство Min в 0, Max в 10, Position в 0.
2. Помещаем на TTimer, устанавливаем Interval в 100 (0.1с) и в событии OnTimer увеличиваем значение ProgressBar.Position на 1. Проверяем его на равенство 10, и, если Position равен 10 останавливаем таймер (Timer.Enabled := False) и выдаём какое-то сообщение.
Всё. Это пример ProgressBar'а, заполняющегося в течение 1с.
P.S.: В встоенную систему помощи заглядывать пробовал ?.. Если не знаешь английского, то его пора начинать учить...

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



Вопрос № 95

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

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

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


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

1. [Отвечает: Евгений Козаченко (статус: 1-ый класс), 29.07.2006, 12:49]:

Здравствуйте, Гринько Виктор Генадьевич!
Чтобы спрятать приложение от непродвинутого пользователя достаточно прописать код из приложения.
В этом случае программу можно будет увидеть только во вкладке Процессы в окне Диспетчер задач.
Чтобы скрыть её от посторонних достаточно назвать её Sysini или inst32, чтобы все думали что она системная :)

Приложение:

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

Здравствуйте, Гринько Виктор Генадьевич!
Серьезно: Написать сервис - для XP или зарегистрировать как сервис для Win98.
Несерьезно: Написать драйвер (asm) и работать в режиме ядра.



Вопрос № 96

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

Доброе время суток, господа Программисты. Подскажите пожалуйста. Как открыть доступ к папке или диску програмно. Заранее благодарен!!! Жду вашего ответа.

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


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

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

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



Вопрос № 97

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

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

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


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

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

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

Можно код подключения к серверу завернуть в
try
// тут код подключения
except
// тут код обработки исключения...
end;

Подробнее про исключения можно почитать здесь
http://vitaliy.org/book/delphi/delphi_7_04.php

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

Здравствуйте, Гринько Виктор Генадьевич!
Конструкция try/except/finally в данном случае не поможет, Вы должны обрабатывать событие OnError, установите var-параметр ErrorCode в 0 и сообщение не будет показанно.

Приложение:



Вопрос № 98

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

Я запускаю Ping в окне Memo1.
Получается такое(дополнение1);
Как можно с етого текста достать только IP?
Использовал следущий код (дополнение2);
А возможно как-то зделать все это(из названия www сайта IP) без memo?

Приложение:

Автор вопроса: Наземнов Вячеслав (статус: Посетитель)
Дата и время отправки вопроса: 11.08.2006, 23:27
Получено ответов на вопрос: 3
Сообщений в форуме вопроса: 0
Страница данного вопроса >>


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

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

Здравствуйте, Наземнов Вячеслав!

Первый встречный вопрос: а как этот текст попадает в memo?
Вероятно он не сам туда попадает...
Это я к тому, что при добавлении можно отследить первую строчку "Обмен пакетами с www.mail.ru [194.67.57.26] по 32 байт:" и из нее "выдрать" ip.
Это легко сделать т.к. он заключен в "[", "]".
Для этого есть функция copy.

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

2. [Отвечает: mvp (статус: 4-ый класс), 14.08.2006, 02:07]:

См. приложение. Но это только под Ваш пример

Приложение:

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

3. [Отвечает: Матвеев Игорь Владимирович (статус: 10-ый класс), 14.08.2006, 12:05]:

Здравствуйте, Наземнов Вячеслав!
Если стоит конкретная задача вычлинить необходимые данные из текста можно воспользоваться механизмом Regular Expressions, т.е. Регулярными выражениями.
Возьмите, например, реализацию от Андрея Сорокина (http://regexpstudio.com/RU/).
Приемущество будет в том, что запрос можно изменить во время выполнения.

Приложение:



Вопрос № 99

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

Здравствуйте!
Как можно нажатием на кнопку вставить какой-нибудь текст в нужное место уже имеющегося текста в memo.
Проще говоря, мне нужно организовать что-то типо системы форматирования текста phpBB или IPB, только в программе. :)
Как я понял, нужно оперировать со свойствами
SelStart, SelEnd и SelLength. Но вот дальше додумать не могу. (:
Походу, надо узнать ещё номер строки, в которой курсор стоит, а затем оперировать с copy delete и length.
Но вот что-то торможу... :)

А может вообще как-то подругому можно сделать???
_____
Заранее, спасибо!!!

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


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

1. [Отвечает: Stalker (статус: 1-ый класс), 13.08.2006, 01:28]:

Здравствуйте, Евгений В! Я сейчас вам напишу маленькое приложение, а вы извлекайте нужные вам части кода.
У нас есть Memo, Button, Edit.
Мы щелкаем мышкай по нужной строчке в Мемо, нужная строчка показывается в Edit, мы изменям текст в Edit и нажимаем на кнопку, после этого нужная строчка изменяется в Мемо.
С полученной строчкой из Мемо можно работать как и обычной строкой.

Приложение:

Оценка за ответ: 5.
Комментарий: Спасибо!!! Вот оно, что мне надо Memo1.CaretPos.Y

2. [Отвечает: Косолапов Дмитрий Юрьевич (статус: 2-ой класс), 13.08.2006, 11:16]:

Вообще-то должно быть свойство SelText... Им и оперировать?

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



Вопрос № 100

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

Уважаемые эксперты!
Помогите решить такую проблему:
Использую в проге обычный медиаплеер и на некоторых компьютерах файл *mp3 не звучит.
Пробую применить установленный в Делфи WindowsMediaPleer (внедрив его как ActivX). но он вообще не хочет проиграть файл с таким расширением. Может нужны какие-либо дополнительные установки?
Заранее благодарен

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


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

1. [Отвечает: Stalker (статус: 1-ый класс), 13.08.2006, 10:21]:

Здравствуйте, Freger! Вообще в Delphi с mp3 проблема. Не один из стандартных инструментов не может проигрывать mp3. Для этого нужно писать много кода, жалко не знаю какого. В Delphi World что-то по mp3 ecть. Если у вас нет Воролда, то я могу выслать статьи по mp3. Вот их названия:
>Получение MP3 тэга
>Просмотр и редактирование тэга ID3 (MP3)
>Работа с MP3 Tag-ами
Вообще, если надо чтобы программа играла mp3, то
пускай музыка проигравается через Winamp
Сначало мы открываем Винамп, потом нажимаем в Винампе несколько кнопок(можно другим приложением нажимать кнопки в другой программе), загружаем нужный mp3-файл. И запускаем на проигрывание.
Если нужны статьи или дополнения по загрузке через Винамп, пиши, пришлю.

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

Здравствуйте, Freger!
Дело в том, что ни MediaPlayer, ни WindowsMediaPlayer не могут играть mp3, как впрочем и все остальное. Они эксплуатируют медианитерфейс системы, описаный в файле mmsystem.pas. Проигрывание этими контролами возможно если установлен соответствующий декодер (это косается и аудио и видео).
Если тоскать кодеки обременительно в вашем случае можно использовать отдельный аудио движок, например bass.dll, он может играть mp3, ogg, некоторые трекерные форматы, такие как xm, it и т.д. и еще кое что.
Поищите на torry.net, в разделе Примеры по ключевому слову bass.dll.

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




Статьи  >>

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


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

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

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

Название
Описание
Категория
Объём
Ссылки

Программирование в Delphi 7 (Петр Дарахвелидзе, Евгений Марков):
- Кроссплатформенное программирование;
- Рекомендации по разработке приложений в стиле Windows XP;
- Современные технологии доступа к данным: ADO, dbExpress, InterBase Express;
- Распределенные многозвенные приложения и технология DataSnap.

7.86 Мб
NameUtentePC
Простая программа, показывающая пример, как можно узнать сетевое имя компьютера, а также имя пользователя, под которым выполнен вход в систему.
204 Кб
Convert RGB to Color
Программа, демонстрирующая преобразование RGB-цвета в TColor и обратно.
212 Кб

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

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

Ссылки  >>

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

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

Юмор.

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

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

Поймали злые чечены академика, математика и программиста. Привели их на крышу высотного дома и сказали, типа внизу натянут тент, кто спрыгнет и на тент попадет, тот типа жив останется. Академик развел теорию, долго чего-то думал, прыгнул - разбился. Математик быстро посчитал, прикинул, все учел, прыгнул и попал на тент, вобщем спасся. Программист думает - Ну, математик все сосчитал, я сейчас так же сделаю. Разбегается, прыгает, и с воплем "Блин, перепутал знак !" улетает в небо...

:))

Вопрос: Можно ли считать выражение "Программа выполнила недопустимую
операцию... При повторном появлении ошибки обратитесь непосредственно
к разработчику" официальным вызовом в США?

:))

Билл Гейтс в Мак Дональдсе.
Билл: - Мне, пожалуйста, один Биг Мак
Продавец: - Один Биг Мак, одна Кола, вместе 6.99
Б: - Но я просил только Биг Мак!
П: - Кола идет вместе с Маком как часть единого пакета.
Б: - Что? За Колу я платить не буду!
П: - И не надо! Кола предоставляется абсолютно бесплатно!
Б: - Но ведь один Биг Мак стоил до сих пор 3.99!
П: - Теперь Биг Мак имеет новые возможности! Он поставляется
вместе с Колой!
Б: - Я только что выпил Колу! Мне не нужна еще одна!
П: - Тогда вам придется отказаться и от Биг Мака.
Б: - Ладно, я плачу 3.99 и отказываюсь от Колы.
П: - Вы не можете разделять части пакета! Биг Мак и Кола тесно
интегрированы!
Б: - Чушь! Мак и Кола - два различных продукта!
П: - Тогда посмотрите (Топит Биг Мак в Коле)
Б: - Что вы делаете?!
П: - Это в интересах покупателей! Только так мы можем гарантировать
целостность вкуса всех компонентов пакета.

:))

Хакер читает внуку сказку:
- "...стал он кликать золотую рыбку..."
- Деда, а почему рыбку?
- А потому, дружок, что мышек тогда еще не было.

:))

Золотое правило требований к аппаратным ресурсам для Windows
любых версий:
- Размер оперативной памяти для нормальной работы в мегабайтах
больше или равен состоянию Билла Гейтса в миллиардах.

:))

- Что у программистов быстрее всего изнашивается? - Отпечатки пальцев.

:))

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

В избранное