Вопрос № 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
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 (статус: 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 (статус: 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:
Как в обычный файл, только именем файла будет имя порта (напр 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