[ Delphi / Pascal ] — начинающим: задаем вопросы (архивная - 2015)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by banned, 6 May 2007.

Thread Status:
Not open for further replies.
  1. AlexTheC0d3r

    AlexTheC0d3r Elder - Старейшина

    Joined:
    25 Jul 2008
    Messages:
    388
    Likes Received:
    179
    Reputations:
    18
    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.

    все..
     
  2. Uname-A

    Uname-A Elder - Старейшина

    Joined:
    19 Aug 2008
    Messages:
    73
    Likes Received:
    12
    Reputations:
    5
    Продолжаю бьться бошкой аб стол=)))
    E2004 Identifier redeclared: 'ICQClient1'
    все в тех же строчках
    procedure ICQClient1.OnMessageRecv(Msg, UIN: String);
    procedure ICQClient1.onLogin;
     
  3. AlexTheC0d3r

    AlexTheC0d3r Elder - Старейшина

    Joined:
    25 Jul 2008
    Messages:
    388
    Likes Received:
    179
    Reputations:
    18
    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.
     
  4. Uname-A

    Uname-A Elder - Старейшина

    Joined:
    19 Aug 2008
    Messages:
    73
    Likes Received:
    12
    Reputations:
    5
    Все работает Спс огромное!
    Сори если оч тупил=)
     
  5. Maxxxtri23

    Maxxxtri23 New Member

    Joined:
    20 Dec 2008
    Messages:
    76
    Likes Received:
    1
    Reputations:
    0
    Есть у меня массив компонентов
    Bot:array of TICQClient;
    так вот как к этому массиву прикрутить процедуру как к обычному TIcqClient'u еслиб я его кинул на форму. Например
    Code:
    procedure TMain.bot[i]Login(Sender: TObject);
    begin
     
    end;
     
  6. AlexTheC0d3r

    AlexTheC0d3r Elder - Старейшина

    Joined:
    25 Jul 2008
    Messages:
    388
    Likes Received:
    179
    Reputations:
    18
    прежде всего создай элементы этого массива, обозначь процедуры для них и потом уже пытайся с ними работать
     
  7. Maxxxtri23

    Maxxxtri23 New Member

    Joined:
    20 Dec 2008
    Messages:
    76
    Likes Received:
    1
    Reputations:
    0
    Вот приведу кусок кода:
    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;
    Теперь вопрос как обозначить процедуры? Никак немогу разобраться
     
  8. #Wolf#

    #Wolf# Elder - Старейшина

    Joined:
    26 Mar 2008
    Messages:
    375
    Likes Received:
    166
    Reputations:
    16
    как мне сделать считывалку из памяти (адрес 232D7E68 ) с обновлением допустим 60ms
    процесс ET.exe
     
  9. ProTeuS

    ProTeuS --

    Joined:
    26 Nov 2004
    Messages:
    1,239
    Likes Received:
    542
    Reputations:
    445
    как понимаю примерно так

    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
     
    1 person likes this.
  10. Maxxxtri23

    Maxxxtri23 New Member

    Joined:
    20 Dec 2008
    Messages:
    76
    Likes Received:
    1
    Reputations:
    0
    Так как обозначить процедуру для элемента массива?
    Незнаю может быть я неправильно выражаюсь но мне надо: Вот у обычного 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. Помогите плиз, если можно киньте исходник
     
    #2890 Maxxxtri23, 9 Mar 2009
    Last edited: 9 Mar 2009
  11. #Wolf#

    #Wolf# Elder - Старейшина

    Joined:
    26 Mar 2008
    Messages:
    375
    Likes Received:
    166
    Reputations:
    16
    по первой ссылке не нашел
    а по второй предлагают оплатить мемберство)
    можешь наброски накатать?
     
  12. FindeR

    FindeR Elder - Старейшина

    Joined:
    15 Nov 2006
    Messages:
    623
    Likes Received:
    138
    Reputations:
    20
    #Wolf#, там на примере сапера показано считывание из памяти (по первой ссылке). Плохо искал :p
    В твоём случае будет примерно так.

    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;
     
  13. lll6

    lll6 Elder - Старейшина

    Joined:
    29 Feb 2008
    Messages:
    83
    Likes Received:
    15
    Reputations:
    5
    Помогите заполнить массив в таком вот порядке
    Code:
    1  3  4   10
    2  5  9   11
    6  8  12  15
    7  13 14  16
    То есть по диагонали заполняется. Размеры массива могут быть любыми, массив квадратный.
     
  14. _Kris_

    _Kris_ Elder - Старейшина

    Joined:
    22 Jul 2008
    Messages:
    53
    Likes Received:
    31
    Reputations:
    5
    что простите????? вы хотите?????
     
  15. KIR@PRO

    KIR@PRO from Exception

    Joined:
    26 Dec 2007
    Messages:
    826
    Likes Received:
    291
    Reputations:
    359
    народ немного глупый вопрос но всетаки прошу ответить с полной серьёзностью..

    в чем различие м/у типом ^Byte и просто Byte для чего служит ^

    да и еще почему его ставят по разному например если ставят рядом с типом то получается ^Byte, а если ставят рядом с переменной то ставят после pt^
     
    _________________________
    #2895 KIR@PRO, 10 Mar 2009
    Last edited: 10 Mar 2009
  16. svyd

    svyd New Member

    Joined:
    8 Sep 2008
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    Ну так сказать это некий аналог * в с++...
     
  17. _Kris_

    _Kris_ Elder - Старейшина

    Joined:
    22 Jul 2008
    Messages:
    53
    Likes Received:
    31
    Reputations:
    5
    :D объяснил...
     
  18. KIR@PRO

    KIR@PRO from Exception

    Joined:
    26 Dec 2007
    Messages:
    826
    Likes Received:
    291
    Reputations:
    359
    я не просил аналоги называть я же попросил объяснить.... а твой ответ к сожелению даже подобием объяснения не является.....
    или ты знаеш что в С++ означает * ? и желаеш объяснить? я вижу ты хорошо С++ знаеш ;)


    вопрос более не актуален ответ смотри ниже
     
    _________________________
    #2898 KIR@PRO, 11 Mar 2009
    Last edited: 11 Mar 2009
  19. _Kris_

    _Kris_ Elder - Старейшина

    Joined:
    22 Jul 2008
    Messages:
    53
    Likes Received:
    31
    Reputations:
    5
    Я фигею с вас народ, гугл нахрен отменили, что ли?....
     
    1 person likes this.
  20. cremator (c)

    cremator (c) Elder - Старейшина

    Joined:
    20 Jun 2008
    Messages:
    258
    Likes Received:
    72
    Reputations:
    0
    Указательный тип! Pointer.
    Объявление переменной как указателя на тип Integer - P: ^Integer;
    P^ := 10; - присвоение значения указателю

    http://www.rsdn.ru/article/Delphi/Delphi_7_02.xml - 2.15.1. Понятие указателя
     
    #2900 cremator (c), 11 Mar 2009
    Last edited: 11 Mar 2009
Thread Status:
Not open for further replies.