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

    Piflit Banned

    Joined:
    11 Aug 2006
    Messages:
    1,249
    Likes Received:
    585
    Reputations:
    31
    да

    на ачате эльфы? откуда?
     
  2. ALPAN

    ALPAN New Member

    Joined:
    4 Jun 2007
    Messages:
    3
    Likes Received:
    1
    Reputations:
    0
    А можно не много подробней?
     
  3. The_HuliGun

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

    Joined:
    19 May 2007
    Messages:
    191
    Likes Received:
    84
    Reputations:
    11
    Отправку письма замутить можно, было бы время и желание.
    Юзай компоненты IdSMTP с вкладки Indy Clients и idMessage с вкладки Indy Misc. Ставь кнопень, пиши код

    Code:
    procedure TForm1.Button1Click(Sender: TObject);
    var
      IdSMTP: TIdSMTP;
      idMessage: TidMessage;
    begin
      idMessage := TIdMessage.Create(nil);
      try
        with idMessage do
        begin
          Recipients.Add.Address :='[email protected]';{ кому отправляем }
          Subject :='Привет с античата!';{Тема}
          From.Address := '[email protected]';{ свое мыло }
          Body.Text := 'Добрый день'+#13+
          'Я знаю Delphi';
        end;
        IdSMTP := TIdSMTP.Create(nil);
        with IdSMTP do
          try 
            Host := 'smtp.ukrwest.net'; { сервер исходящей почты }
            Connect; 
            Send(idMessage); 
            Disconnect;
          finally 
            Free; 
          end;
      finally
        Free;
      end;
    end;
    
    и будет тебе щастье!

    З. Ы. Как видите так можно посылать анонимную почту. Удачи!
     
  4. ALPAN

    ALPAN New Member

    Joined:
    4 Jun 2007
    Messages:
    3
    Likes Received:
    1
    Reputations:
    0
    ух ты! спасибо большое! у меня еще один вопрос. Где можно скачать дополнительные компоненты?
     
  5. GlobaL

    GlobaL Banned

    Joined:
    21 Feb 2007
    Messages:
    57
    Likes Received:
    66
    Reputations:
    -18
    Есть ли такая возможность использовать камандуную строку виндовса через дельфи?
     
  6. NetMan

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

    Joined:
    9 Feb 2004
    Messages:
    121
    Likes Received:
    37
    Reputations:
    34
    Что под этим подразумевается? Выполнение команд?
     
  7. GlobaL

    GlobaL Banned

    Joined:
    21 Feb 2007
    Messages:
    57
    Likes Received:
    66
    Reputations:
    -18
    да, как из cmd.exe
     
  8. begin_end

    begin_end Green member

    Joined:
    4 Jan 2007
    Messages:
    265
    Likes Received:
    636
    Reputations:
    476
    Такая возможность есть. Если тебе нужно выполнить команду запуска программы по имени, то ты можешь сделать это, например, через функцию WinExec: WinExec('someappname.exe',0);
    А если нужно не просто осуществить такую команду запуска, но и получить результат её выполнения (текст из консоли), то тут пригодится следующий код.
     
    _________________________
    2 people like this.
  9. NetMan

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

    Joined:
    9 Feb 2004
    Messages:
    121
    Likes Received:
    37
    Reputations:
    34
    Если выполнить команду из cmd.exe, то, например, так:
    Code:
    WinExec('cmd /c copy c:\1.txt c:\2.txt',SW_HIDE);
    Ключ /c - выполнение указанной команды (строки) с последующим завершением.
     
    1 person likes this.
  10. GlobaL

    GlobaL Banned

    Joined:
    21 Feb 2007
    Messages:
    57
    Likes Received:
    66
    Reputations:
    -18
    спс, то что я искал
     
  11. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    GET,POST запросы
    Скажи те плз, как в делфи выполнять гет, пост запросы к сайтам.....
    Покажите плз пример програмки...
    Какой компонент юзать?
    И т.д. и т.п.
    Самый развернутый ответ получит +10 =\
     
  12. NetMan

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

    Joined:
    9 Feb 2004
    Messages:
    121
    Likes Received:
    37
    Reputations:
    34
    #112 NetMan, 6 Jun 2007
    Last edited: 6 Jun 2007
  13. The_HuliGun

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

    Joined:
    19 May 2007
    Messages:
    191
    Likes Received:
    84
    Reputations:
    11
    Нужен компонент IdHTTP с вкладки Indy Clients например следующий код

    Code:
    procedure TForm1.Button1Click(Sender: TObject);
    var         sl : TStringList;
    begin
    sl := TStringList.Create;
    sl.Add('id=111');
    sl.Add('pass=***');
    Memo1.Lines.Text:=IdHTTP1.Post('http://www.ya.ru',sl);
    end;
    
    выведет в мемо html код страницы, полученной пост запросом.
    Если нужно сделать get запрос, используй метод IdHTTP1.Get
     
  14. slesh

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

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    А я не парясь мучаюсь вот так вот:
    Code:
    procedure timeouts(wnd:hwnd;uMsg:UINT;id:UINT;dwtime:dword);stdcall;
    begin
    tout:=true;
    closesocket(socket_id);
    end;
    
    function send_packs(ip:string; port:word; send_buf:string; var recv_buf:string):integer;
    var
    SockAddrIn: TSockAddrIn;
    tmp_buf:array[1..1024] of char;
    len:longint;
    begin
    result:=-10;
    socket_id:=socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
    if socket_id=WINDOWS.INVALID_HANDLE_VALUE then exit;
    SockAddrIn.sin_family := AF_INET;
    SockAddrIn.sin_port := htons(port);
    SockAddrIn.sin_addr.s_addr := inet_addr(Pansichar(ip));
    result:=-20;
    if Connect(socket_id, @SockAddrIn, SizeOf(SockAddrIn))<>0 then exit;
    tout:=false;
    windows.SetTimer(form1.Handle,1,30000,@timeouts);
    send(socket_id,send_buf[1],length(send_buf),0);
    recv_buf:='';
    repeat
    len:=recv(socket_id,tmp_buf,1024,0);
    recv_buf:=recv_buf+copy(tmp_buf,1,len);
    until len<=0;
    killtimer(form1.Handle,1);
    result:=-30;
    if tout=true then exit;
    result:=length(recv_buf);
    closesocket(socket_id);
    end;
    
    Чисто делал код под многопаточную работу через прокси с использованием TIMEOUT

    примет юзанья:
    Code:
    buf_send:=
       'GET http://xz.org/? HTTP/1.0'#13#10+
       'Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*'#13#10+
       'Referer: http://xz.ru/'#13#10+
       'Accept-Language: ru-ru'#13#10+
       'Proxy-Connection: Keep-Alive'#13#10+
       'User-Agent: Mozilla/5.0 (compatible; MSIE 6.0; SV1; MRA 4.8 (build 01705))'#13#10+
       'Host: xz.org'#13#10#13#10;
    
    case send_packs(proxy[x].ip,proxy[x].port,buf_send,buf_recv) of
    -10:begin
         form1.memo2.Lines.Add('Ошибка создания сокета');
         goto m1;
        end;
    -20:begin
         form1.memo2.Lines.Add(proxy[x].ip+' > дохлый');
         goto m1;
        end;
    -30:begin
         form1.memo2.Lines.Add(proxy[x].ip+' > TIME OUT');
         goto m1;
        end;
      0:begin
         form1.Memo2.Lines.Add(proxy[x].ip+' > Ошибка прокси');
         goto m1;
        end;
    end;
    
    
    НУ и как всегд не надо забывать перед выполнением этого делать:
    Code:
    if WSAStartup($202, WSAData)=-1 then
     begin
      memo2.Lines.Add('Ошибка WSAStarup');
      exit;
     end;
    
    Вся система держится на базе winsock2.

    Или есть вот пример юзанья через WinInet с использованием SSL. Хотя его можно отрубить!
    Code:
    function zapros(login,pass,proxy_ip:string;proxy_port:word):string;
    var
    h_open:HINTERNET;
    h_connect:HINTERNET;
    h_request:HINTERNET;
    mas:array of char;
    s,outs:string;
    l:integer;
    begin
    result:='- InternetOpen';
    if proxy_ip<>'' then
    h_open:=InternetOpen('Mozilla/5.0 (compatible; MSIE 6.0; SV1; MRA 4.8 (build 01705))',INTERNET_OPEN_TYPE_PROXY,Pansichar(proxy_ip+':'+inttostr(proxy_port)),nil,0)
    else
    h_open:=InternetOpen('Mozilla/5.0 (compatible; MSIE 6.0; SV1; MRA 4.8 (build 01705))',INTERNET_OPEN_TYPE_DIRECT,nil,nil,0);
    if h_open=nil then exit;
    result:='- InternetConnect';
    h_connect:=InternetConnect(h_open,'hz.ru',INTERNET_DEFAULT_HTTPS_PORT,nil,nil,INTERNET_SERVICE_HTTP,0,0);
    if h_connect=nil then exit;
    setlength(mas,1024);
    lstrcpy(Pansichar(mas),'image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/msword, application/vnd.ms-excel, application/vnd.ms-powerpoint, */*');
    result:='- HttpOpenRequests';
    h_request:=HttpOpenRequest(h_connect,'POST','/','HTTP/1.0','hz.ru',@mas,INTERNET_FLAG_SECURE+INTERNET_FLAG_KEEP_CONNECTION,0);
    if h_request=nil then exit;
    randomize;
    s:='login='+login+'pass='+pass;
    lstrcpy(Pansichar(mas),Pansichar(s));
    HttpSendRequest(h_request,'Content-Type: application/x-www-form-urlencoded', 47,mas,length(s));
    
    setlength(mas,1024);
    outs:='';
    repeat
    InternetReadFile(h_request,mas,1024,cardinal(l));
    s:=copy(Pchar(mas),1,l);
    outs:=outs+s;
    until l<=0;
    result:='- PASSWORD ERROR';
    if pos('Вы ввели неправильный пароль.',outs)<>0 then exit;
    result:='+ ОК';
    wininet.InternetCloseHandle(h_open);
    end;
    
    
     
    #114 slesh, 6 Jun 2007
    Last edited: 6 Jun 2007
    1 person likes this.
  15. xaker-boss

    xaker-boss Elder - Старейшина

    Joined:
    6 Mar 2007
    Messages:
    251
    Likes Received:
    49
    Reputations:
    -11
    Люди извеняюсь конечно за глупый вопрос, но всёже:
    http://www.forum-mp3.org/DynamicSkinForm.v7.40.Full.Source.Delphi.BCB.ccrun.446521.rar
    Люди потскажите ктонебуть как установить этот кампонент? если можно поподробние на Delphi 2006.
    Вить там файла .bpl та нету.
    [​IMG]
     
  16. slesh

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

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    это компонент в исходниках. поэтому его ставить нужно через DPK файлы.
    Открываешь в дельфе DPK файл соответствующий твоей версии дельфы.
    Появится окно установки пакета. Там нажмешь на кнопку компилировать.
    А потом на кнопку Установить. После чего появится messagebox со списком установленых компонентов.
    Советую прежде чем это сделать, скопировать все фалы находящиеся в архиве в папке ssdsf740 в папку Delphi\Lib и из неё уже устанавливать. Т.к. если установить из временной папки, то потом частенько появляются глюки.
     
    #116 slesh, 6 Jun 2007
    Last edited: 6 Jun 2007
    1 person likes this.
  17. xaker-boss

    xaker-boss Elder - Старейшина

    Joined:
    6 Mar 2007
    Messages:
    251
    Likes Received:
    49
    Reputations:
    -11
    slesh уменя некакое окно установки невышло, просто какбы показан код:
     
  18. Halo

    Halo Member

    Joined:
    5 May 2005
    Messages:
    22
    Likes Received:
    7
    Reputations:
    0
    не знаю может уже задавали такой вопрос...но все же...где можно скачать Делфи (желательно последнюю версию)...сори если че не так...
     
  19. begin_end

    begin_end Green member

    Joined:
    4 Jan 2007
    Messages:
    265
    Likes Received:
    636
    Reputations:
    476
    Такой вопрос задавался тут не один раз!

    Что мне дал гугл:
    1) http://www.codegear.com/downloads/free/delphi
    2) Delphi 2007 Lite for Win32:
    http://rapidshare.com/files/26500700/Lite.rar
    http://rapidshare.com/files/26501160/Lite.r00
    http://rapidshare.com/files/26501592/Lite.r01
    http://rapidshare.com/files/26502227/Lite.r02
    http://rapidshare.com/files/26503377/Lite.r03
    http://rapidshare.com/files/26508525/Lite.r04
    http://rapidshare.com/files/26508806/Lite.r05

    А ещё смотрим темы: 1, 2, 3.
     
    _________________________
  20. slesh

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

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    2 motorola3653 Не могу сказать как именно действовать, т.к. сам приверженец 7-й дельфы.
    Если так не прокатило, то попробуй В Меню "Компонент" (если оно у тебя есть)
    Выбрать пункт "Установить компонент" и там ввести имя файла пакета.
     
Thread Status:
Not open for further replies.