[ 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. Adekvatnyj

    Adekvatnyj Member

    Joined:
    28 Oct 2009
    Messages:
    18
    Likes Received:
    25
    Reputations:
    -3
    При любом коде, скрин:
    _http://s19.radikal.ru/i192/0911/29/c04d62ddc85e.png
     
  2. transserg

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

    Joined:
    2 Jul 2008
    Messages:
    147
    Likes Received:
    25
    Reputations:
    2
    Adekvatnyj я имел ввиду код программы а не отладчик
     
  3. Adekvatnyj

    Adekvatnyj Member

    Joined:
    28 Oct 2009
    Messages:
    18
    Likes Received:
    25
    Reputations:
    -3
    Code:
    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;
    
    type
      TForm1 = class(TForm)
        Label1: TLabel;
        Edit1: TEdit;
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      ShowMessage('Привет, ' + Edit1.Text + '!');
    end;
    
    end.
    Допотопные коды. С учебника.
     
  4. transserg

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

    Joined:
    2 Jul 2008
    Messages:
    147
    Likes Received:
    25
    Reputations:
    2
    Adekvatnyj попробуй переустановить делфи или поставть Codegear какой нить, скорее всего проблемы в среде
     
  5. =Zeus=

    =Zeus= Member

    Joined:
    10 Aug 2009
    Messages:
    213
    Likes Received:
    54
    Reputations:
    5
    Так какая именно ошибка(ки) вылетают? В студию.
    Или если ты скопировал весь код, то возможно такое. Попробуй просто создать новый проект, кинуть на форму кнопку, а уже в ее обработчике написать строчку кода.
     
  6. Adekvatnyj

    Adekvatnyj Member

    Joined:
    28 Oct 2009
    Messages:
    18
    Likes Received:
    25
    Reputations:
    -3
    _http://i004.radikal.ru/0911/83/d990ff8ed0f6.png
    Да вот же скрин. При кнопке, где я в OnClick вписываю Button1Click , и вставляю этот код.
     
  7. Adekvatnyj

    Adekvatnyj Member

    Joined:
    28 Oct 2009
    Messages:
    18
    Likes Received:
    25
    Reputations:
    -3
    Если это трабла в дельфи, дайте ссылку на нормальный дельфи и серийник к нему.
     
  8. wolmer

    wolmer Member

    Joined:
    12 May 2009
    Messages:
    438
    Likes Received:
    97
    Reputations:
    9
    Подскажите алгоритм для расшифровки пароля какой нибуть версии QIP'а
     
  9. Nullsleep

    Nullsleep Member

    Joined:
    2 Jun 2009
    Messages:
    67
    Likes Received:
    26
    Reputations:
    0
    Для Mail.ru Agent не надо? :D
     
    1 person likes this.
  10. Tribal_0_o

    Tribal_0_o New Member

    Joined:
    7 Nov 2009
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    Не конекта

    Не подключаеться к серверу:

    Code:
    unit Unit2;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs,winsock, StdCtrls;
    
    type
      TForm2 = class(TForm)
        Memo1: TMemo;
        Button1: TButton;
        Edit1: TEdit;
        procedure FormCreate(Sender: TObject);
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
     const
     WM_MYSOCKMESS = WM_USER+1;
    var
      Form2: TForm2;
      info:wsadata;
      addr:tsockaddr;
      a:tsocket;
    
    implementation
    
    {$R *.dfm}
    
    procedure TForm2.Button1Click(Sender: TObject);
    begin
    addr.sin_family:=af_inet;
    addr.sin_port:=htons(80);
    addr.sin_addr.S_addr:=inet_addr(pansichar(edit1.text));
    a:=socket(af_inet,sock_stream,0);
    if a=INVALID_SOCKET then
    begin
     memo1.Lines.Add('Ошибка 1 '+ (inttostr(WSAGetLastError)));
    end;
    
    connect(a,addr,sizeof(addr));
     if connect(a,addr,sizeof(addr))= 0 then
     begin
       memo1.Lines.Add('ок');
     end
     else
     begin
        memo1.Lines.Add('Ошибка 2');
     end
    
    end;
    
    procedure TForm2.FormCreate(Sender: TObject);
    
    begin
    wsastartup($101,info);
    end;
    
    end.
    
     
    #4590 Tribal_0_o, 7 Nov 2009
    Last edited: 7 Nov 2009
  11. n1ckolay1987

    n1ckolay1987 New Member

    Joined:
    31 Oct 2009
    Messages:
    1
    Likes Received:
    1
    Reputations:
    0
    а где саму дельфи 7 взять и с чего начать?
     
  12. HakaR

    HakaR Active Member

    Joined:
    23 Jul 2009
    Messages:
    301
    Likes Received:
    200
    Reputations:
    3
    С торрентов скачать, юзай гугл в поисках книги - дельфи для новичков.
     
    4 people like this.
  13. wolmer

    wolmer Member

    Joined:
    12 May 2009
    Messages:
    438
    Likes Received:
    97
    Reputations:
    9
    Ты домен пишешь или IP в edit?
     
    #4593 wolmer, 8 Nov 2009
    Last edited: 8 Nov 2009
    1 person likes this.
  14. intNet

    intNet Member

    Joined:
    31 May 2009
    Messages:
    29
    Likes Received:
    14
    Reputations:
    5
    Зачем ты два раза подключаешься? Или ты думаешь, что во втором случае функция не выполняется? И да, как сказал wolmer функция inet_addr() принимает ip, а не хост.
     
  15. Tribal_0_o

    Tribal_0_o New Member

    Joined:
    7 Nov 2009
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    Спс убрал убрав connect(a,addr,sizeof(addr)); конект удачен=) Конекчусь к IP
     
  16. Tribal_0_o

    Tribal_0_o New Member

    Joined:
    7 Nov 2009
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    Собствено следуюший вопрос.. При конекте к серву, сервер посылает нам пакет.
    Как получить и прочитать его? Используя Winsock
     
  17. slesh

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

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
  18. wolmer

    wolmer Member

    Joined:
    12 May 2009
    Messages:
    438
    Likes Received:
    97
    Reputations:
    9
    К примеру

    Code:
     t:TSocket;
     send1:string;
     send1buf:array [0..5000] of char;
     recv1buf:array [0..5000] of char;
     dsize:Word;
     recvstr:string;
    Code:
        send1:='GET http://site.ru/'+#13#10+
    'User-Agent: Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.2.15 Version/10.00'+#13#10+
    'Host: site.ru'+#13#10+
    'Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1'+#13#10+
    'Accept-Language: ru-RU,ru;q=0.9,en;q=0.8'+#13#10+
    'Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1'+#13#10+
    'Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0'+#13#10+
    'Cookie: test=test1'+#13#10+
    'Cookie2: $Version=1'+#13#10+
    'Connection: Keep-Alive'+#13#10+#13#10;
        CopyMemory(@send1buf,pchar(send1),length(send1));
        send(t,send1buf,sizeof(send1buf),0);
        //В случае если мы напишем recv(t, recv1buf, 4096, 0);
        //То весь пакет не дойдет, поэтому мы связываемся с циклом
        repeat
         recv1buf:='';
         dSize:=recv(t, recv1buf, 4096, 0);
         recvstr:=recvstr+recv1buf;
        until (dSize = 0) or (dSize = SOCKET_ERROR);
    Дальше в recvstr будет пакет в виде html
    (#13#10 - перенос строки)
    (при коннекте сервер нам дает знать что мы подключились но он нам не посылает пакет, он нам посылает пакет когда мы ему послали пакет (т.е. сервер отвечает на наши пакеты))
    (писал прямо здесь, так что особо не ругаться на ошибки)
     
    #4598 wolmer, 8 Nov 2009
    Last edited: 8 Nov 2009
  19. Tribal_0_o

    Tribal_0_o New Member

    Joined:
    7 Nov 2009
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    У меня "особенный сервер)" игры Lineage.И при конекте к серверу он сразу же посылат пакет.. Конект и просмотр этого пакета через TCPClient у меня получаться а в вот через Winsock не получалось.. Я получал Длину пакета. Но взяв из вашего примера :
    Code:
    recv1buf:='';
     recvstr:=recvstr+recv1buf;
    
    Начал получать пакет целиком Спасибо=)
     
  20. Adekvatnyj

    Adekvatnyj Member

    Joined:
    28 Oct 2009
    Messages:
    18
    Likes Received:
    25
    Reputations:
    -3
    Подскажите у меня проблема, ее я постил 2 страницы назад, но мне не помогли.
    Скачал 3 разных пакета дельфи 7.0, переустанавливал каждую по 3 раза.
    Дальше та же ошибка, скрин:
    _http://s39.radikal.ru/i086/0911/c7/26f9f43cdf97.png
    Винду переустановить не могу, так как бухгалтерии всякие.
     
Thread Status:
Not open for further replies.