Code: program icqsend; uses Windows, sysutils, ICQClient; {$R *.res} var ICQClient1: TICQClient; procedure ewq; begin end; procedure qwe; begin end; procedure ICQClient1.OnMessageRecv(Msg, UIN: String); begin ewq; end; procedure FormCreate; begin ICQClient1.DisableDirectConnections:= True; ICQClient1.ICQServer:= 'login.icq.com'; ICQClient1.ICQPort:= 5190; ICQClient1.UIN:= StrToIntDef(Trim('43****043'), 0); ICQClient1.Password := Trim('X*****DI'); ICQClient1.Login(); end; procedure ICQClient1.onLogin; begin qwe; end; end. все..
Продолжаю бьться бошкой аб стол=))) E2004 Identifier redeclared: 'ICQClient1' все в тех же строчках procedure ICQClient1.OnMessageRecv(Msg, UIN: String); procedure ICQClient1.onLogin;
program project2; uses Windows, sysutils, ICQClient; {$R *.res} var ICQClient1: TICQClient; procedure ewq; begin end; procedure qwe; begin end; procedure application; begin ICQClient1.DisableDirectConnections:= True; ICQClient1.ICQServer:= 'login.icq.com'; ICQClient1.ICQPort:= 5190; ICQClient1.UIN:= StrToIntDef(Trim('43****043'), 0); ICQClient1.Password := Trim('X*****DI'); ICQClient1.Login(); end; procedure icqclient1onlogin; begin icqclient1.SendMessage(331122,'asdasdasd'); end; procedure icqclient1onmessagerecv(uin,msg:string); begin end; end.
Есть у меня массив компонентов Bot:array of TICQClient; так вот как к этому массиву прикрутить процедуру как к обычному TIcqClient'u еслиб я его кинул на форму. Например Code: procedure TMain.bot[i]Login(Sender: TObject); begin end;
прежде всего создай элементы этого массива, обозначь процедуры для них и потом уже пытайся с ними работать
Вот приведу кусок кода: Code: unit Unit1; interface uses ....................... type TMain = class(TForm) procedure LoadBotsClick(Sender: TObject); ......................... private { Private declarations } public { Public declarations } end; var Main: TMain; Bot:array of TICQClient; kol:Integer; implementation uses Unit2; {$R *.dfm} procedure TMain.LoadBotsClick(Sender: TObject); var i,k:Integer; begin SetLength(Bot,kol); for i := 0 to high(bot) do begin Bot[i]:=Ticqclient.create(nil);//Как я понял это создание элементов массива k:=pos(';',Options.memo1.Lines[i]); bot[i].UIN:=strtoint(copy(Options.memo1.Lines[i],0,k-1)); bot[i].Password:=copy(Options.memo1.Lines[i],k+1,length(Options.memo1.Lines[i])-k); end; end; Теперь вопрос как обозначить процедуры? Никак немогу разобраться
как понимаю примерно так while true do begin 1) OpenProcess 2) ReadProcessMemory 3) Sleep(60); end; примеры http://forum.ztu.edu.ua/showthread.php?t=1893 http://www.experts-exchange.com/Programming/Languages/Pascal/Delphi/Q_20998829.html
Так как обозначить процедуру для элемента массива? Незнаю может быть я неправильно выражаюсь но мне надо: Вот у обычного TICQclient компонента кинутого на форму, есть эвенты, например OnLogin, тоесть как клиент подключается выполняется некое действие. Например Code: procedure TMain.ICQclientLogin(Sender: TObject); begin Label1.Caption:='Connected'; end; А вот как работать с этими эвентами только с массивом компонентов Code: Bot:array of TICQClient; Тоесть это должно быть нечто Code: procedure TMain.Bot[i]Login(Sender: TObject) где i это будет цикл всех компонентов массива например от 0 до 10. Помогите плиз, если можно киньте исходник
#Wolf#, там на примере сапера показано считывание из памяти (по первой ссылке). Плохо искал В твоём случае будет примерно так. Code: procedure TForm1.Button1Click(Sender: TObject); var hwn:hwnd; pid,hPr,dwR:dword; buf:byte; begin hWn := FindWindow(nil, PChar('заголовок окна')); if IsWindow(hwn) then begin showmessage('хэндл найден'); GetWindowThreadProcessId(hWn, PID); //ищем pid hPr := OpenProcess(PROCESS_VM_READ, False, PID); ReadProcessMemory(hPr, ptr($232D7E68), @buf, 1, dwR); //читаем память CloseHandle(hPr); end; end;
Помогите заполнить массив в таком вот порядке Code: 1 3 4 10 2 5 9 11 6 8 12 15 7 13 14 16 То есть по диагонали заполняется. Размеры массива могут быть любыми, массив квадратный.
народ немного глупый вопрос но всетаки прошу ответить с полной серьёзностью.. в чем различие м/у типом ^Byte и просто Byte для чего служит ^ да и еще почему его ставят по разному например если ставят рядом с типом то получается ^Byte, а если ставят рядом с переменной то ставят после pt^
я не просил аналоги называть я же попросил объяснить.... а твой ответ к сожелению даже подобием объяснения не является..... или ты знаеш что в С++ означает * ? и желаеш объяснить? я вижу ты хорошо С++ знаеш вопрос более не актуален ответ смотри ниже
Указательный тип! Pointer. Объявление переменной как указателя на тип Integer - P: ^Integer; P^ := 10; - присвоение значения указателю http://www.rsdn.ru/article/Delphi/Delphi_7_02.xml - 2.15.1. Понятие указателя