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

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


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

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

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

Выпуск № 158
от 20.06.2005, 22:00

Администратор:Калашников О.А.
В номере:Вопросов: 6, Ответов: 30


Вопрос № 22176: Здравствуйте.Я только учусь. Подскажите пожалуйста,на форме установлен TMediaPlayer ,как сделать чтобы при открытии формы автоматически воспроизводился файл.Заранее спасибо....
Вопрос № 22193: Здравствуйте. Запущен keygen, ключ сгенерирован. Открыто окно, в которое нужно скопировать ключ. Как сделать программу, которая бы выполнила, копирование ключа?...
Вопрос № 22199: Всем привет! У меня такая проблема: как можно вывести и считать данные изв COM порт? Если можно, поделитесь кусочком кода. Спасибо....
Вопрос № 22206: Какой нужно поместить компонент чтобы вызвать файл *.doc в нем, чтобы отображался сам документ. И должен ли быть установлен ворд на этой машине. Заранее спасибо за ответ...
Вопрос № 22212: Здравствуйте,спасибо всем ранее ответившим, это мне очень помогло.У меня возникло ещё два вопроса. 1.Как на форме разместить Gif анимацию,чтобы при открытии формы она воспроизводилась? 2.Второй вопрос по работе с OLE. У меня данные,введён...
Вопрос № 22214: Здраствуйте, Эксперты. У меня к вам вопрос такого содержания. Как в Delphi можно программно перевести jpeg или ico в bmp и обратно,как перевести gif в avi формат? И как в компонент Animation вместо avi поставить gif? Зарание...

Вопрос № 22.176
Здравствуйте.Я только учусь. Подскажите пожалуйста,на форме установлен TMediaPlayer ,как сделать чтобы при открытии формы автоматически воспроизводился файл.Заранее спасибо.
Отправлен: 14.06.2005, 22:28
Вопрос задал: Dovgotko Vadym Vit. (статус: Посетитель)
Всего ответов отправлено: 7

Отвечает: Malish
Здравствуйте, Dovgotko Vadym Vit.!

procedure TForm1.FormCreate(Sender: TObject);
begin
MediaPlayer1.FileName := 'c:Alert.wav';
MediaPlayer1.Open;
MediaPlayer1.Play;
end;
Ответ отправил: Malish (статус: Студент)
Отправлен: 14.06.2005, 23:25

Отвечает: Ujin Antikvar
Здравствуйте, Dovgotko Vadym Vit.!
Это сделать проще простого. Объясняю.

Выбераешь файл который должен проигрываться при открытии формы и ложишь его либо в папку с проэктом либо запоминаешь его деректорию.

Далее в программе пишешь следуюшее.

PROCEDURE TFORM1.CREATE(SENDER: TOBJECT);
BEGIN
MEDIAPLAYER1.FILENAME:='MUSIC.MP3' или 'C:MUSIC.MP3' //Здесь пишем либо только имя файла, если он лежит в папке где и проект, либо его дерикторию (т.е. место рапложение музыкального файла на диске) с именем файла.
MEDIAPLAYER1.OPEN; //MediaPlayer открывает файл
MEDIAPLAYER1.PLAY; //MediaPlayer начинает проигрования файла.
END:

Вот и все

С Уважением,
Ujin Antikvar.
---------
Не зацикливайся на достигнутом, а двигайся в перед
Ответ отправил: Ujin Antikvar (статус: 1-ый класс)
Отправлен: 15.06.2005, 00:24
Оценка за ответ: 5
Комментарий оценки:
Спасибо за довольно содержательный ответ.

Отвечает: Ерёмин Андрей
Здравствуйте, Dovgotko Vadym Vit.!
Form1.OnCreate:
MediaPlayer.FileName:='C:Musicmusic.mp3';
MediaPlayer.Open;
MediaPlayer.Play;
---------
Жизнь - игра, в которой нет setup'а...
Ответ отправил: Ерёмин Андрей (статус: 8-ой класс)
Отправлен: 15.06.2005, 07:51

Отвечает: Gin
Здравствуйте, Dovgotko Vadym Vit.!
К приведенным примерам хочу добавить
1) Запуск проигрования запускать не в момент создания формы TFORM1.CREATE, а в момент показа - TForm1.FormShow. На всякий пожарный.
2) Файл который Вы будете использовать должен лежать там где Вы указали в коде программы. Если его на месте не окажется - фиаско. Для этого нужно организовывать поиск на егойное наличие в недрах Вашего РС.
С Уважением, Gin.
Ответ отправил: Gin (статус: 5-ый класс)
Отправлен: 15.06.2005, 10:21

Отвечает: Delphin
Здравствуйте, Dovgotko Vadym Vit.!
В событии OnCreate формы пиши действия которые тебе нужно сделать.
Поставь имя файла а потом запусти проигрывание.
---------
Ищу сервис пак для школы ^)))
Ответ отправил: Delphin (статус: 5-ый класс)
Отправлен: 15.06.2005, 16:09

Отвечает: sir henry
Здравствуйте, Dovgotko Vadym Vit.!
Какой файл? Если типа WAV, то медиаплейер совершенно не нужен, проще воспользоваться функцией:
PlaySound('Имя_файла.wav', NIL, SND_ASYNC+SND_FILENAME);
Если же непремено хотите МедиаПлейер (например воспроизвести нужно midi-файл, а в хелпе копаться неохота), то выставить свойства МедиаПлейера:
AutoOpen:=True {Чтобы начиналось воспроизведение сразу же при создании формы}
FileName:='Имя_файла';
DeviceType:=AutoSelect; {Чтобы тип устройства для воспроизведения определялся автоматически по расширению файла}
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 16.06.2005, 09:09

Отвечает: Stamm
Здравствуйте, Dovgotko Vadym Vit.!
procedure TForm1.FormCreate(Sender: TObject);
begin
MediaPlayer1.FileName:='E:МузыкаЭПИДЕМИЯЭльфийская рукописьВечный воитель.mp3';
MediaPlayer1.Play;
end;
Ответ отправил: Stamm (статус: 3-ий класс)
Отправлен: 17.06.2005, 00:46


Вопрос № 22.193
Здравствуйте. Запущен keygen, ключ сгенерирован. Открыто окно, в которое нужно скопировать ключ. Как сделать программу, которая бы выполнила, копирование ключа?
Отправлен: 15.06.2005, 09:52
Вопрос задал: Serg80 (статус: Посетитель)
Всего ответов отправлено: 3

Отвечает: Gin
Здравствуйте, Serg80!
То есть работа с мышью и буфером обмена?
С Уважением, Gin.

Ответ отправил: Gin (статус: 5-ый класс)
Отправлен: 15.06.2005, 10:27

Отвечает: Denisss
Здравствуйте, Serg80!
Можно сделать так:
1. Найти в интернете модуль SendKeys (http://www.utilmind.com/delphi/sendkeys.zip) и с помощью этого модуля, а именно, процедуры "SendKeysToHandle" отослать сгенерированный ключ по Хэндлу окна, требующего этот самый ключик.
2. Можно с помощью WinAPI функций, а именно, FindWindow, SetWindowText найти окно поля ввода (не окно программы установщика, а именно поля ввода, куда пароль надо вводить... в первом случае, искать придется само окно установщика) и отправить туда нужный текст.
Можно и еще несколько способов найти/придумать, но я думаю и этого хватит :)
Ответ отправил: Denisss (статус: 5-ый класс)
Отправлен: 15.06.2005, 19:27

Отвечает: sir henry
Здравствуйте, Serg80!
А у Вас есть исходники кейгена? :)
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 16.06.2005, 09:10


Вопрос № 22.199
Всем привет!
У меня такая проблема: как можно вывести и считать данные изв COM порт? Если можно, поделитесь кусочком кода.
Спасибо.
Отправлен: 15.06.2005, 13:31
Вопрос задал: Мурник Роман (статус: 2-ой класс)
Всего ответов отправлено: 9

Отвечает: Bochvarov NikB
Здравствуйте, Мурник Роман!
http://www.delphimaster.ru/cgi-bin/forum.pl?n=5
Ответ отправил: Bochvarov NikB (статус: 3-ий класс)
Отправлен: 15.06.2005, 13:37

Отвечает: Gubanov Denis Andreevitch
Здравствуйте, Мурник Роман!
Процедура AssignFile(<тип данных порта>, <зарезервированый порт>) получает
доступ к порту.
Процедура Read(<тип данных порта>, <переменная типа данных порта>) читает из него
в переменную.
Процедура Write(<тип данных порта>, <переменная типа данных порта>) записывает в
порт.
Например:

TMyPort=record
Head:byte;
x,y:integer;
end;

Var
TPort:TMyPort;
Port:File of TMyPort;
...
AssignFile(Port,'COM1');
Read(Port, TPort);
...
Write(Port, TPort);
Так как обращение к порту происходит быстро и часто, то
лучше создать динамическую переменную типа TMyPort:

TMyPort=record
...
end;
Var
DPort:^TMyPort

Ну адальше по тому же алгоритму...
Ответ отправил: Gubanov Denis Andreevitch (статус: 1-ый класс)
Отправлен: 15.06.2005, 14:53

Отвечает: Snowm@n
Здравствуйте, Мурник Роман!

Как в обычный файл, только именем файла будет имя порта (напр COM1).
Ответ отправил: Snowm@n (статус: Студент)
Отправлен: 15.06.2005, 15:06

Отвечает: Delphin
Здравствуйте, Мурник Роман!
Обращайся к ком порту как к файлу а при открытии файла пиши вместо имени COM3
---------
Ищу сервис пак для школы ^)))
Ответ отправил: Delphin (статус: 5-ый класс)
Отправлен: 15.06.2005, 16:09

Отвечает: Jadd
Здравствуйте, Мурник Роман!
Тут был уже подобный вопрос. На прямую только через драйверы. А из пользовательского режима с помощью WinAPI. Т.е. есть функция CreateFile, в которую в качестве параметра передается не имя файла, а имя устройства, т.е. порта. А дальше, если хэндл этого устройства получен, читаешь функцией ReadFile, а пишешь WriteFile. Подробнее в MSDN. Смотри там разделы по этой функции, а так же в разделе Communications Resources. В последнем разделе описаны функции для настройки порта, а так же диспетчиризации событий порта.
---------
Hakuna matata
Ответ отправил: Jadd (статус: Студент)
Отправлен: 15.06.2005, 16:29

Отвечает: Tsechoev Bagaudin
Здравствуйте, Мурник Роман!
С компортом работают как с обычным файлов, что в виндах, что в никсах (функция ReadFile и т.д.). Есть только одно "но". При отсутствии желания изобретать велосипед, напиши на мое мыло (admin@ingush.com) письмо и я вышлю тебе компоненты.
Удачи!

---------
Есть только одно зло - невежество, и только одно благо - знания
Ответ отправил: Tsechoev Bagaudin (статус: 3-ий класс)
Отправлен: 15.06.2005, 19:21

Отвечает: Malish
Здравствуйте, Мурник Роман!
Вообще надо указывать устройство и его параметры!!! Например оно работает с какой скоростью , биты и т.д.
Ниже как открыть доступ, подробнее можно прочитать в хелпе.
var
f: THandle;
begin
f := Windows.CreateFile('COM1', GENERIC_READ or GENERIC_WRITE,0,nil, OPEN_EXISTING,0,0);
end;
Обязательно просмотри структуру DCВ, например
dcb: TDCB; инициализация структуры
dcb.StopBits := стоп-биты;
dcb.Parity := четность;
dcb.ByteSize := 8;
она может и не понадобится, но я все время ее использую.
ну а читать и писать совсем легко
с помощью функций ReadFile и WriteFile. Они тоже описаны в хелпе.
Если сам не сможешь разобраться пиши мне на почту помогу. В этой теме лучше разбираться самому, тогда точно поймешь. Но а если не получится пришлю небольшой исходник.
Ответ отправил: Malish (статус: Студент)
Отправлен: 16.06.2005, 00:31

Отвечает: Ерёмин Андрей
Здравствуйте, Мурник Роман!
Вот то, что Вам нужно:
http://www.delphi.int.ru/modules/expert/showquestion.php?id=8
http://www.delphi.int.ru/download.php?id=26
---------
Жизнь - игра, в которой нет setup'а...
Ответ отправил: Ерёмин Андрей (статус: 8-ой класс)
Отправлен: 16.06.2005, 07:43

Отвечает: sir henry
Здравствуйте, Мурник Роман!
1. www.torry.net. В строке поиска ввести "com port" (без ковычек). Оно Вам найдет кучу компонентов как с исходным кодом, так и без. :)
2. Статьи по работе с сом-портом:
http://www.delphimaster.ru/articles/comport/index.html
http://www.delphimaster.ru/articles/comm/index.html
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 16.06.2005, 09:21


Вопрос № 22.206
Какой нужно поместить компонент чтобы вызвать файл *.doc в нем, чтобы отображался сам документ. И должен ли быть установлен ворд на этой машине. Заранее спасибо за ответ
Отправлен: 15.06.2005, 15:18
Вопрос задал: KolesnikovAV (статус: Посетитель)
Всего ответов отправлено: 3

Отвечает: Rusland
Здравствуйте, KolesnikovAV!
Наличие установленного ворда на компьютере обязательно. На вкладке System есть компонент OleContainer. Положи его на форму и два раза щелкни по нему, выбери из списка тот тип документа который тебе необходим.
Удачи.
Ответ отправил: Rusland (статус: 5-ый класс)
Отправлен: 15.06.2005, 15:30

Отвечает: Voituk Alexander
Здравствуйте, KolesnikovAV!
Компонент находится на вкладке System и называется OleContainer. Как настроить - посмотри в Хелпе. Но при открытии документа там будет и все меню Ворда. Т.е. как сам понимаешь - Ворд должен быть установлен ОБЯЗАТЕЛЬНО.
Ответ отправил: Voituk Alexander (статус: 8-ой класс)
Отправлен: 15.06.2005, 15:31

Отвечает: sir henry
Здравствуйте, KolesnikovAV!
Самое простое - открывать файл через ShellExecute() - смотрите справку по этой функции. В обязательном порядке должен быть установлен Word или программа его заменяющая, например OpenOffice или просмоторщик для вордовских файлов, который можно скачать с сайта микрософт.
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 16.06.2005, 09:27


Вопрос № 22.212
Здравствуйте,спасибо всем ранее ответившим, это мне очень помогло.У меня возникло ещё два вопроса.
1.Как на форме разместить Gif анимацию,чтобы при открытии формы она воспроизводилась?
2.Второй вопрос по работе с OLE.
У меня данные,введённые в поля на форме,подставляются в ранее созданный файл Exel с последующей распечаткой.Как сделать чтобы файл Exel был присоединён к программе ,находился внутри EXEшника и программа вносила данные в него и выводила на печать?Если можно по подробней.
Заранее благодарю за ответы.

Приложение:

Отправлен: 15.06.2005, 16:22
Вопрос задал: Dovgotko Vadym Vit. (статус: Посетитель)
Всего ответов отправлено: 2

Отвечает: Denisss
Здравствуйте, Dovgotko Vadym Vit.!
1. Для воспроизведения GIF анимации рекомендую компонент TGIFImage (можно найти, например, на www.torry.net)
2. Можно, конечно, сделать, чтобы XLS файл находился внутри ехе-шника, но у Вас будет достаточно мороки по этому поводу: дело в том, что в запущенный ехе-шник нельзя записывать данные (т.е. доступ к файлу для записи закрыт), поэтому Вам придется делать дополнительный ехе-шник или еще как-то ухищряться. Не совсем понятно зачем Вам это.
А способ занести файл внутрь ехе-шника - это либо дописывать в конец файла, либо в ресурсы, а затем редактировать ресурсы ехе-шника из другого ехе-шника. (Т.к., повторюсь, свои собственные ресурсы редактировать нельзя).
Ответ отправил: Denisss (статус: 5-ый класс)
Отправлен: 15.06.2005, 19:54

Отвечает: sir henry
Здравствуйте, Dovgotko Vadym Vit.!
1. Скачайте компонент для анимированного гифа, например:
TGIFImage v.2.2 (http://www.torry.net/vcl/graphics/gif/gifimage.exe), бесплатный.
http://www.torry.net/vcl/graphics/gif/gifimaged7c.zip - модификация его для Delphi 6, 7.
2. Файл можно запихать в ресурс, который присоеденяется к программе при компиляции:
------- data.res -----------------
THEDATA RCDATA "Имя_файла"
------------------------------------
Скомпилировать ресурс
brcc32 data.rc
и в своей программе присоеденить его:
implementation
{$R DATA.RES}
Открываться и печататься он будет с помощью Excel, правда из ресурсов его придется предварительно выгрузить в файл на диске, т.к. Excel работает только с файлами.
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 16.06.2005, 09:43


Вопрос № 22.214
Здраствуйте, Эксперты.

У меня к вам вопрос такого содержания.
Как в Delphi можно программно перевести jpeg или ico в bmp и обратно,как перевести gif в avi формат?
И как в компонент Animation вместо avi поставить gif?

Зарание спасибо за ответы!!!

С Уважением,
Ujin Antikvar.
Отправлен: 15.06.2005, 16:47
Вопрос задал: Ujin Antikvar (статус: 1-ый класс)
Всего ответов отправлено: 6

Отвечает: Rusland
Здравствуйте, Ujin Antikvar!
Перевести из jpg в bmp можно например через компонент TImage (не забудь указать use jpg;). А вот сохранить gif в avi не так то просто. Компонент Animation не сможет проигрывать gif файлы. Для просмотра анимированных gif-ов поставь библиотеку RXLib, там есть компонент RxGifAnimator.
Удачи.
Ответ отправил: Rusland (статус: 5-ый класс)
Отправлен: 15.06.2005, 17:07

Отвечает: Jadd
Здравствуйте, Ujin Antikvar!
Дык изучаешь формат и переводишь. Вообще, винде, в итоге, нет разницы что там jpeg или bmp. Суть в том, что есть два вида хранения изображения: растровый и векторный. Примером растрового формата является bmp, jpeg, а примером векторов wmf. Так вот. В итоге, винда и jpeg, и bmp хранит в памяти (после открытия файла) как массив точек. А jpeg или bmp - это суть способ сохранить набор битов в файл. Есть прекрасная библиотека, которая конвертит это все. Называется она DaVinci. Есть и альтернативы, ноя не помню как они называются :). Есть книга "Программирование графики для Windows". Там много про это написано. Читай.
---------
Hakuna matata
Ответ отправил: Jadd (статус: Студент)
Отправлен: 15.06.2005, 18:52

Отвечает: Denisss
Здравствуйте, Ujin Antikvar!
1. JPEG->BMP и обратно - Приложение
2. Чтобы перевести GIF в AVI, используй http://www.torry.net/vcl/graphics/gif/gifimage.exe (970 Кб) (по крайней мере, автор заявляет, что его компонент это может сделать, да и с исходниками поставляется).
3. В TAnimation нельзя вставить Gif файл.

Приложение:

Ответ отправил: Denisss (статус: 5-ый класс)
Отправлен: 15.06.2005, 20:14

Отвечает: Snowm@n
Здравствуйте, Ujin Antikvar!

Только зная форматы, либо используя соответствующие компоненты (по моему в Install Delphi входят компоненты для работы с JPEG)
Ответ отправил: Snowm@n (статус: Студент)
Отправлен: 15.06.2005, 20:37

Отвечает: Мурник Роман
Здравствуйте, Ujin Antikvar!
Вместо AVI невозможно вставить GIF. Причем АВИ поддерживается не сжатый. Используй компонент Web браузер, для отображения GIF.
А jpeg to bmp, у меня статейка была, если ничего не найдеш, напиши я ее поищу и че-нить придумаем.
Ответ отправил: Мурник Роман (статус: 2-ой класс)
Отправлен: 16.06.2005, 01:17

Отвечает: sir henry
Здравствуйте, Ujin Antikvar!
На www.torry.net около тысячи компонент для этого. Загляните, не пожалеете. :)
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 16.06.2005, 09:44


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

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

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

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

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


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


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

Яндекс


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

В избранное