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

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


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

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

Выпуск № 573
от 26.08.2006, 09:35

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


Вопрос № 52680: Всем привет! 13 августа задавал вопрос № 51976. Но из экспертов никто на его не ответил. Лишь Bochvarov NikB в местном форуме попытался помочь. Спасибо ему. Однако задача не решена. Повторю ею. На форме лежит TxtNumber:TEdit и две кнопки: BtnCall...
Вопрос № 52725: Добрый день, уважаемые Эксперты! Подскажите, пожалуйста, а существует ли в природе компонент, типа TLabel с совершенно прозрачным фоном. Надо сделать надпись поверх TImage....

Вопрос № 52.680
Всем привет!
13 августа задавал вопрос № 51976. Но из экспертов никто на его не ответил. Лишь Bochvarov NikB в местном форуме попытался помочь. Спасибо ему. Однако задача не решена. Повторю ею. На форме лежит TxtNumber:TEdit и две кнопки: BtnCall (Набрать номер) и BtnCancel (Отмена). В TxtNumber ввожу номер телефона. Щелчок по BtnCall, и набирается номер телефона, указанный в TxtNumber. Щелчок по BtnCancel разрывает установленною связь. Телефон подключен через модем. Исходя из ответа Bochvarov'a NikB'a, стало ясно: COM-порту надо посылать команды AT. Т.е. для набора, например, номер "088" посылается команда "ATDT088", a "ATH" – разорвать связь. Для эксперимента я упростил задачу. Щелчок по "Набрать номер" набирает лишь номер "088". Так вот мой вопрос сейчас стоит так: каким образом средствами Delphi 5 посылать АТ-команды СОМ-порту. Я попытался это сделать следующим образом:
procedure TForm1.BtnCallClick(Sender: TObject);
var
Comanda : string;
begin
Form1.BtnCall.Enabled:=false;
Form1.BtnCancel.Enabled:=true;
assignfile(f, 'COM3');
Comanda:='ATDP088'+#13+#10;
{$I-}filemode:=2; reset(f, length(Comanda));{$I+}
if ioresult<>0 then
begin
rewrite(f, length(Comanda));
end;
blockwrite(f, Comanda, 1);
end;

procedure TForm1.BtnCancelClick(Sender: TObject);
var
Comanda : string;
begin
Form1.BtnCall.Enabled:=true;
Form1.BtnCancel.Enabled:=false;
Comanda:='ATH';
closefile(f)
end;

Однако данный код должным образом не работает. Щелчок по "Набрать номер" – слышно лишь как программа "нашла" СОМ-порт, и все. Кстати, попробовал решить данную проблему в VB6. Там я нашел компонент MSComm, и с его помощью через свойство Output мне таки удалось послать СОМ-порту команду 'ATDP088'. Хотелось бы подобного добиться средствами Delphi 5. Итак вопрос: как в Delphi 5 послать СОМ-порту АТ-команду? С примером.
Надеюсь, на этот раз я ответов дождусь.
Отправлен: 20.08.2006, 17:31
Вопрос задал: Бурда Саша (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Mexes
Здравствуйте, Бурда Саша!
Посмотри http://articles.org.ru/cfaq/index.php?catid=48. PS Модема не имею, так что не прокомментирую...
Ответ отправил: Mexes (статус: 2-ой класс)
Ответ отправлен: 20.08.2006, 18:03
Оценка за ответ: 5
Комментарий оценки:
Спасибо

Отвечает: Jadd
Здравствуйте, Бурда Саша!
Не совсем понятно зачем напрямую использоваь СОМ-порт, если у винды есть хороший API для работы с телефонами, модемами и факсами - TelephonyAPI или TAPI. Для этого API есть и компонентs djn nen http://www.torry.net/pages.php?id=199. Если интересо самому разобраться с этим API, тогда идем вот сюда http://msdn.microsoft.com/library/en-us/tapi/tapi3/tapi_3_1_overview.asp для версии 3.1 (она СОМ-based) или сюда http://msdn.microsoft.com/library/en-us/tapi/tapi3/tapi_3_1_overview.asp.

Удачи.
---------
Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Профессионал)
Адрес: Санкт-Петербург
WWW: http://www.sport-diary.ru
ICQ: 28260749
----
Ответ отправлен: 21.08.2006, 09:01
Оценка за ответ: 4

Отвечает: chikanok
Здравствуйте, Бурда Саша!
Я только приехал с отдыха,а так-бы и раньше ответил на ваш вопрос!!!
В приложении пример на поставленый вами вопрос "как в Delphi 5 послать СОМ-порту АТ-команду?", но я считаю что лучше использовать TAPI. Могу выслать вам модули и пример по емаил (отправьте свой емаил по внутренней почте)!
Удачи!!!

Приложение:

---------
Главное желание,а там разберёмся!

Ответ отправил: chikanok (статус: 2-ой класс)
Ответ отправлен: 22.08.2006, 12:11
Оценка за ответ: 5
Комментарий оценки:
Спасибо! Вышлите обязательно модули и примеры


Вопрос № 52.725
Добрый день, уважаемые Эксперты!
Подскажите, пожалуйста, а существует ли в природе компонент, типа TLabel с совершенно прозрачным фоном. Надо сделать надпись поверх TImage.

Приложение:

Отправлен: 21.08.2006, 09:27
Вопрос задал: Дмитрий Александрович (статус: 1-ый класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: sir henry
Здравствуйте, Дмитрий Александрович!
Конечно существует. Это он самый и есть - обычный TLabel. Поставите у него свойство Transparent в True и фон у него будет совершенно прозрачным.
Ответ отправил: sir henry (статус: Академик)
Россия, Красноярск
----
Ответ отправлен: 21.08.2006, 09:48
Оценка за ответ: 5
Комментарий оценки:
Спасибо!Я был не прав, задавая вопрос. Нужен компонент типа TStaticText. Что б его можно было бы таскать мышкой по форме.

Отвечает: D.M.
Здравствуйте, Дмитрий Александрович!

В приложении описание, как сделать перетаскивание компонентов по форме.

Можно применять к перетаскиванию самой формы... :)

Приложение:

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

Ответ отправил: D.M. (статус: 2-ой класс)
Ответ отправлен: 21.08.2006, 12:03
Оценка за ответ: 5
Комментарий оценки:
Спасибо. Так и сделал!


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

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

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

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

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


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


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.35 от 27.07.2006
Яндекс Rambler's Top100

В избранное