Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 15.04.2014, 05:34
ivankom ivankom вне форума
Прохожий
 
Регистрация: 04.02.2014
Сообщения: 21
Версия Delphi: Delphi XE5
Репутация: 10
По умолчанию Использование компонентов в функции

Подскажите как в функции использовать компонент, например мне нужен ComPort1.
Код:
function SendSMS(telephone, smstext: string): integer;
begin
  ComPort1.Open;
  ComPort1.WriteStr('AT+CMGF=1' + #13#10);
  Sleep(50);
  ComPort1.WriteStr('AT+CMGS='+telephone+#13#10);
  Sleep(50);
  ComPort1.WriteStr(smstext);
  Sleep(50);
  ComPort1.WriteStr(Chr(26));
  Sleep(50);
  ComPort1.Close;
end;

При компиляции ругается на Undeclared identifier: 'ComPort1'

Если записать функцию как
Код:
function TForm1.SendSMS(telephone, smstext: string): integer;
то функция работает, но мне нужно использовать ее в dll библиотеке, поэтому TForm1.SendSMS не прокатит.
Ответить с цитированием
  #2  
Старый 15.04.2014, 07:07
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Обычно компонент передаётся в функцию как параметр, напр.
Код:
function SendSMS(telephone, smstext: string; ComPort: TComPort): integer; 
но не знаю только как из библиотеки это будет работать
Ответить с цитированием
Этот пользователь сказал Спасибо Alegun за это полезное сообщение:
ivankom (15.04.2014)
  #3  
Старый 15.04.2014, 08:47
ivankom ivankom вне форума
Прохожий
 
Регистрация: 04.02.2014
Сообщения: 21
Версия Delphi: Delphi XE5
Репутация: 10
По умолчанию

Заработало вот так:

Код:
function SendSMS(telephone, smstext: string; ComPort1: TComPort): integer;
Проверю из библиотеки будет работать или нет.
Ответить с цитированием
  #4  
Старый 15.04.2014, 09:18
ivankom ivankom вне форума
Прохожий
 
Регистрация: 04.02.2014
Сообщения: 21
Версия Delphi: Delphi XE5
Репутация: 10
По умолчанию

Скомпилировал библиотеку, теперь ее нужно использовать в другом проекте, экспортирую:
Код:
function SendSMS(telephone, smstext: string; ComPort1: TComPort); external 'smslib.dll';

Ругается на
Код:
[dcc32 Error] Unit1.pas(15): E2003 Undeclared identifier: 'TComPort'

Как быть?
Ответить с цитированием
  #5  
Старый 15.04.2014, 10:32
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Вероятно надо добавить в uses вашего проекта юнит где прописан TComPort, возможно что это CPort, смотрите сами как он у вас называется
Ответить с цитированием
  #6  
Старый 17.04.2014, 04:10
ivankom ivankom вне форума
Прохожий
 
Регистрация: 04.02.2014
Сообщения: 21
Версия Delphi: Delphi XE5
Репутация: 10
По умолчанию

Так не получиться, я основной проект пишу на XE5, туда не ставится компонент ComPort. Хотел сделать библиотеку на 7 версии и использовать ее в проекте написанном на XE5.
Ответить с цитированием
  #7  
Старый 17.04.2014, 08:23
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Такое возможно, но только нужно оформлять всю библиотеку законченой, чтоб обращения к её содержимому были на уровне передал входные данные-сработало-получил результат, без промежуточных вызовов, не больше
Ответить с цитированием
  #8  
Старый 17.04.2014, 10:01
ivankom ivankom вне форума
Прохожий
 
Регистрация: 04.02.2014
Сообщения: 21
Версия Delphi: Delphi XE5
Репутация: 10
По умолчанию

Можешь подсказать как это сделать? Может пример есть?
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 01:07.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025