Я новичек в делфи, так что просьба не пинать =) В общем пишу я icq бота при помощи модуля TICQClient от Царя. В общем вот процедура реагирующая на прием сообщений Code: procedure TForm1.ICQClient1MessageRecv(Sender: TObject; Msg, UIN: String); var icq: cardinal; begin icq := StrToInt(UIN); Memo1.Lines.Add(UIN + ': ' + Msg); //Добавляем полученное сообщение в Memo1 if Msg='/Disconnect' then ICQClient1.Disconnect; if Msg='help' then ICQClient1.SendMessage(icq,'Команды: "22"-расписание') end; Вот примерно такое, но я хочу реализовать там расписание пар и как сделать так чтобы например я со своего icq отправил сообщение типа %%Социология ОАП ВМ и он распознавал что стоит после знаков %% и прикручивал этот текст к команде "22". Тоесть любой желающий пишет боту 22 а он выдает: Социология ОАП ВМ. Думаю я ясно обьяснил. Жду вашей помощи
а как искать, нпишите плиз процедурку, а то я уже столько фуромув и ФАКов перерыл и так и не нашел =((
если проверяешь в начале строки Code: if Pos('%%',msg)=1 then begin //позиция в строке s:=copy(msg,3,MaxINT);//в переменной s теперь то, что после %% и до конца //ни у дальше че те надо, вносит в TStringList и т.п. end; ну и есть еще много вариантов а, ну чтоб смотреть соответствия, вносить туда, я юзал TStringList или массив record'ов, можно, что наверное и лучше, юзать бд
как я понял из переписки в ПМ, надо получить handle элементов типа TEdit для этого есть функция GetWindow и функция GetClassName для начала нужно иметь handle первого (любого) TEdit, пусть это будет h (integer) теперь Code: h:=GetWindow(h,GW_HWNDFIRST); вернет первый компонент на этом уровне(на том же parent'e) это не обязательно TEdit, проверяем функцией GetClassName и далее Code: h:=GetWindow(h,GW_HWNDFIRST); repeat //работа с h h:=GetWindow(h,GW_HWNDNEXT); until h=0; мы перебрали все компоненты, остается проверять класс, получать заголовок и всё остальное, что требуется, после repeat (где комментарий)
Code: procedure TForm1.FormCreate(Sender: TObject); var TS: TStringList; begin TS := TStringList.Create; TS.Add('123=fff'); IdHttp1.CookieManager.AddCookie('a=b','antichat.ru'); IdHTTP1.CookieManager.CookieCollection.Items[0].Path := '/'; IdHttp1.Post('http://antichat.ru', TS); end;
Помогите пожалуйста по RichEdit. Как мона вставить в середину какой-либо строки ричедита отформатированный текст? Вот например если отформатировать в вордпаде некоторые участки текста, загнать в буфер и вставить на ричедите, то он точно такой же и отобразится. Как сделать такое кодом?
Такая вот проблема... Создал TWebBrowser (wb1) в нём гружу с сайта форму, получаю имя поля в форме так wb1.oleobject.document.getelementbyid('form').item(0).Name 'form' это имя формы, но если у формы нет имени, что делать? ========= А, всё, додумал сам Может кому надо wb1.oleobject.document.forms.item(0).item(0).Name
посылаю нажатие правой кнопки мыши, соответственно cwnd - кнопка, у которой контекстное меню Code: SendMessage(cwnd,WM_RBUTTONDOWN,1,0); SendMessage(cwnd,WM_RBUTTONUP,1,0); всё нормально работает, но если дописываю Code: mwnd:=GetMenu(cwnd); то прога висит (даже не висит, как будто специально ждет) до тех пор, пока меню не исчезнет (я не нажму по нему) по идее меню инициализировалось, должен возвращаться его handle, однако после того как я на него нажимаю, прога получает сам cwnd пробовал wm_initmenu и wm_initmenupopup, не очень врубился, ибо не могу получить handle меню, а это нужно сначала wm_contextmenu пашет нормально, но эффект такой же как и от WM_RBUTTONDOWN и WM_RBUTTONUP (все события смотрел в спае) вижу единственный вариант - делать в отдельном потоке, но хэндл меню получить не удается
Есть такой код: Code: procedure SendEmail(sTo, sFile: String); var M: TIdMessage; begin M := TIdMessage.Create(Form1); M.Body.Add('This file- :lovi:))))'); M.From.Text := '"ci27" <[email protected]>'; //отправитель M.Recipients.Add; // [email protected] M.Recipients.Items[0].Text := '"Post" <'+sTo+'>'; //Получатель M.MessageParts.Add; TIdAttachmentFile.Create(m.MessageParts,sFile); M.Subject := ':-)'; //Тема письма Form1.IdSMTP1.AuthType := atSASL; Form1.IdSMTP1.Host := 'smtp.mail.ru'; Form1.IdSMTP1.Port := 2525; // mail.ru 2525 порт использует Form1.IdSMTP1.Username := '[email protected]'; Form1.IdSMTP1.Password := '******'; Form1.IdSMTP1.Connect(); if Form1.IdSMTP1.Connected then begin Form1.IdSMTP1.Send(M); end; Form1.IdSMTP1.Disconnect; end; Почему он не работает? может где ошибка? Он даже к серверу конектица не хочет, хотя компилируется нормально использую Delphi 2007
у меня отправка с мыла на майле работала на стандартном порте и при AuthenticationType := atLogin и username вроде надо без собаки и домена
да в логине я знаю, но если использовать как говорит crystalbit то делфя пишет: [DCC Error] Unit1.pas(216): E2003 Undeclared identifier: 'AuthenticationType' [DCC Error] Unit1.pas(216): E2003 Undeclared identifier: 'atLogin' В этом компоненте вообще нет то кого, тут только вот что можно выбрать:
xaker-boss, у нас видимо разные версии indy) у меня который по умолчанию в delphi 7) делай как было у тебя с authtype