ясно,вот нечто подобное из моего проекта...
надеюсь поможет
//***********************************************************************************************
//передача смс сообщения в зависимости от выбора смс оператора***********************************
//***********************************************************************************************
function Switchsms(smessage, SMS: string): boolean;
var
ini : TInifile;
ClickatellCom :TClickatellCom;
TurboSmsUa :TTurboSmsUa;
s, sResult, sLog, SMSPhone, SMSMessage,r: string;
xml: string;
slParam: TStringList;
begin
ini :=TIniFile.Create(ExtractFilePath (ParamStr (0))+'setting\sms.ini');
SMSLogin:=ini.ReadString('senderlog','SMSLogin',''); // получаем логин
SMSPassword:=ini.ReadString('senderlog','SMSPassword',''); // получаем пароль
SMSAPI_ID:=ini.ReadString('senderlog','SMSAPI_ID',''); // получаем required
SMSSender:=ini.ReadString('senderlog','SMSSender',''); // получаем подпись отправителя
SMSPhone:=SQLEXecute('SELECT telephonClient FROM servise WHERE id=' +frmServiceCen.tgList.sqlValue); // получаем номер
SMSMessage:= smessage; // получаем сообщение
try
//если выбран смс оператор epochta
if SMS = 'epochta' then
begin
sResult := SendSMS(SMSLogin, SMSPassword, SMSSender, SMSPhone, SMSMessage); // авторизация и отправка смс
showmessage(sresult);
end;
//если выбран смс оператор turbosms
if SMS = 'turbosms' then
begin
TurboSmsUa := TTurboSmsUa.Create;
sLog := TurboSmsUa.Auth(SMSLogin, SMSPassword); // авторизация
sLog := TurboSmsUa.SendSMS(SMSSender, SMSPhone, SMSMessage); // отправка смс
showmessage(sLog);
end;
//если выбран смс оператор turbosms
if SMS = 'Clickatel' then
begin
ClickatellCom := TClickatellCom.Create;
s := ClickatellCom.SendSMS(SMSLogin, SMSPassword, SMSAPI_ID, SMSPhone, SMSMessage);// авторизация и отправка смс
showmessage(s);
end;
finally
ini.Free;
ClickatellCom.Destroy;
TurboSmsUa.Destroy;
end;
end;
//***********************************************************************************************
//выбор смс сообщения в соотвествии с настройками************************************************
//***********************************************************************************************
function smstr(str: string): string;
var
ini,langIni,inir:TiniFile;
s,t,strshow,sS,sDl,sNM,sAM:string;
sFirstName:string = SQLEXecute('SELECT firstNameClient FROM servise WHERE id=' +frmServiceCen.tgList.sqlValue);
sTwoName:string = SQLEXecute('SELECT twoNameClient FROM servise WHERE id=' +frmServiceCen.tgList.sqlValue);
sLastName:string = SQLEXecute('SELECT lastNameClient FROM servise WHERE id=' +frmServiceCen.tgList.sqlValue);
sModel:string = SQLEXecute('SELECT model FROM servise WHERE id=' +frmServiceCen.tgList.sqlValue);
sSN:string = SQLEXecute('SELECT serialNamber FROM servise WHERE id=' +frmServiceCen.tgList.sqlValue);
sTO:string = SQLEXecute('SELECT nameTypeOfEquipment FROM TypeOfEquipment LEFT OUTER JOIN servise ON TypeOfEquipment.id=servise.id_TypeOfEquipment WHERE servise.id=' +frmServiceCen.tgList.sqlValue);
begin
ini :=TIniFile.Create(ExtractFilePath (ParamStr (0))+'setting\sms.ini');
inir :=TIniFile.Create(ExtractFilePath (ParamStr (0))+'setting\sov.ini');
strshow:=inir.ReadString('lang','directlang', '');
langIni:=TIniFile.Create(ExtractFilePath (ParamStr (0))+ strshow);
sS:= SQLExecute('SELECT IFNULL(SUM(sumInPrice.inPrice),0) FROM sumInPrice LEFT OUTER JOIN servise ON servise.id=sumInPrice.id_servise WHERE servise.id='+ frmServiceCen.tgList.sqlValue);
sDl:= IntToStr(SQLExecute('SELECT IFNULL(SUM(listWorkOff.priceWorkOff * listWorkOff.klVoWorkOff),0)-"'+sS+'" FROM listWorkOff LEFT OUTER JOIN servise ON servise.id=listWorkOff.id_servise WHERE servise.id='+ frmServiceCen.tgList.sqlValue));
sAM:=inir.ReadString('othersetting','AdressMas','');
sNM:=inir.ReadString('othersetting','NameMas','');
try
//если нажата кнопка отправки сообщения в форме frmServiceCen
if (str='frmServiceCen') then begin
//загрузить статус оборудования
t:=SQLEXecute('SELECT id_status FROM servise WHERE id=' +frmServiceCen.tgList.sqlValue);
//если статус оборудования * и сообщение включно то вернуть в результат текст сообщения %0:s
if (t='1') then begin
if (ini.ReadString('smstr','et','')='1') then result:= Format (langIni.ReadString('smstr','et',''),[sFirstName,sTwoName,sLastName,sModel,sSN,sDl,sNM,sAM,sNM,sTO] )else
MessageBox(mess31, mess32, MB_OK+MB_ICONINFORMATION);
end;
if (t='2') then begin
if (ini.ReadString('smstr','etd','')='1') then result:=Format (langIni.ReadString('smstr','etd',''),[sFirstName,sTwoName,sLastName,sModel,sSN,sDl,sAM,sNM,sTO] ) else
MessageBox(mess31, mess32, MB_OK+MB_ICONINFORMATION);
end;
if (t='3') then begin
if (ini.ReadString('smstr','dr','')='1') then result:=Format (langIni.ReadString('smstr','dr',''),[sFirstName,sTwoName,sLastName,sModel,sSN,sDl,sAM,sNM,sTO] ) else
MessageBox(mess31, mess32, MB_OK+MB_ICONINFORMATION);
end;
if (t='4') then begin
if (ini.ReadString('smstr','epae','')='1') then result:=Format (langIni.ReadString('smstr','epae',''),[sFirstName,sTwoName,sLastName,sModel,sSN,sDl,sAM,sNM,sTO] ) else
MessageBox(mess31, mess32, MB_OK+MB_ICONINFORMATION);
end;
if (t='5') then begin
if (ini.ReadString('smstr','eur','')='1') then result:=Format (langIni.ReadString('smstr','eur',''),[sFirstName,sTwoName,sLastName,sModel,sSN,sDl,sAM,sNM,sTO] ) else
MessageBox(mess31, mess32, MB_OK+MB_ICONINFORMATION);
end;
if (t='6') then begin
if(ini.ReadString('smstr','eaatic','')='1') then result:=Format (langIni.ReadString('smstr','eaatic',''),[sFirstName,sTwoName,sLastName,sModel,sSN,sDl,sAM,sNM,sTO] )else
MessageBox(mess31, mess32, MB_OK+MB_ICONINFORMATION);
end;
end;
//если нажата кнопка отправки сообщения в форме frmMasterWork
if (str='frmMasterWork') then begin
//загрузить статус оборудования
t:=SQLEXecute('SELECT id_status FROM servise WHERE id=' +IntToStr(frmMasterWork.tgListServise.dbItemID));
//если статус оборудования * и сообщение включно то вернуть в результат текст сообщения
if (t='1') then begin
if (ini.ReadString('smstr','et','')='1') then result:=Format (langIni.ReadString('smstr','et',''),[sFirstName,sTwoName,sLastName,sModel,sSN,sDl,sAM,sNM,sTO] ) else
MessageBox(mess31, mess32, MB_OK+MB_ICONINFORMATION);
end;
if (t='2') then begin
if (ini.ReadString('smstr','etd','')='1') then result:=Format (langIni.ReadString('smstr','etd',''),[sFirstName,sTwoName,sLastName,sModel,sSN,sDl,sAM,sNM,sTO] ) else
MessageBox(mess31, mess32, MB_OK+MB_ICONINFORMATION);
end;
if (t='3') then begin
if (ini.ReadString('smstr','dr','')='1') then result:=Format (langIni.ReadString('smstr','dr',''),[sFirstName,sTwoName,sLastName,sModel,sSN,sDl,sAM,sNM,sTO] ) else
MessageBox(mess31, mess32, MB_OK+MB_ICONINFORMATION);
end;
if (t='4') then begin
if (ini.ReadString('smstr','epae','')='1') then result:=Format (langIni.ReadString('smstr','epae',''),[sFirstName,sTwoName,sLastName,sModel,sSN,sDl,sAM,sNM,sTO] ) else
MessageBox(mess31, mess32, MB_OK+MB_ICONINFORMATION);
end;
if (t='5') then begin
if (ini.ReadString('smstr','eur','')='1') then result:=Format (langIni.ReadString('smstr','eur',''),[sFirstName,sTwoName,sLastName,sModel,sSN,sDl,sAM,sNM,sTO] ) else
MessageBox(mess31, mess32, MB_OK+MB_ICONINFORMATION);
end;
if (t='6') then begin
if(ini.ReadString('smstr','eaatic','')='1') then result:=Format (langIni.ReadString('smstr','eaatic',''),[sFirstName,sTwoName,sLastName,sModel,sSN,sDl,sAM,sNM,sTO] )else
MessageBox(mess31, mess32, MB_OK+MB_ICONINFORMATION);
end;
end;
finally
end;
ini.free;
inir.free;
LangIni.free;
end;
//***********************************************************************************************
//кнопка передачи смс сообщения******************************************************************
//***********************************************************************************************
procedure frmServiceCen_bsmsout_OnClick (Sender: TObject; var Cancel: boolean);
var
smsini:TInifile;
smsmessage: string;
begin
smsini :=TIniFile.Create(ExtractFilePath (ParamStr (0))+'setting\sms.ini');
//если смс оператор выбран
if smsini.ReadString('sender', 'sendersms', '') <> '' then begin
//вызвать функцию smstr и получить текст смс сообщения
smsmessage:=smstr('frmServiceCen');
// если есть текст в смс сообщении
showmessage(smsmessage);
if smsmessage<>'' then begin
//передать в функцию Switchsms текст смс и имя оператора
if smsini.ReadString('sender', 'sendersms', '') = 'epochta' then Switchsms (smsmessage,'epochta') else
if smsini.ReadString('sender', 'sendersms', '') = 'turbosms' then Switchsms (smsmessage,'turbosms') else
if smsini.ReadString('sender', 'sendersms', '') = 'Clickatel' then Switchsms (smsmessage,'Clickatel');
end;
//если смс оператор не выбран
end else MessageBox(mess33, mess32, MB_OK+MB_ICONINFORMATION);
end;