Вопрос № 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'
Отвечает: Сычёв Павел Алексеевич
Здравствуйте, 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-файлы в той же папке, что и проект.
Подскажите, что и где надо написать, чтобы эта конструкция работала.
Буду очень рад подробным подсказкам и комментариям.
Георгий.
Отвечает: Сычёв Павел Алексеевич
Здравствуйте, Чечин Георгий Александрович!
Взде вместо обсолютного путя папки пишите (без ковычек в коде
, т.е. не как текст)
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) ее можно сворачивать
разворачивать ну как и надо.при разъединении форма снова прячется
а при повторном соединении снова появляется но не хочет сворачиваться
кнопка сворачивания не работает.Не знаю в чем тут дело и как отследить
где ошибка ведь обработчик события нажатия кнопки сворачивания задаю
не я он возникает вместе с формой.
Отвечает: 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).