Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Вопросы по компонентам для Delphi, C++ Builder 2

Автор: greenpc
Дата сообщения: 22.06.2006 07:16
Deeptown12
с ehlib не работал
может попробовать повесить на заголовки
chekbox/listbox/button
и где нить кнопочку выполнить фильтр
Автор: phi1
Дата сообщения: 22.06.2006 11:46
ValeryInfo
Для вопроизведения wav есть спец. компонент в abfComponents.
Автор: PowerChute
Дата сообщения: 22.06.2006 12:15
ValeryInfo
Посмотри на сайте http://www.delphiarea.com
Там есть бесплатная библиотека по работе с wav.
Автор: RomanTim
Дата сообщения: 22.06.2006 12:18
Не подскажет ли кто из любителей TMS как решить такую проблему:
В майском паке часть графики перевели на GDI+, появился модуль AdvGDIP, у котого в конце написано
Код: finalization
begin
// Close GDI +
GdiplusShutdown(gdiplusToken);
end;
Автор: relictus
Дата сообщения: 22.06.2006 12:39
А не подскажет ли кто компонент для создания панелей, подобных панелям, использующимся в CorelDraw - см. скриншот http://i6.tinypic.com/157jkie.jpg
Автор: Deeptown12
Дата сообщения: 22.06.2006 12:53
greenpc
Нужно что то анологичное компоненту cxDBFilterControl из пакета DevExpress
только чтобы можно список полей для фильтрации задавать самим , т.е. не все поля а только чать
Автор: ValeryInfo
Дата сообщения: 22.06.2006 13:10
Проблема не просто c воспроизведением wav, а с тем чтобы
дозвониться и воспроизвести его через модем!
Автор: Deeptown12
Дата сообщения: 22.06.2006 14:06
ValeryInfo
В этом случае вам поможет TAPI API
там есть функции воспроизведения звука в устройство линии
т.е на телефон работают с wawe

Добавлено:
ValeryInfo

Вот простой код дозвона
[more]
unit Main;

interface

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

const
// Взято из TAPI.H
LoVer = $00010000; // Низшая приминимая версия TAPI
HiVer = $10000000; // Высшая приминимая версия TAPI

type
TFormMain = class(TForm)
Label1: TLabel;
EditPhone: TEdit;
Label2: TLabel;
ComboBox: TComboBox;
Label3: TLabel;
MemoLog: TMemo;
BitBtnCalling: TBitBtn;
BitBtnDropCall: TBitBtn;
procedure BitBtnCallingClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure BitBtnDropCallClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
lineApp: THLineApp; // Линия
line: THLine; // Дескриптор
call: THCall; // Вызов
CallParams: TlineCallParams; // Параметры вызова
end;

var
FormMain: TFormMain;
buf : array[0..1023] of char; // Буфер - информация о вызове
callinfo: TLineCallInfo absolute buf;

implementation

{$R *.dfm}

// Обработка сообщений TAPI
procedure lineCallback(hDevice, dwMsg, dwCallbackInstance,
         dwParam1, dwParam2, dwParam3: LongInt);
{$IFDEF WIN32}
stdcall;
{$ELSE}
export;
{$ENDIF}
var
Str : string;
hCall: THCall; // Дескриптор вызова
begin
with FormMain do
begin
// Ответ ЛИНИИ
if dwMsg = LINE_REPLY then
begin
// Если произошла ошибка - то код ошибки - отрицательное число
IF dwParam2 < 0 then
MemoLog.Lines.Add('Ошибка TAPI (LINE_REPLY)' + IntToStr(dwParam2))
else
MemoLog.Lines.Add('Ответ линии - ok')
end
else
// ГРУППА СООБЩЕНИЙ LINE_CALLSTATE
if dwMsg = LINE_CALLSTATE then    { Изменено что то на линии }
begin
hCall := THCall(hDevice); // Дескриптор
case dwParam1 of
// Вызов в режиме ожидания или прекращен
LINECALLSTATE_IDLE : Begin
// Проверим дескриптор
IF hcall <> 0 then
begin
// Уничтожаем вызов и освобождаем память
lineDeallocateCall(hCall);
MemoLog.Lines.Add('Вызов завершен.');
BitBtnCalling.Enabled := True;
BitBtnDropCall.Enabled := False;
end;
end;
// Приложение установило успешное соединение и готово посылать
// данные
LINECALLSTATE_CONNECTED: Begin
IF hcall <> 0 then
begin
Str := 'Соединение установлено...';
// Определяем параметро соединения
Callinfo.dwTotalSize := 1024;
// Получаем инфу
if lineGetCallInfo(hCall, callinfo) = 0 then
if callinfo.dwAppNameSize > 0 then
{$IFDEF WIN32}
Str := Str + ' ( ' + (buf + callinfo.dwAppNameOffset) + ' )';
{$ELSE}
Str := Str + ' ( ' + StrPas((buf + callinfo.dwAppNameOffset)) + ' )';
{$ENDIF}
MemoLog.Lines.Add(Str);
end;
end;
// Идет процесс вызова
LINECALLSTATE_PROCEEDING: MemoLog.Lines.Add('Идет процесс вызова');
// Дозвон
LINECALLSTATE_DIALING : MemoLog.Lines.Add('Дозвон');
// Разъединение
LINECALLSTATE_DISCONNECTED:
begin
Str := 'Разъединение : ';
// Причина ?
if dwParam2 = LINEDISCONNECTMODE_NORMAL then
Str := Str + '(штатное)'
else
if dwParam2 = LINEDISCONNECTMODE_BUSY then
Str := Str + '(занято)';
MemoLog.Lines.Add(Str);
// Запустим функцию разъединение
BitBtnDropCall.Click;
end;
// Занято
LINECALLSTATE_BUSY : MemoLog.Lines.Add('Занято');
end;
end;
end; // with
end;

//------------------------------------------------------------------------------
// Инициализация TAPI и открытие устройства линии
//------------------------------------------------------------------------------
procedure TFormMain.FormCreate(Sender: TObject);
var
nDevs, tapiVersion: Longint;
extid: TLineExtensionID;
begin
// Инициализация TAPI }
FillChar(CallParams, sizeof(CallParams), 0);
with CallParams do
begin
dwTotalSize := sizeof(CallParams);
dwBearerMode := LINEBEARERMODE_VOICE; // Тип вызова
dwMediaMode := LINEMEDIAMODE_INTERACTIVEVOICE; // Режим носителей
end;

// Инициализация устройства линии
if lineInitialize(lineApp, HInstance, lineCallback, nil, nDevs) < 0 then
lineApp := 0 // Ошибка - ничего не делаем
else
begin
// Кол-во устройств линии
if nDevs = 0 then    // Нет устройтв линии - закрываем TAPI
begin
     lineShutDown(lineApp);
     lineApp := 0;
end
else
begin
// Договариваемся о версиях TAPI
if lineNegotiateAPIVersion(lineApp, 0, LoVer, HiVer, tapiVersion, extid) < 0 then
begin
// Недоговорились
lineShutDown(lineApp);
lineApp := 0;
end
     else
begin
// Открываем устройство линии для исходящих вызовов
// в примере - используется ПЕРВОЕ УСТРОЙСТВО - ОБЫЧНО ЭТО МОДЕМ
if lineOpen(lineApp, LINEMAPPER, line, tapiVersion, 0, 0,
LINECALLPRIVILEGE_NONE, 0, @CallParams) < 0 then
begin
// Открыто неудачно
     lineShutDown(lineApp);
     lineApp := 0;
     line := 0;
end;
     if line = 0 then
     MemoLog.Lines.Add('Ошибка при открытии устройства линии.');
end;
end;
end;
end;

//------------------------------------------------------------------------------
// Закрываем линию и TAPI (если они открыты)
//------------------------------------------------------------------------------
procedure TFormMain.FormDestroy(Sender: TObject);
begin
if line <> 0 then
lineClose(line);
if lineApp <> 0 then
lineShutDown(lineApp);
end;

//------------------------------------------------------------------------------
// Размещение исходящего вызова
//------------------------------------------------------------------------------
procedure TFormMain.BitBtnCallingClick(Sender: TObject);
var
BuffPhone : array[0..30] of char;
begin
if Length(EditPhone.Text) > 0 then
begin
MemoLog.Lines.Clear;
StrPCopy(BuffPhone, EditPhone.Text);

// режим носителей
if ComboBox.ItemIndex = 0 then
CallParams.dwMediaMode := LINEMEDIAMODE_INTERACTIVEVOICE
else
CallParams.dwMediaMode := LINEMEDIAMODE_DATAMODEM;

// Размещение исходящего вызова
if lineMakeCall(line, call, BuffPhone, 0, @CallParams) < 0 then
MemoLog.Lines.Add('Ошибка в lineMakeCall')
else
begin
BitBtnCalling.Enabled := False;
BitBtnDropCall.Enabled := True;
end;
end
else
ShowMessage('Не выбран номер');
end;




procedure TFormMain.BitBtnDropCallClick(Sender: TObject);
begin
// Разрываем соединени е
if LineDrop(call, nil, 0) < 0 then
MemoLog.Lines.Add('Ошибка в lineDrop');
BitBtnCalling.Enabled := true;
end;

end.
[/more]
Автор: tomegadeth
Дата сообщения: 22.06.2006 14:35
[b]Deeptown12[/b]
спрячь код за тегом [more][/more]
Автор: ValeryInfo
Дата сообщения: 23.06.2006 12:39

Цитата:
В этом случае вам поможет TAPI API там есть функции воспроизведения звука в устройство линии


Если есть какие-то соображения в ввиде кода, буду признателен, мучаюсь с help-ом -
результат минимальный!
И вообще обыскался в инете - по этой теме нет раскрытой до конца информации!

Добавлено:
И еще - банальный вопрос как подключить TAPI
Автор: RomanTim
Дата сообщения: 23.06.2006 13:14
В продолжение о TMS
Написал в техподдержку на tmssoftware.com, ответили, что глюк им известен, в DLL действительно не работает, планируют исправить когда придумают как
Автор: vipettut
Дата сообщения: 25.06.2006 08:01
Какие компоненты лучше использовать для меню и тулбаров в стиле office 97?

(в ньюсах по tbx проскакивала штука на базе tb2k+tbx, но для реальной работы не готовая)
Автор: baraka
Дата сообщения: 25.06.2006 11:52
vipettut
Кроме tbx для tb2k есть и TBSkin (hzzp://www.creationpower.com/delphi/tbskin/), я его ипользую уже несколько лет, работает без проблем.
Автор: headbuger
Дата сообщения: 25.06.2006 22:42
Привет.
Коллеги, кинте в меня (headbug@жимаил.ком) исходник RichView.v1.9.24. Интересны некоторые моменты реализации. Заранее благодарен.
Автор: genkin38
Дата сообщения: 26.06.2006 05:13
vipettut
Очень даже готовая... В чём неготовность? Что руками надо установить?
Автор: headbuger
Дата сообщения: 26.06.2006 07:27
vipettut
Как раз использую связку tb2k+tbx - работает.
Автор: tomegadeth
Дата сообщения: 26.06.2006 10:43
Необходимо решение для работы с датой ниже 1900 г. бо стандартный TDateTime не умеет... Подскажите, мож есть какой-нибудь компонентик.
Автор: Deeptown12
Дата сообщения: 26.06.2006 11:25
ValeryInfo
Что бы подключить TAPI нужно скачать файл заголовочный TAPI.pas
переведенный с TAPI.H
он есть на Jedi
если не найдете могу выслать на мыло
и по TAPI есть очень хорошая книга на англ
Wordware The Tomes of Delphi Basic 32-bit Communications Programming (2003) Fly.pdf

Добавлено:
Введение в TAPI так же хорошо расписано в книге Кузан Д. Программирование Win32
ей там посвящена отдельная глава
Автор: ValeryInfo
Дата сообщения: 27.06.2006 10:37
Deeptown12

Спасибо за помощь! Буду пробовать!
Автор: SERGE_BLIZNUK
Дата сообщения: 27.06.2006 14:51
Господа, кто-нибудь использует DOA (Direct Oracle Access) для доступа к Oracle?
есть такая команда SQL*Plus:
show errors
которая показывает ошибки, возникшие при компиляции пакета...
Вопрос - как можно получишь результат действия этой команды использую DOA
(TOracleScript просто игнорирует данную команду ;-((( Хотя PL/SQL developer, разработанный на основе DOA и той же командой ошибки прекрасно показывает!!!)

Поможите, кто чем может, люди добрые....
Автор: sergbl2003
Дата сообщения: 30.06.2006 18:11
Используется компонента TIdIPMCastClient из библиотеки Indy9.
Если порт уже открыт другой программой, то IdIPMCastClient не хотит активироваться.
Как сделать что бы можно было слушать уже открытый порт???
Автор: dyr farot
Дата сообщения: 30.06.2006 18:20
никак. порты слушаются ексклюзивно.
Автор: sergbl2003
Дата сообщения: 30.06.2006 19:10

Цитата:
никак. порты слушаются ексклюзивно.


а вот и нет, есть прога написанная на VC++ - так она работает с уже открытым мультикаст портом, потому что там используется параметр порта SO_REUSEADDR.
А спрашиваю я можно ли в компоненте TIdIPMCastClient установить этот параметр порта
Автор: SERGE_BLIZNUK
Дата сообщения: 01.07.2006 07:33

Цитата:
DOA (Direct Oracle Access) для доступа к Oracle?
есть такая команда SQL*Plus:
show errors

Отбой... проблема решена с помощью автора DOA - Marco Kalter
[more]
(Show errors это псевдокоманда NON*SQL - возращает выборку из view ALL_ERRORS)[/more]
Автор: JonyBes
Дата сообщения: 01.07.2006 21:41
Подскажите где найти инструкцию по установке компонентов на Делфи 2006
Автор: VAbramyak
Дата сообщения: 02.07.2006 00:40
всем привет! подскажите, можно ли поставить девэкспресс при установлинном teechart 7.08! printingsystem ругаться не будет?
Автор: Dauren111
Дата сообщения: 02.07.2006 09:31
люди посоветуйте хороший индикатор в стиле загрузки или установки Windows XP

Добавлено:
VAbramyak

все номально работает
сам тестил
Автор: Vixoid
Дата сообщения: 06.07.2006 06:03
Что за зверь RAPWare Easy Script .3.5.0.9 _http://www.rapware.nl/prod_easyscript_page1.asp?SubMenu=EasyScript
Мож кто работал!
Автор: Dauren111
Дата сообщения: 06.07.2006 16:37
ExpressQuantumGrid конечно вещь хорошая, но можно ли русифицировать элементы его
интерфейса(фильтры например)
Автор: ArtemiyUO
Дата сообщения: 07.07.2006 06:25
можно, в обмменнике есть инстяляционный пакет от 05 июня, там есть русские ресурсы.
Ну а я делаю по другому. Модуль с русскими ресурсами в ПМ пошлю.

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071

Предыдущая тема: Вызов файла по относит пути и определение буквы СД-рома


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.