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

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


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

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

Выпуск № 580
от 02.09.2006, 13:05

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


Вопрос № 53423: Доброго времени суток.Необходимо читать из файла 4байтовое real (записанное туда чужой программой, написанной не знаю на чем).Все ОК, но прочитанное не равно записанному.Например записуем 398,7 а читает 398,700012207031. Помоему проблема в несоответс...
Вопрос № 53424: Здраствуйте уважаемые эксперты. Как можно воспроизвести видео. Из ресурсов. И музыку....
Вопрос № 53461: Здраствуйте уважаемые эксперты. Наверно я задал 53424 вопрос не так. Потому что мне дали ответы совершенно не потому. Я повторюсь как можно воспроизвести видео файл из самого приложения не производя извлечения. Я знаю что для некоторых компонентов ес...

Вопрос № 53.423
Доброго времени суток.Необходимо читать из файла 4байтовое real (записанное туда чужой программой, написанной не знаю на чем).Все ОК, но прочитанное не равно записанному.Например записуем 398,7 а читает 398,700012207031. Помоему проблема в несоответствии типов. Но что делать не знаю. Подскажите пожалуста решение или хоть направление.

Приложение:

Отправлен: 27.08.2006, 13:30
Вопрос задал: VNos (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Physicist
Здравствуйте, VNos!

Все у Вас правильно записывается/считывается. Просто тип 4-х байтовое вещественное число не позволяет хранить больше 7-8 значащих цифр. Так что правильно округляйте числа при выводе - вместо 398,700012207031 нужно выводить 398,7000.
Ответ отправил: Physicist (статус: Студент)
Ответ отправлен: 27.08.2006, 15:05
Оценка за ответ: 5

Отвечает: sir henry
Здравствуйте, VNos!
Вы почти правильно определили проблему. :)
Дело в том, что тип реал сам по себе неточен и его нужно округлять.
Будет лучше, если Вы точно определитесь с количеством цифр после запятой и возмете, например, тип Currency, который имеет фиксированое значение 4 цифры после запятой. Этот тип специально создан из-за той проблемы, что Вы озвучили.
Если количество цифр после запятой больше 4-х, то считывайте значения в виде строк и записывать их тоже нужно как строку. А потом с помощью StrToFloat().
Попробуйте так-же вместо типа Real (это устаревший тип, расчитаный на эмуляцию сопроцессора) использовать тип Single.
Ответ отправил: sir henry (статус: Академик)
Россия, Красноярск
----
Ответ отправлен: 27.08.2006, 15:17
Оценка за ответ: 4


Вопрос № 53.424
Здраствуйте уважаемые эксперты. Как можно воспроизвести видео. Из ресурсов. И музыку.

Приложение:

Отправлен: 27.08.2006, 13:31
Вопрос задал: Болотов Алексей Борисович (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Сухомлин Кирилл Владимирович
Здравствуйте, Болотов Алексей Борисович!
Если вы хотите просто прогирать файл, то его можно открыть с помощью компонента TMediaPlayer - как с ним работать очевидно. Методы типа Open/Load и Play. Еще avi можно помещать в TAnimation, но это не так удобно.
Если у вас эти ресурсы "зашиты" в какие-дь дркугие программы, то воспльзуйтесь соотв. программами для их извлечения. Например, eXeScope. Правда, не видел, чтобы он mp3 "извлекал".
---------
Не узнаешь - не попробуешь.
Ответ отправил: Сухомлин Кирилл Владимирович (статус: Студент)
Ответ отправлен: 27.08.2006, 20:41

Отвечает: Савенко Вадим Иванович
Здравствуйте, Болотов Алексей Борисович! Для этого в Delphi имеется компонент MediaPlayer. Если поискать, можно найти сторонние компоненты, очень даже неплохие. У меня где-то был компонент со стрелочными индикаторами уровня, с крутящимися регуляторами громкости и баланса. Можно сделать очень стильный плейер. TAnimation воспроизводит видео без звука, поэтому его лучше использовать при визуальном отображении например процесса копирования и т.д.
Ответ отправил: Савенко Вадим Иванович (статус: 9-ый класс)
Ответ отправлен: 27.08.2006, 20:49


Вопрос № 53.461
Здраствуйте уважаемые эксперты. Наверно я задал 53424 вопрос не так. Потому что мне дали ответы совершенно не потому. Я повторюсь как можно воспроизвести видео файл из самого приложения не производя извлечения. Я знаю что для некоторых компонентов есть простая процедура LoadFromResourceName(), но для компонента MediaPlayer нет к сожелению. Подскажиты мне такой компонет или саму процедуру чтобы воспроизвести видео. Заранее благодарен.
Отправлен: 27.08.2006, 22:47
Вопрос задал: Болотов Алексей Борисович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Mo-skin
Здравствуйте, Болотов Алексей Борисович!
Используйте компонент TAnimate:
1. Открываем Блокнот и создаем текстовый файл MyAVI.rс с одной строкой:

ИМЯ_РЕСУРСА ТИП_РЕСУРСА Имя_AVI-файла

Имя и тип ресурса выберите любыми, только набивать их надо в верхнем
регистре. Например:

CLIP AVIFILE Clip.avi
2. В каталоге (Delphi)Bin есть утилита BRCC32.exe. Временно скопируйте
ее в каталог с файлом MyAVI.rс и выполните команду ("пуск" - "выполнить"):

BRCC32.exe MyAVI.rс

В итоге в том же каталоге получите готовый файл ресурсов MyAVI.res.
3. Теперь его надо подключить к программе. Для этого в текст программы
введите директиву

{$R MyAVI.res}

Можно указать ее, например, в модуле главной формы, после директивы
{$R *.DFM}
Это все. Теперь после компиляции программы AVI-файл окажется в ее теле.
Чтобы проиграть его, используйте свойства ResHandle и ResName компонента
TAnimate (хотя ResHandle в данном варианте можно и не задавать):

ResHandle := HInstance;
ResName := 'CLIP'; // То, что задавалось, как ИМЯ_РЕСУРСА.


---------
Чем больше женщину мы меньше, тем больше меньше мы ее!
Ответ отправил: Mo-skin (статус: 2-ой класс)
Ответ отправлен: 28.08.2006, 00:37
Оценка за ответ: 1


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

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

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

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

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


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


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.35 от 27.07.2006
Яндекс Rambler's Top100

В избранное