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

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


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

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

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

Выпуск № 1007
от 14.12.2007, 14:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 437, Экспертов: 58
В номере:Вопросов: 4, Ответов: 8


Вопрос № 112957: Подскажите пожалуйста как правильно реализовать подстановку значения... Есть таймер, ему нужно задавать разные промежутки срабатывания, по нажатию на разные RadioButton ы... При таком коде выдаеёт ошибку: [Warning] Unit1.pas(65): Variabl...
Вопрос № 112971: Здравствуйте, уважаемые эксперты. Суть вопроса: как прописать относительные адреса расположения вместо абсолютных... Я написал программу для автозапуска с CD-диска, ошибка была связана с переносом программы на другой носитель. У мен...
Вопрос № 112998: Привет всем вопрос такой у меня программа которая висит в памяти и форма невидима (form1.hide)до тех пор пока не произойдет соединение с интер нетом.при соединении форма становится видимой (form1.show;form1.formstyle:=fsstayontop) ее можно св...
Вопрос № 113055: Здравствуйте господа эксперты. Возникла необходимость поверх видео вывести текст, видео выводится на панель при помощи медиаплэйера. На панеле лежит комопент image, в который и необходимо выводить разный текст, использования таймера не приводит к нуж...

Вопрос № 112.957
Подскажите пожалуйста как правильно реализовать подстановку значения...
Есть таймер, ему нужно задавать разные промежутки срабатывания, по нажатию на разные RadioButton ы...
При таком коде выдаеёт ошибку:
[Warning] Unit1.pas(65): Variable 'b' might not have been initialized
[Error] Unit1.pas(71): Undeclared identifier: 'b'

Помогите плиз, программированием занимаюсь недавно...

Приложение:

Отправлен: 08.12.2007, 15:37
Вопрос задал: Crazylamer (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Архангельский Андрей Германович
Здравствуйте, Crazylamer!

1) Переменная B должна быть объявлена на уровне модуля
2) Переменная B должна быть инициализированная в процедуре TFor1.Create

Приложение:

---------
Если дело заслуживает быть сделаным, то оно заслуживает, чтобы его сделали ХОРОШО

Ответ отправил: Архангельский Андрей Германович (статус: Специалист)
Ответ отправлен: 08.12.2007, 15:46

Отвечает: Сычёв Павел Алексеевич
Здравствуйте, Crazylamer!
В первой процедуре вы не задали b, т.е. не вписали в него начального значения,сл-но random(b) не может выполниться.

А во второй процедуре переменная b вообще не обьявлена.Если хотите использовать b из первой процедуры в свех , то пишите её не тут

procedure TForm1.Timer2Timer(Sender: TObject);
var
a:integer;
b:integer;
begin
а вверху программы после обьявления
var
Form1:TForm1;
напишите дальше
b:integer;
Ответ отправил: Сычёв Павел Алексеевич (статус: 2-ой класс)
Ответ отправлен: 08.12.2007, 19:06

Отвечает: Mishell
Здравствуйте, Crazylamer!
наверно лучше вообще обойтись без переменных

Приложение:

Ответ отправил: Mishell (статус: 8-ой класс)
Ответ отправлен: 10.12.2007, 10:24


Вопрос № 112.971
Здравствуйте, уважаемые эксперты.
Суть вопроса: как прописать относительные адреса расположения вместо абсолютных...

Я написал программу для автозапуска с CD-диска, ошибка была связана с переносом программы
на другой носитель. У меня в программе были прописаны абсолютные адреса расположения файлов/папок,
вместо относительных.

Короче говоря, на форме проекта разместил я проигрыватель MediaPlayer1, чтобы при запуске программы музыка звучала,
кнопки разместил, чтобы по
нажатию на них открывались файлы .exe на CD-диске. Все муз. и exe-файлы в той же папке, что и проект.

Подскажите, что и где надо написать, чтобы эта конструкция работала.
Буду очень рад подробным подсказкам и комментариям.
Георгий.

Приложение:

Отправлен: 08.12.2007, 17:40
Вопрос задал: Чечин Георгий Александрович (статус: 3-ий класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 8)

Отвечает: Сычёв Павел Алексеевич
Здравствуйте, Чечин Георгий Александрович!
Взде вместо обсолютного путя папки пишите (без ковычек в коде
, т.е. не как текст)
ExtractfileDir(Application.ExeName)+''+FileName
где FileName- имя самого файл, который надо открыть(ну файл, на который вы пишете ссылку)
Ответ отправил: Сычёв Павел Алексеевич (статус: 2-ой класс)
Ответ отправлен: 08.12.2007, 19:08
Оценка за ответ: 5
Комментарий оценки:
Извините, можно чуть поподробнее? Я абсолютного пути нигде не прописывал. Вы может заглянете на мини-форум, там есть код программы. Пожалуйста, помогите разобраться. Если бы не было бы важно, я бы никого лишний раз не дергал.

Отвечает: PavelGM
Здравствуйте, Чечин Георгий Александрович!

Посмотрел ваш код. Похоже вам надо сделать пару вещей. (Интеграция предыдущего ответа и ответ на ваш вопрос) - отменить AutoOpen (он вызывает автоматическое открытие нужного устройства а в FileName у вас еще нет корректного пути к файлу) и проделать в Create перед Play две вещи - установку имени файла и открытие плеера.

procedure TForm1.FormCreate(Sender: TObject);
begin
MediaPlayer1.FileName := ExtractFilePath(Application.ExeName)+"test.wav" // или что-там у вас
MediaPlayer1.Open;

MediaPlayer1.Play;
end;
Ответ отправил: PavelGM (статус: Студент)
Ответ отправлен: 09.12.2007, 17:43
Оценка за ответ: 5
Комментарий оценки:
Спасибо за внимание. Если можно, то еще подробнее. Я был бы рад. Как насчет того, как открывать файлы .exe?


Вопрос № 112.998
Привет всем вопрос такой у меня программа которая висит в памяти
и форма невидима (form1.hide)до тех пор пока не произойдет соединение с интер
нетом.при соединении форма становится видимой (form1.show;form1.formstyle:=fsstayontop) ее можно сворачивать
разворачивать ну как и надо.при разъединении форма снова прячется
а при повторном соединении снова появляется но не хочет сворачиваться
кнопка сворачивания не работает.Не знаю в чем тут дело и как отследить
где ошибка ведь обработчик события нажатия кнопки сворачивания задаю
не я он возникает вместе с формой.
Отправлен: 08.12.2007, 20:43
Вопрос задал: Байрашевский Тахир (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Mishell
Здравствуйте, Байрашевский Тахир!
когда вы показываете свою форум приложение может быть свернутым - его надо развернуть - Application.Restore
Ответ отправил: Mishell (статус: 8-ой класс)
Ответ отправлен: 10.12.2007, 10:35
Оценка за ответ: 2
Комментарий оценки:
??? Не понял ответа Вопрос в том что форма видна НО НЕ ХОЧЕТ СВОРАЧИВАТЬСЯ при втором запуске


Вопрос № 113.055
Здравствуйте господа эксперты. Возникла необходимость поверх видео вывести текст, видео выводится на панель при помощи медиаплэйера. На панеле лежит комопент image, в который и необходимо выводить разный текст, использования таймера не приводит к нужному решению проблемы, как это можно осуществить. Заранее благодарен.
Отправлен: 09.12.2007, 10:04
Вопрос задал: Genia007 (статус: 2-ой класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: PavelGM
Здравствуйте, Genia007!

Самый правильный вариант - выводить, используя DirectShow и VMR Renderer. В DirectX SDK (до 9.0с) от Микрософт есть примеры, как это делать (например Watermark или TxtPlayer). А заголовки для DirectShow под Дельфи можно использовать с Jedi (www.delphi-jedi.org).

Дело в том, что медиаплейер использует DirectShow и VMR по умолчанию, а тот может задействовать и оверлеи и 3Д блок. Так что просто так "положить сверху" скорее всего не удастся или не будет универсально.

Еще вариант - пишем фильтр - встраиваем его между декодером и рендерером. а в нем в кадр вставляем нужный текст.

Третий вариант - пишем свой рендерер (опять же см SDK) и получая кадр впечатываем в него свой текст, а потом выводим своим способом.

Ответ отправил: PavelGM (статус: Студент)
Ответ отправлен: 09.12.2007, 17:01
Оценка за ответ: 5
Комментарий оценки:
Спасибо Павел. Не думал, что это так мудрёно.

Отвечает: Louken
Здравствуйте, Genia007!

Зачем себе усложнять жизнь. Можно немножко схитрить. Киньте на Вашу панельку другую панельку и выводите надпись на новую панельку. Правда при этом не удастся достичь прозрачности новой панельки. Ну и пусть, сделайте фон для панельки поприятнее и пользуйтесь наздоровье.
Ответ отправил: Louken (статус: Студент)
Ответ отправлен: 09.12.2007, 22:31
Оценка за ответ: 3
Комментарий оценки:
Спасибо, но это неприемлемый вариант. На панель проблемно выводить текст (кроме Caption, вариантов без мудрежа нет), панель непрозрачная и невидно, что под ней, PaintBox тоже выводит текст в непрозрачный прямоугольник (лучше использовать вместо предложеного вами и с любым фоном, и текст вывовдит в любое место компонента.). А мне нужен фон либо видео, либо картинка (с картинкой проблем невозникает выводим текст прямо на неё в Image).


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

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

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

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

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


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


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.65 от 04.12.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное