насчёт онлайн проверки - поставь обработчик на OnLogin, либо наоборот на OnConnectionFailed.. На счёт как номер узнать, добавь попробуй в цикл icq.onMessageRecv:=newMessRecv; которая будет представлять собой немного изменённый обработчик, который кросе номера отправителя и мессаги будут принимать и номер на который пришло
Вот ответ на мой ворос Code: function GetFileDescription(FileName: string): string; var szName: array[0..255] of Char; P: Pointer; Value: Pointer; Len: UINT; GetTranslationString:string; FFileName: PChar; FValid:boolean; FSize: DWORD; FHandle: DWORD; FBuffer: PChar; begin try FFileName := StrPCopy(StrAlloc(Length(FileName) + 1), FileName); FValid := False; FSize := GetFileVersionInfoSize(FFileName, FHandle); if FSize > 0 then try GetMem(FBuffer, FSize); FValid := GetFileVersionInfo(FFileName, FHandle, FSize, FBuffer); except FValid := False; raise; end; Result := ''; if FValid then VerQueryValue(FBuffer, '\VarFileInfo\Translation', p, Len) else p := nil; if P <> nil then GetTranslationString := IntToHex(MakeLong(HiWord(Longint(P^)), LoWord(Longint(P^))), 8); if FValid then begin StrPCopy(szName, '\StringFileInfo\' + GetTranslationString + '\FileDescription'); if VerQueryValue(FBuffer, szName, Value, Len) then Result := StrPas(PChar(Value)); end; finally try if FBuffer <> nil then FreeMem(FBuffer, FSize); except end; try StrDispose(FFileName); except end; end; end;
Подскажите что за ерунда. В программе несколько десятков кнопок. Компилирую 1 раз - работает пару кнопок. С 10 попытки еще одна начинает работать. А как сделать что бы заработала программа полностью Думал делфи гонит, но переустонавливал несколько раз в том числе и на чистую винду.
Алфавит? А вообще поудаляй чуток - посмтри, что надо, чтобы всё работало... эксперементируй Ps Кинь исходник..
Привет всем ! Я изучаю делфи и решил сделать асю-бот если у кого-нибудь есть материалы по этому - помогите пожалуйста.
Дык тут надо компонент Icq и всё там дальше дело техники) http://forum.root-access.ru/index.php?showtopic=478 Вот тут всё описано чё да как) зы это не реклама)
Вот исходник моего старого(простенького) бота ("Команды вводи сам") Code: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ICQClient,ICQWorks, XPMan, ExtCtrls, Menus, ComCtrls, jpeg; type TForm1 = class(TForm) GroupBox1: TGroupBox; Edit1: TEdit; Edit2: TEdit; Label1: TLabel; Label2: TLabel; Button1: TButton; GroupBox2: TGroupBox; Edit5: TEdit; Label6: TLabel; ICQ: TICQClient; XPManifest1: TXPManifest; Timer1: TTimer; Label9: TLabel; Label10: TLabel; Menu1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; N3: TMenuItem; N4: TMenuItem; N5: TMenuItem; Button6: TButton; GroupBox3: TGroupBox; Memo1: TMemo; CheckBox1: TCheckBox; Image1: TImage; GroupBox4: TGroupBox; Pop1: TPopupMenu; N9: TMenuItem; RANDOM1: TMenuItem; N6: TMenuItem; N7: TMenuItem; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure ICQLogin(Sender: TObject); procedure ICQConnectionFailed(Sender: TObject); procedure ICQMessageRecv(Sender: TObject; Msg, UIN: String); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure Timer1Timer(Sender: TObject); procedure N1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure N3Click(Sender: TObject); procedure N4Click(Sender: TObject); procedure N5Click(Sender: TObject); procedure Button6Click(Sender: TObject); procedure CheckBox1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation uses unit2; type ICQmsg=array [1..3] of string; ICQFormat=object uin:integer; Msg:string; end; var strokin:string; ICQ_bufer:array [1..20] of ICQFormat; MSGT:string; LogFile:TextFile; AnekdotFile:Textfile; Comands:TextFile; UinBaz:TextFile; Drevo:Tlist; {$R *.dfm} function find_icq():byte; var ch,chcol:byte; begin chcol:=0; for ch:=1 to 10 do if ICQ_bufer[ch].uin<>0 then chcol:=chcol+1; find_icq:=chcol; end ; procedure TRACE (txts:string); begin strokin:='>>'+' {'+txts+'}'+'!'; form1.Memo1.Lines.Add(strokin); end; procedure smsik (txts:string); begin form1.Memo1.Lines.Add(' <> '+txts); end; procedure TForm1.FormCreate(Sender: TObject); var i:byte; begin ICQ.ConvertToPlaintext:=true; trace('Ожидаем...'); end; procedure TForm1.Button1Click(Sender: TObject); begin ICQ.UIN:=StrToInt(edit1.Text); ICQ.Password:=edit2.Text; ICQ.ICQServer:='login.icq.com'; ICQ.ICQPort:=5190; icq.Status:=8; ICQ.Login(); trace('Пробуем соединится...'); icq.Status:=8; end; procedure TForm1.ICQLogin(Sender: TObject); begin Form1.Enabled:=true; trace('Подключились...'); Application.MessageBox('Мы удачно подключились!','Внимание! ICQ_BOT говорит:',48); end; procedure TForm1.ICQConnectionFailed(Sender: TObject); begin Form1.Enabled:=true; Button1.Enabled:=true; trace('Соеденение разорвано...'); Application.MessageBox('Мы не смогли соединится!','Внимание! ICQ_BOT говорит:',48); end; procedure TForm1.ICQMessageRecv(Sender: TObject; Msg, UIN: String); var i,j:byte; begin Memo1.Lines.Add('|| '+'['+UIN+']'+' ='+' '+MSG); ICQ.RequestInfo(StrToInt(UIN)); ICQ.SendAuthResponse(StrToInt(UIN),true,'yes'); for i:=1 to 20 do if ICQ_bufer[i].uin=0 then begin ICQ_bufer[i].uin:=strtoint(uin); ICQ_bufer[i].msg:='Privet'; break; end; timer1.Enabled:=true; end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin trace('Выходим...'); end; procedure TForm1.Timer1Timer(Sender: TObject); var bufer:array [1..20] of ICQFormat; i,j:byte; begin timer1.Interval:=StrToInt(edit5.Text); for i:=1 to 20 do for j:=i+1 to 20 do begin if ICQ_bufer[i].uin=0 then begin bufer[i]:=ICQ_bufer[i]; ICQ_bufer[i]:=ICQ_bufer[j]; ICQ_bufer[j]:=bufer[i]; end; end; if find_icq=0 then begin timer1.Enabled:=false; exit; end; label9.Caption:=inttostr(find_icq); icq.SendMessage(ICQ_bufer[1].uin,ICQ_Bufer[1].msg); ICQ_bufer[1].uin:=0; end; procedure TForm1.N1Click(Sender: TObject); begin icq.Status:=1; button6.Caption:='Отошел'; end; procedure TForm1.N2Click(Sender: TObject); begin icq.Status:=2; button6.Caption:='Не беспокоить'; end; procedure TForm1.N3Click(Sender: TObject); begin icq.Status:=4; button6.Caption:='Недоступен'; end; procedure TForm1.N4Click(Sender: TObject); begin icq.Status:=8; button6.Caption:='В сети';{ICQ.SendMessage(StrToInt(edit3.Text),edit4.Text); Trace('Бот отправил сообщение'+' '+'['+edit3.Text+']');} end; procedure TForm1.N5Click(Sender: TObject); begin icq.Status:=16; button6.Caption:='Занят'; end; procedure TForm1.Button6Click(Sender: TObject); begin menu1.Popup(mouse.CursorPos.X,mouse.CursorPos.y); end; procedure TForm1.CheckBox1Click(Sender: TObject); begin if form1.ClientHeight=462 then form1.ClientHeight:=346 else form1.ClientHeight:=462; end; end. Думаю разберешься - ЭТО так сказать "скелет" простенького бота
Господа, подскажите код что бы из xxx.txt удалялись дубли строчек и сохранялось в xxx1.txt Delphi plz
На компоненте TImage рисую кружочки.... При нажатии по button хочу удалять нарисованное (свои кружки), что за свойство? Типа что то Image1.*****?
хм, по моему мне не подходит этот код. Мне как раз надо что бы из мусорного файла создавался нормальнеый ге каждая строка уникальная. т.е. просто что бы удалил повторы.... можно даже в старом файле.
Предлагаю с такими вопросами посылать на sources.ru... Или заваливать умными словами типа юзай либо подправленный КМП, либо хеши, сравнивай строки таким образом, храни их однонаправленным списком, дальше выводи список с 1-го элемента, и пока equal((s.next)^.string,s.string) делать s = s.next иначе writeln(s.string). PS Надоели вопросы, когда люди думать не хотят. Всё, ясно?! Вперёд писать. У тебя 10 минут.