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

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


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

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

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

Выпуск № 199
от 03.08.2005, 22:10

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


Вопрос № 24227: Помогите пожалуйста !!! Дело в том что на компе две звуковухи, и надо сделать вывод сигнала раздельным - т.е. одна музыка - на первую звуковуху, другая - на вторую. Возможно ли научить этому делфовский медиаплейер, а если возможно то как ?...
Вопрос № 24232: Здраствуйте, мне нужно написать менеджер фаилов который работалбы между двумя компами, желательно используя компоненты TClientSocket и TServerSocket. Заранее спасибо....

Вопрос № 24.227
Помогите пожалуйста !!! Дело в том что на компе две звуковухи, и надо сделать вывод сигнала раздельным - т.е. одна музыка - на первую звуковуху, другая - на вторую. Возможно ли научить этому делфовский медиаплейер, а если возможно то как ?
Отправлен: 29.07.2005, 18:24
Вопрос задал: Skynet79 (статус: Посетитель)
Всего ответов отправлено: 1

Отвечает: Ddeedd
Здравствуйте, Skynet79!

Вроде бы все медиаплееры (через MCI которые) используют одну выбранную звуковуху - ее можно задать в панели управления. Если же хотите выводить звук в две - можно использовать WinApi-шные функции waveOutxxx - они позволяют воспроизводить на заданном устройстве - только вам придется самому читать и распаковывать файл (распаковывать можно через ACM) - это вроде единственный интерфейс, позволяющий задать устройство вывода - даже DirectSound и тот сам устройство выбирает.
Ответ отправил: Ddeedd (статус: 3-ий класс)
Отправлен: 29.07.2005, 20:40


Вопрос № 24.232
Здраствуйте, мне нужно написать менеджер фаилов который работалбы между двумя компами, желательно используя компоненты TClientSocket и TServerSocket.
Заранее спасибо.
Отправлен: 29.07.2005, 21:16
Вопрос задал: Станислав (статус: 1-ый класс)
Всего ответов отправлено: 2

Отвечает: Ddeedd
Здравствуйте, Станислав!

Ну пишите себе на здоровье - проблема то в чем?
Или вам готовый менеджер уже нужен?
В использовании сокетов вроде нет сложностей - для такого задания рекомендую синхронный режим, придумываете себе протокол, делаете на серевере поток ожидание коннекта, потом по одному потоку для обмена данными на клиента, в клиентской части - всего один поток для обмена и все.
Ответ отправил: Ddeedd (статус: 3-ий класс)
Отправлен: 29.07.2005, 22:13

Отвечает: Werewolf
Здравствуйте, Станислав!
Это пример из Delphi World
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ScktComp, StdCtrls;

type
TForm1 = class(TForm)
ClientSocket1: TClientSocket;
ServerSocket1: TServerSocket;
btnTestSockets: TButton;
procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure ClientSocket1Disconnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ServerSocket1ClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure btnTestSocketsClick(Sender: TObject);
private
FStream: TFileStream;
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
var
iLen: Integer;
Bfr: Pointer;
begin
iLen := Socket.ReceiveLength;
GetMem(Bfr, iLen);
try
Socket.ReceiveBuf(Bfr^, iLen);
FStream.Write(Bfr^, iLen);
finally
FreeMem(Bfr);
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
FStream := nil;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
if Assigned(FStream) then
begin
FStream.Free;
FStream := nil;
end;
end;

procedure TForm1.ClientSocket1Disconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
if Assigned(FStream) then
begin
FStream.Free;
FStream := nil;
end;
end;

procedure TForm1.ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
begin
FStream := TFileStream.Create('c: emp est.stream.html', fmCreate or fmShareDenyWrite);
end;

procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Socket.SendStream(TFileStream.Create('c: emp est.html', fmOpenRead or fmShareDenyWrite));
end;

procedure TForm1.btnTestSocketsClick(Sender: TObject);
begin
ServerSocket1.Active := True;
ClientSocket1.Active := True;
end;

end.
Ответ отправил: Werewolf (статус: 4-ый класс)
Отправлен: 01.08.2005, 21:02
Оценка за ответ: 4


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

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

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

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

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


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


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

Яндекс


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

В избранное