[ 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. De-visible

    De-visible [NDC] Network develope c0ders

    Joined:
    6 Jan 2008
    Messages:
    916
    Likes Received:
    550
    Reputations:
    66
    дэзтер что за оффтоп, угомонись, визард лучше коменть в репу), я конечно понимаю тебя, но все же давай нее будем засорять тему.
     
  2. Archangelus

    Archangelus New Member

    Joined:
    11 May 2008
    Messages:
    26
    Likes Received:
    0
    Reputations:
    0
    у меня есть ссылка
    http://сайт.ru/gogobunga.php?banner=10000&&user=100000&ref=http://сайт2.ru/index.php
    Как мне правильно указать ссылку в WebBrowser.navigate?
    Как прописать referer
    Вот пишу
    Code:
    URL:='http://сайт.ru';
    Flags:=navNoWriteToCache;
    TargetFrameName:=EmptyParam;
    Headers:='Referer: http://сайт2.ru/';
    webbrowser.Navigate2(URL, Flags, TargetFrameName, PostData, Headers);
    А как мне указывать остальные параметры? (banner=10000&&user=100000)
     
  3. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Code:
    URL:='http://сайт.ru/gogobunga.php?banner=10000&&user=100000';
    
     
  4. [dei]

    [dei] Active Member

    Joined:
    24 Nov 2008
    Messages:
    171
    Likes Received:
    112
    Reputations:
    5
    Такой вопрос. Имеется ответ сервера вида header \r\n\r\n body. Как получить в отдельных переменных header и body ?
     
  5. criz

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

    Joined:
    4 Nov 2007
    Messages:
    293
    Likes Received:
    40
    Reputations:
    6
    [dei], http://www.delphisources.ru/pages/faq/base/strtok.html
     
    1 person likes this.
  6. Archangelus

    Archangelus New Member

    Joined:
    11 May 2008
    Messages:
    26
    Likes Received:
    0
    Reputations:
    0
    Спасибо.
    А как нажать программно на ссылку?
    Я нашёл пример:
    Code:
    procedure LinkClick(LinkName:String);
    var
      HtmlDocument: IHtmlDocument2;
      HtmlCollection: IHtmlElementCollection;
      HtmlElement: IHtmlElement;
      I: Integer;
    begin
      HtmlDocument := form1.WebBrowser1.Document as IHtmlDocument2;
      HtmlCollection := HtmlDocument.All;
      HtmlCollection := HtmlCollection.Tags('A') as IHTMLElementCollection;
      for I := 0 to HtmlCollection.Length - 1 do begin
        HtmlElement := HtmlCollection.Item(i, 0) as IHtmlElement;
        if   HtmlElement.InnerText = LinkName then
        begin
         HtmlElement.click;
        end;
      end;
    end;

    Code:
    procedure TForm1.Button1Click(Sender: TObject);
    var
     HtmlElement: IHtmlElement;
    begin
    LinkClick(edit3.Text);   {в edit нужно пихать название ссылки, а не саму ссылку}
    end;
    Помогите сделать так, что б в edit можно было совать не название, а саму ссылку типа (http://сайт.ru) и нажималось на это ссылку программно.
     
  7. W!z@rD

    W!z@rD Борец за русский язык

    Joined:
    12 Feb 2006
    Messages:
    973
    Likes Received:
    290
    Reputations:
    43
    что мешает пихнуть ссылку в компонент TWebBrowser?
    в принципе должно сработать, имхо
     
  8. Archangelus

    Archangelus New Member

    Joined:
    11 May 2008
    Messages:
    26
    Likes Received:
    0
    Reputations:
    0
    Ладно, получилось у меня всё )
    Помогите плих сделать так, что б открывалась в том же окне
     
    #2328 Archangelus, 5 Dec 2008
    Last edited: 6 Dec 2008
  9. criz

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

    Joined:
    4 Nov 2007
    Messages:
    293
    Likes Received:
    40
    Reputations:
    6
    Объяснитие плиз, что значит вот этот код:
    Code:
         Tthread = class(ThreadProgress)
            protected
                procedure Finish; override;
         end;
    
     
  10. WAR!9G

    WAR!9G Elder - Старейшина

    Joined:
    24 Jun 2007
    Messages:
    112
    Likes Received:
    89
    Reputations:
    1
    Такой вот вопрос назрел - использую winapi, пишу программу для автоматизации конкретных действий. Функцией FindWindow нашёл окно программы. FindWindowEx - нашёл панель и в конце концов интересующий обьект. Теперь камень преткновения - имеется объект класса SysListView32 который в себе, содержит определённое количество строк. Требуется выполнить двойной щелчок по каждой из строк.
    Пробовал что то вроде:
    Code:
    SendMessage(Wnd, WM_LBUTTONDBLCLK, 2,0);
    ...но почему то не срабатывает. Может кто имел дело?
     
  11. IcEnd

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

    Joined:
    24 Sep 2008
    Messages:
    0
    Likes Received:
    106
    Reputations:
    7
    Как скомпилировать все delphi файлы в один .exe?
     
  12. WAR!9G

    WAR!9G Elder - Старейшина

    Joined:
    24 Jun 2007
    Messages:
    112
    Likes Received:
    89
    Reputations:
    1
    А в чём суть? Если ты просто хочешь собрать всё воедино, то создай отдельный проект кинь на форму для каждого по кнопке и запускай всё через ShellExecute. Если для своих нужд, то я бы пошёл по пути наименьшего сопротивления - тупо воспользовался джойнером. Почему бы в конце концов все файлы не объеденить в один?
     
  13. IcEnd

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

    Joined:
    24 Sep 2008
    Messages:
    0
    Likes Received:
    106
    Reputations:
    7
    Да вот нашел статейку.
    Но спасибо, щас попробую.
     
  14. _Kris_

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

    Joined:
    22 Jul 2008
    Messages:
    53
    Likes Received:
    31
    Reputations:
    5
    joiner...
    Или же проще Ctrl+F9
     
  15. criz

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

    Joined:
    4 Nov 2007
    Messages:
    293
    Likes Received:
    40
    Reputations:
    6
    А ГетЛастЕррор что говорит?
     
  16. WAR!9G

    WAR!9G Elder - Старейшина

    Joined:
    24 Jun 2007
    Messages:
    112
    Likes Received:
    89
    Reputations:
    1
    GetLastError возвращает 0 - ошибок нет. Ещё вся фишка в том что всякие ListView_DeleteItem,
    ListView_GetItemCount и прочее команды работают. А вот выделит строку ну никак не получается, пробовал через:
    Code:
    ListView_SetItemState(Wnd, 2, LVIS_SELECTED, LVIS_SELECTED);
    аддишн - в конце концов дошёл до такого варианта:
    Code:
    ListView_SetExtendedListViewStyle(Wnd,LVS_EX_FULLROWSELECT);
    ListView_SetItemState(Wnd, -1, 0, LVIS_SELECTED);
    ListView_SetItemState(Wnd, 1, LVIS_SELECTED, LVIS_SELECTED);
    ListView_Update(Wnd,1);
    Ну и тут не всё слава богу, теперь выделяется категорически всё - и что нужно и что не нужно. :confused:
     
    #2336 WAR!9G, 9 Dec 2008
    Last edited: 9 Dec 2008
  17. diznt

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

    Joined:
    31 Jan 2008
    Messages:
    432
    Likes Received:
    164
    Reputations:
    -19
    Вывод капчи на делфи!

    Сабж! Но есть одно но! Если смотреть путь до картинки (капчи) то он меняеться всю время! Как реализовать с таким моментом???

    Просьба еще с примером!!!!!!!
     
  18. WAR!9G

    WAR!9G Elder - Старейшина

    Joined:
    24 Jun 2007
    Messages:
    112
    Likes Received:
    89
    Reputations:
    1
    Функцией POS парсишь веб страницу на предмет ссылки на капчу. Ну а далее просто скачиваешь её как файл с изображением.
    Code:
    uses Wininet; 
    
    function GetInetFile(const fileURL, FileName: String): boolean;
    const BufferSize = 1024;
    var hSession, hURL: HInternet;
    Buffer: array[1..BufferSize] of Byte;
    BufferLen: DWORD;
    f: File;
    sAppName: string;
    begin
       Result:=False;
       sAppName := ExtractFileName(Application.ExeName);
       hSession := InternetOpen(PChar(sAppName), INTERNET_OPEN_TYPE_PRECONFIG,
             nil, nil, 0);
       try
          hURL := InternetOpenURL(hSession,
          PChar(fileURL),nil,0,0,0);
          try
             AssignFile(f, FileName);
             Rewrite(f,1);
             repeat
                InternetReadFile(hURL, @Buffer, SizeOf(Buffer), BufferLen);
                BlockWrite(f, Buffer, BufferLen)
             until BufferLen = 0;
             CloseFile(f);
             Result:=True;
          finally
          InternetCloseHandle(hURL)
          end
       finally
       InternetCloseHandle(hSession)
       end
    end; 
    
    
    Использование:
    Code:
    var FileOnNet, LocalFileName: string
    begin
       FileOnNet:='http://www.pentagon.com/export/capcha.php?id=53834';
       LocalFileName:='antichat.bmp'; 
    
       if GetInetFile(FileOnNet,LocalFileName)=True then
          ShowMessage('Download successful')
       else
          ShowMessage('Error in file download') 
    
    end; 
    
    
    После того как картинка оказалась у тебя в папке, загружаешь её в программу через компонент TImage.
     
  19. slesh

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

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    1) считываешь страницу в буфер
    2) капчу отпарсить лучше по тегам уникальным, т.е если
    <img src="/folder/script.php?param=1122233">
    то ищи /folder/script.php а затем копируй всё до "
    3) для отображения капчи лучше юзай компонент WebBrowser потому как капчи могут быть и bmp и gif (анимационные) и jpeg и png и даже flash
     
  20. cigaretteburn

    cigaretteburn New Member

    Joined:
    21 May 2007
    Messages:
    11
    Likes Received:
    2
    Reputations:
    0
    Привет народ! Кто знает есть у компонента IdPOP3 функция - как узнать кол-во новых сообщений на сервере? (не всех а именно новых, которые не прочтены). Или может быть посоветуете другой компонент???
     
Thread Status:
Not open for further replies.