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

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


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

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

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

Выпуск № 276
от 26.10.2005, 17:15

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


Вопрос № 28014: Здравствуйте, уважаемые эксперты! Скажите пожалуйста, как привязать файл (видео или аудио) к "полосе поиска" (как в Windows Media Player-е), и из чего эту полосу сделать? Спасибо!...
Вопрос № 28021: ПОМОГИТЕ????КАК с помощью STRINGGRID вывести в первой колонке 100 случайных чисел,а во второй этиже числа неменяя порядка только каждое пятое число будет со знаком минус т.е отрицательное.ПОМОГИТЕ ПОЖАЛУЙСТА! ...
Вопрос № 28039: Здравствуйте, эксперты. Можно ли работать с помощью утилиты сборки make с Delphi. Если нет, то есть ли какой-нибудь аналог make для Delphi....

Вопрос № 28.014
Здравствуйте, уважаемые эксперты!
Скажите пожалуйста, как привязать файл (видео или аудио) к "полосе поиска"
(как в Windows Media Player-е), и из чего эту полосу сделать?
Спасибо!
Отправлен: 20.10.2005, 18:11
Вопрос задал: Vic (статус: Посетитель)
Всего ответов: 5
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Delphin
Здравствуйте, Vic!
Допустим сделать Gauge.
Поставить свойство MAX - длина фильма в секундах.
Изменять Position при просотре фильма каждые 1 сек.
При изменении позиции менять свойство медиаплеера - текущую позицию.
Сделать чтобы Gauge, при нажатии на определенную область, заполнялся до позиции мышки.
---------
Обращаться в ICQ: 66550088 (Ally) или E-Mail: delphinster@gmail.com
Ответ отправил: Delphin (статус: Студент)
Отправлен: 20.10.2005, 19:09

Отвечает: Romodos
Здравствуйте, Vic!
Кладёшь на форму скроллбар progress, таймер timer1 и медиаплеер player
код в приложении

Приложение:

---------
FAQ me off!

Ответ отправил: Romodos (статус: Студент)
Отправлен: 21.10.2005, 06:46

Отвечает: sir henry
Здравствуйте, Vic!
Зделать можно из любого компонента, похожего на TSrollBar, хоть сами нарисуйте.
Принцип таков:
И видео и звуковой файл имеют общую, постоянно присущую компоненту - время, длительность в секундах (или в аналогичных еденицах :). TSrollBar имеет свойства Min, Max, Position, соответственно начальная, конечная и текущая позиция. Значит присваиваете
Min:=0; {Начало}
Max:=Общее_время; {Его Вы получаете открыв файл}
далее, регулярно считываете текущее время (или по таймеру) и присваиваете свойству Position.
Тоже самое подходит и для обратной связи. Перемещаете бегунок, считываете свойство Position и присваиваете тому времени, которое соответствует в этому фрагменту файла.
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 21.10.2005, 08:02

Отвечает: Ballon
Здравствуйте, Vic!

Можете использовать стандартный компонент TrackBar (на вкладке Win32).

Приведу самый простой пример:
Бросте на форму компоненты MediaPlayer, Timer (вкладка System) и TrackBar(вкладка Win32).

Процедура на событие таймера:

procedure TForm1.Timer1Timer(Sender: TObject);
begin
TrackBar1.Position := MediaPlayer1.Position;
end;

Медиаплеера:

procedure TForm1.MediaPlayer1Click(Sender: TObject; Button: TMPBtnType;
var DoDefault: Boolean);
begin
TrackBar1.Max := MediaPlayer1.Length;
Label1.Caption := IntToStr(MediaPlayer1.Length);
end;

---------
Хочу все знать...
Ответ отправил: Ballon (статус: 6-ой класс)
Отправлен: 21.10.2005, 08:28

Отвечает: Ерёмин Андрей
Здравствуйте, Vic!
Из стандартных компонент для полосы поиска лучше всего подойдёт TTrackBar (Win32). При открытии файла через TMediaPlayer установить размер полосы согласно длине файла:
TrackBar1.Max:=MediaPlayer1.Length;
Ну а изменять позицию при движении ползунка в TrackBar1.OnChange(), вот так:
MediaPlayer1.Position:=TrackBar1.Position;
---------
Бог создал мир за семь дней и до сих пор система работает, не требуя перезагрузки, потому что у него не было необходимости поддерживать совместимость с предыдущими версиями...
Ответ отправил: Ерёмин Андрей (статус: Специалист)
Отправлен: 21.10.2005, 14:55


Вопрос № 28.021
ПОМОГИТЕ????КАК с помощью STRINGGRID вывести в первой колонке 100 случайных чисел,а во второй этиже числа неменяя порядка только каждое пятое число будет со знаком минус т.е отрицательное.ПОМОГИТЕ ПОЖАЛУЙСТА!

Приложение:

Отправлен: 20.10.2005, 19:42
Вопрос задал: Панов Алексей Павлович (статус: Посетитель)
Всего ответов: 7
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: D.M.
Салют, Панов Алексей Павлович!

Сначала заполняем 100 столбцов, потом их перебираем и смотрим - делиться ли итый столбец на 5 без остатка, если делится, то рисуем знак минус, иначе просто копируем.....

Все, надеюсь, понятно....
--------------------------------
Зёзики рулят...... :))))

Приложение:

---------
Зёзики руллллят :)

Ответ отправил: D.M. (статус: 1-ый класс)
Отправлен: 20.10.2005, 20:31

Отвечает: Татьяна
Здравствуйте, Панов Алексей Павлович!
Почти не изменяла ваше приложение, просто прямо в том же цикле, где идет присваивание первого столбца, проверять делится ли индекс на 5 (mod - остаток от деления). Особо корректность приложения не проверяла (помните, что обычно индексы начинаются с 0), но идею думаю, сообразите. Желаю удачи

Приложение:

---------
Нет ничего невозможного!!!

Ответ отправила: Татьяна (статус: 5-ый класс)
Отправлен: 20.10.2005, 20:35

Отвечает: Schmak
Здравствуйте, Панов Алексей Павлович!
Немного измените обработчик Button1Click

procedure TForm1.Button1Click(Sender: TObject);
var
a:array[1..100]of integer;
i,j,step:integer;
begin
randomize;
for i:=1 to 100 do
Sg2.Cells[1,i]:=inttostr(random(100));
for i:=1 to 100 do
if i mod 5=0 then
Sg2.Cells[2,i]:='-'+Sg2.Cells[1,i] else Sg2.Cells[2,i]:=Sg2.Cells[1,i];
end;

Смысл: если номер строки делится на 5 (каждое 5-ое число) то выводим знак '-' и число иначе просто число
Ответ отправил: Schmak (статус: 3-ий класс)
Отправлен: 21.10.2005, 05:30

Отвечает: Romodos
Здравствуйте, Панов Алексей Павлович!
Код в приложении
Просто надо вместо for юзать while

Приложение:

---------
FAQ me off!

Ответ отправил: Romodos (статус: Студент)
Отправлен: 21.10.2005, 06:46

Отвечает: sir henry
Здравствуйте, Панов Алексей Павлович!
Ну первый столбец Вы правильно заполняете.
Заполните сначала два столбца одинаковыми числами, а потом, пройдясь по второму, просто подставите впереди числа знак минус у каждого пятого. К сожалению у FOR в дельфи (в отличие от старины Бэйсика) нельзя явно задавать шаг, поэтому вместо For можно использовать Repeat а шаг инкрементировать вручную, а можно сразу же проверять номер строки и подставлять минус:
**********************
1-ый вариант
var
r:integer;
Begin
For r:=0 To 99 do
Begin
sg2.Cells[0,r]:=IntToStr(Random(100));
sg2.Cells[1,r]:=sg2.Cells[0,r];
End;
r:=4;
Repeat
sg2.Cells[1,r]:='-'+sg2.Cells[1,r];
Inc(r, 5);
Until r<=99;
**********************
2-ой вариант
USES StrUtils;
var
r:integer;
Begin
For r:=0 To 99 do
Begin
sg2.Cells[0,r]:=IntToStr(Random(100));
If (RightStr(IntToStr(r),1)=4) or (RightStr(IntToStr(r),1)=9) Then
sg2.Cells[1,r]:='-'+sg2.Cells[0,r]
Else
sg2.Cells[1,r]:=sg2.Cells[0,r];
End;
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 21.10.2005, 08:39

Отвечает: Маренич Владимир
Здравствуйте, Панов Алексей Павлович!
for i:=1 to 100 do
begin
j:=Random(100);
Sg2.Cells[0, i]:=IntToStr(j);
if i mod 5=0 then
Sg2.Cells[1, i]:=IntToStr(-j)
else
Sg2.Cells[1, i]:=IntToStr(j);
end;
Ответ отправил: Маренич Владимир (статус: 3-ий класс)
Отправлен: 21.10.2005, 10:53

Отвечает: Ерёмин Андрей
Здравствуйте, Панов Алексей Павлович!
Помещаем на форму StringGrid1. FixedCols = 0, FixedRows = 0, ColCount = 2, RowCount = 100. А вот и код, заполняющий таблицу числами:

Var I,A: Integer;
begin
Randomize;
//достаточно вызвать один раз в процессе выполнения программы
For I:=0 To StringGrid1.RowCount-1 Do
Begin
A:=Random(101);
//случайное число от 0 до 100
StringGrid1.Cells[0,I]:=IntToStr(A);
StringGrid1.Cells[1,I]:=IntToStr(A*-1);
End;

---------
Бог создал мир за семь дней и до сих пор система работает, не требуя перезагрузки, потому что у него не было необходимости поддерживать совместимость с предыдущими версиями...
Ответ отправил: Ерёмин Андрей (статус: Специалист)
Отправлен: 21.10.2005, 14:55


Вопрос № 28.039
Здравствуйте, эксперты.
Можно ли работать с помощью утилиты сборки make с Delphi. Если нет, то есть ли какой-нибудь аналог make для Delphi.
Отправлен: 21.10.2005, 01:56
Вопрос задал: Kilgor (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: mvp
Здравствуйте, Kilgor!
А вы хотите автоматизировать сборку? :)
Точно не знаю, есть ли средства, но можно попробывать самому(см. help и приложение)
Т. е. для автосборки подойдёт запуск с командной строки delphi32 -b project.dpr
и все файлы откомпилятся. Для страховки, перед этим удалите все *.dcu.
Можно сразу же написать bat-файл, который выполнит все подготовительные действия

Приложение:

---------
Моя совесть чиста - не бывшая в употреблении

Ответ отправил: mvp (статус: 8-ой класс)
Отправлен: 21.10.2005, 03:00

Отвечает: sir henry
Здравствуйте, Kilgor!
А Вы каталог BIN внимательно просматривали? :)
Там лежит эта самая make.exe во всей своей красе. Пользуйтесь на здоровье. :)
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 21.10.2005, 08:15
Оценка за ответ: 5


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

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

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

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

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


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


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

Rambler's Top100 Яндекс


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

В избранное