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

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


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

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

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

Выпуск № 1017
от 24.12.2007, 19:35

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

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 114726: Здравствуйте господа эсперты. Появился такой вопрос, как в компоненте image отключить звук при воспроизведении видео, но чтобы другие приложения могли параллально воспроизводить звук (например winamp)?...
Вопрос № 114730: Использую WebBrowser для создания многостраничного браузера (вроде оперы) - неясно как перехватывать урл ("открыть в новом окне") и передать его на новую страницу....
Вопрос № 114844: Доброго времени суток! Рассылка очень хорошая, продолжайте в том же духе! Возник вопрос по одной задачи - как ни делал, правильно не получилось, если у вас есть возможность - помогите пожалуйта: Реализовать класс Кольцевой ...
Вопрос № 114851: Люди помогите пожалуйста, тупо собираюсь писать программу напоминатель, дни рождения, данные собираюсь хранить в текстовом файле, помогите сделать выборку типа: if сегодня такое число, then ShowMessage ('Сегодня поздравляем того-то!!!'). Зарание сп...

Вопрос № 114.726
Здравствуйте господа эсперты. Появился такой вопрос, как в компоненте image отключить звук при воспроизведении видео, но чтобы другие приложения могли параллально воспроизводить звук (например winamp)?
Отправлен: 18.12.2007, 20:19
Вопрос задал: Genia007 (статус: 2-ой класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

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

Как заставить колонки не выводить трёхмерное изображение на стену?

Компонент TImage не предназначен для вывода видео и воспроизведения звука. но может использоваться для этих целей, о чём следовало бы указать в вопросе. Продолжая использовать свой телепатор, предположу, что Вы пытаетесь воспроизводить видео через TMediaPlayer (с этого надо было начать вопрос). Этот компонент не предполагает контроля над громкостью воспроизводимого звука.

Простейший вариант - это настраивать громкость звука во всей системе, а при потере приложением фокуса восстанавливать исходное значение громкости, но такой вариант не подходит для фоновой работы WinAMP'а. А вообще рекомендую обратить внимание на DirectShow. Хотя, по правде сказать, такая возможность в большинстве случаев бесполезна, т.к. в данный момент времени пользователь обращает внимание только на один звуковой фрагмент. Кстати, это учтено в DirectSound: все источники звука, не принадлежащие активному приложению, как правило, приглушаются.

По поводу изменения громкости много информации есть в поисковых системах. :)

С уважением, DimonSoft.
Ответ отправил: DimonSoft (статус: 3-ий класс)
Ответ отправлен: 18.12.2007, 22:03
Оценка за ответ: 5
Комментарий оценки:
Спасибо Димон за поправку вопроса, я действительно описался, мне нужен компонент TMediaPlayer


Вопрос № 114.730
Использую WebBrowser для создания многостраничного браузера (вроде оперы) - неясно как перехватывать урл ("открыть в новом окне") и передать его на новую страницу.
Отправлен: 18.12.2007, 20:46
Вопрос задал: Newdelphi (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Raptor3
Здравствуйте, Newdelphi!
У компонента TWebBrowser есть событие NewWindow на него вешаем ниже представленный код

Приложение:

---------
Программист - это человек который решает проблему, о которой вы не знаете, способом который вы не понимаете

Ответ отправил: Raptor3 (статус: 2-ой класс)
Ответ отправлен: 18.12.2007, 20:51
Оценка за ответ: 5
Комментарий оценки:
спасиб - то что нужно


Вопрос № 114.844
Доброго времени суток!

Рассылка очень хорошая, продолжайте в том же духе!

Возник вопрос по одной задачи - как ни делал, правильно не получилось, если у вас есть возможность - помогите пожалуйта:

Реализовать класс Кольцевой буфер на основе динамического массива, элементами которого являются данные типа pointer. Создать потомка - кольцевой буфер из чисел. Решить задачу для каждого элемента последовательности чисел(счит-ся либо с клавиатуры, либо из фала), напечатать те элементы, которые из n соседей имеют, по крайней мере, m одинаковых(m и n задаёт пользователь).

С уважением, Дмитрий.
Отправлен: 19.12.2007, 14:15
Вопрос задал: Realieves (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: DimonSoft
Здравствуйте, Realieves!

По работе с динамическими массивами неплохо написано в справке по Delphi, но подозреваю, что с этим как раз проблем нет. Конкретно по реализации класса...

Будет что-то типа

TMyList=class(TObject) //Про обязательность использования VCL не было ни слова
private
FList:array of Pointer;
protected
function Get(Index:Integer):Pointer;
procedure Put(Index:Integer; Value:Pointer);
public
property Items[Index:Integer]:Pointer read Get write Put; default;
function Add(...):...
.............................
end;

TMyCircleList=class(TMyList)
...............
end;

Наполняете класс TMyList требующимися возможностями - и это уже половина задачи решена. Не забудьте отoverrideить конструктор и деструктор, т.к. надо освобождать память, занятую динамическим массивом, и выполнять ряд других "служебных" действий. Да и вообще, возможно, есть смысл дополнить описание конструктора словом virtual (пригодится :)). Кстати, методы для работы со списком - тоже. Большую часть вопросов по реализации этого класса можно решить, заглянув в исходный код, например, TStringList. Кстати, там же используется интересный приём для повышения скорости работы с динамическим массивом (выделяется не один элемент за раз, а несколько).

В классе TMyCircleList остаётся только переписать методы, работающие со списком, чтобы они воспринимали массив как кольцевой. Тут уж полная свобода творчества, первое, что приходит в голову - это div и mod Вам в помощь.

Дальше используете полученный класс для решения последней задачи.

С уважением, DimonSoft.
Ответ отправил: DimonSoft (статус: 3-ий класс)
Ответ отправлен: 19.12.2007, 15:27
Оценка за ответ: 5


Вопрос № 114.851
Люди помогите пожалуйста, тупо собираюсь писать программу напоминатель, дни рождения, данные собираюсь хранить в текстовом файле, помогите сделать выборку типа: if сегодня такое число, then ShowMessage ('Сегодня поздравляем того-то!!!'). Зарание спасибо
Отправлен: 19.12.2007, 14:55
Вопрос задал: Sefiros (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: programyst
Здравствуйте, Sefiros!

Const CTime: Word = <Свой день рождения>;
...............
if DayOf(Now)= CTime then ShowMessage('<Своё сообщение>');
.................
Ответ отправил: programyst (статус: Заблокирован)
Ответ отправлен: 19.12.2007, 15:07
Оценка за ответ: 5

Отвечает: Дегтярев Антон Александрович
Здравствуйте, Sefiros!
вот 2 процедуры которые читают из IniFaila и пишет в него. в Uses допишите IniFails на форму положите 2 editBox и 1 кнопку

procedure TForm1.FormCreate(Sender: TObject);
var
st : string;
tudey: string;
name : string;
ListBox1 : TListBox;
fail : TIniFile;
i : integer;
begin

// создаём Лист бох который будет нужен для перебора по элементам
ListBox1 := TListBox.Create(self);
ListBox1.Parent := self;
ListBox1.Visible := false;

// Получаем текущую дату (День месяц)
tudey := datetostr(Date);
tudey := copy(tudey,1,5);

//Создаём ини фаил
fail := TIniFile.Create('Путь к файлу');
fail.ReadSections(ListBox1.Items); // записываем все секции ф фаил

// проверям нет ли у кого дня рожденимя
for i := 1 to listbox1.Items.Count do
begin
st := fail.ReadString(inttostr(i),'date','');
st := copy(st,1,5);
if st = tudey then
begin
name := fail.ReadString('i','name','');
showmessage('День рождение у '+ name);
st := '';
end;
end;

fail.Free;
ListBox1.Destroy;

end;

procedure TForm1.Button1Click(Sender: TObject);
var
fail : TIniFile;
ListBox1 : TListBox;
i : integer;
begin
ListBox1 := TListBox.Create(self);
ListBox1.Parent := self;
ListBox1.Visible := false;

Fail := TIniFile.Create('c:antonersdey.ini');
fail.ReadSections(ListBox1.Items);
i := ListBox1.Items.Count+1;
fail.WriteString(inttostr(i),'date', edit1.Text);
fail.WriteString(inttostr(i),'name', edit2.Text);

fail.Free;
ListBox1.Destroy;
end;


---------
Знаете для чего нужен Яndex? для проверки работы интернета
Ответ отправил: Дегтярев Антон Александрович (статус: 3-ий класс)
Ответ отправлен: 19.12.2007, 16:01
Оценка за ответ: 5


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

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

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

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

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

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


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


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

В избранное