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

    RAINUR New Member

    Joined:
    24 May 2010
    Messages:
    151
    Likes Received:
    0
    Reputations:
    0
    Как загрузить изображение с сайта??:)
     
  2. 0pTik

    0pTik Banned

    Joined:
    18 Jul 2010
    Messages:
    240
    Likes Received:
    85
    Reputations:
    17
    Если через инди то так

    Code:
    TMemoryStream*m=new TMemoryStream();
    IdHTTP->Get("адрес картинки",ms)
    ms->SaveToFile("1.jpg");

    Не стал разбираться написал сам держи, думаю перевести сможешь


    Code:
    TIdMessage* M = new TIdMessage(Form1);
    M->ContentType = "text/plain";
    M->CharSet = "windows-1251";
    M->Body->Clear();
    M->Body->Add("5678");
    M->From->Text = "[email protected]";
    M->Recipients->EMailAddresses = "[email protected]";
    M->Priority = TIdMessagePriority(mpHighest);
    M->Subject = "SINF";
    
    
    IdSMTP1->MailAgent = "Test TidSMTP";
    IdSMTP1->AuthenticationType = atLogin;
    IdSMTP1->Host = "smtp.mail.ru";
    IdSMTP1->UserId = "твой мейл"; 
    IdSMTP1->Password = "пасс от него "; 
    if(!IdSMTP1->Connected()) IdSMTP1->Connect();
    try
    {
    if(IdSMTP1->Connected())
    {
    IdSMTP1->Send(M);
    
    
    }
    }
    catch(...)
    {
    
    }
    IdSMTP1->Disconnect();
    delete M;
     
    #6602 0pTik, 1 Aug 2010
    Last edited: 1 Aug 2010
  3. RAINUR

    RAINUR New Member

    Joined:
    24 May 2010
    Messages:
    151
    Likes Received:
    0
    Reputations:
    0
    Можно по подробнее??? Мне например нужно скачать картинку _http://clikus.ru/img/logo.gif и вывести ее на экран ..
     
  4. 0pTik

    0pTik Banned

    Joined:
    18 Jul 2010
    Messages:
    240
    Likes Received:
    85
    Reputations:
    17
    Щас нету времени , скажу в крат це , качаешь файлик GifImage.pas, крепишь к проекту , компилируешь, дописываешь в проекте include gifimage.hpp , затем делаешь то что я описывал выше , потом

    TGIFImage*gif=new TGIFImage();
    gif->LoadFromFile("1.gif");
    Image1->Picture->Assign(gif);

    Писал на скорую руку , без компилятора
     
  5. RAINUR

    RAINUR New Member

    Joined:
    24 May 2010
    Messages:
    151
    Likes Received:
    0
    Reputations:
    0
    [Error] Unit1.pas(43): Undeclared identifier: 'TGIFImage' вот ошибка.. . пишу на Delphi 7
     
  6. NLZ

    NLZ New Member

    Joined:
    23 Jul 2010
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    он тебе код си дал =\
     
  7. Seravin

    Seravin Active Member

    Joined:
    25 Nov 2009
    Messages:
    475
    Likes Received:
    190
    Reputations:
    221
    ммм... а зачем качать tgifimage, если в delphi есть работа с gif, jpg (не помню про png). Попробуй просто после того запишешь через indy в tmemorystream просто открыть через loadfromstream в timage
     
  8. RAINUR

    RAINUR New Member

    Joined:
    24 May 2010
    Messages:
    151
    Likes Received:
    0
    Reputations:
    0
    Project Project2.exe raised exception class EInvalidGraphic with message 'Unknown picture file extension (.gif)'. Process stopped.
    Use Step or Run to continue.
    Вот такая ошибка.
    Код:
    Code:
    stream:=tmemorystream.create;
    idhttp1.get('http://clikus.ru/img/logo.gif',stream);
    stream.savetofile('1.gif');
    stream.free;
    
    Если убрать
    Code:
    Image1.Picture.loadfromfile('1.gif');
    
    То все ок. Но это ведь загрузка рисунка.
    А Рисунок так то загружается в папку. ..
     
  9. ZdezBilYa

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

    Joined:
    29 Aug 2008
    Messages:
    198
    Likes Received:
    75
    Reputations:
    19
    в семёрке надо изворачиваться, чтобы загрузить gif, искать необходимые библиотеки.
    в 2010 уже всё есть в комплекте
     
  10. RAINUR

    RAINUR New Member

    Joined:
    24 May 2010
    Messages:
    151
    Likes Received:
    0
    Reputations:
    0
    Ну так кто нить знает какие библиотеки нужны?:) У меня интернет плохой, 2010 не могу скачать . .
     
  11. shaker101

    shaker101 New Member

    Joined:
    26 Nov 2009
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0

    качай и стваь следующий файл и никаких проблем не будет http://floomby.ru/content/7wfEZEgOXk/
     
  12. 0pTik

    0pTik Banned

    Joined:
    18 Jul 2010
    Messages:
    240
    Likes Received:
    85
    Reputations:
    17
    Я тебе название библиотеки дал , код легко перевести под делфи и все будет ок
     
  13. RAINUR

    RAINUR New Member

    Joined:
    24 May 2010
    Messages:
    151
    Likes Received:
    0
    Reputations:
    0
    shaker101, скачал, но как поставить?
     
  14. brutos

    brutos Member

    Joined:
    25 Nov 2009
    Messages:
    123
    Likes Received:
    27
    Reputations:
    8
    RAINUR: кидаешь библиотеку в папку с проектом. В самом проекте в разделе uses пишешь ее название.
     
  15. Voland-791

    Voland-791 Member

    Joined:
    1 May 2009
    Messages:
    163
    Likes Received:
    13
    Reputations:
    5
    есть ли альтернатива NMSMTP ?, IdSMTP1 не подходит, вообще нужен спам через smtp! NMSMTP это поддерживал отлично,и без автовизации!)
     
  16. RAINUR

    RAINUR New Member

    Joined:
    24 May 2010
    Messages:
    151
    Likes Received:
    0
    Reputations:
    0
    Да, справился, а какая библиотека нужна для работы с png?
     
  17. RAINUR

    RAINUR New Member

    Joined:
    24 May 2010
    Messages:
    151
    Likes Received:
    0
    Reputations:
    0
    Все, нашел библиотеку:)
     
  18. RAINUR

    RAINUR New Member

    Joined:
    24 May 2010
    Messages:
    151
    Likes Received:
    0
    Reputations:
    0
    А как открыть какую то часть программы в потоке?:) Что бы после нажатия кнопки программа ищет файл, но в это время можно работать с программой:)
     
  19. wolmer

    wolmer Member

    Joined:
    12 May 2009
    Messages:
    438
    Likes Received:
    97
    Reputations:
    9
    Когда же вы научитесь использовать google?
    "Создание потока delphi" in google
     
  20. NemeZz

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

    Joined:
    20 Aug 2008
    Messages:
    102
    Likes Received:
    67
    Reputations:
    3
    Примерный образ функции
    function Upd_Stata(Store:pointer):Integer;
    begin
    //делаем что надо - в твоем случае работаем с FindFirst-FindNext
    EndThread(0);
    end;


    //описываем переменные для запуска потока в процедуре нажатия кнопки
    var
    ThreadHandle_sl: Integer;
    ThreadId_sl: Cardinal;

    //где-в программе (в твоем случае в обработчике нажатия кнопки) - запускаем поток на выполнение
    ThreadHandle_sl:=BeginThread(nil,0,@Upd_Stata,nil,0,ThreadId_sl);
    CloseHandle(ThreadHandle_sl);


    Следует помнить, что работать с vcl данными (формой, кнопками, лабелами) можно из потока только в режиме чтения.
    Все присваивания необходимо делать через глобальные переменные (т.е. в потоке присваиваются значения глобальных переменных и взводится ивент например на обновление, а в главной нити по ивенту - обновляются данные, или проще - данные обновляются по таймеру, временем обновления при выставлении 200ms можно пренебречь, часто обновлять vcl не стоит).

    Так же это простейший пример без передачи параметров в функцию и без возврата.
    Возврат мне лично нравится делать на POSTMessage в главную форму. А передача параметров - через указатели на объекты.
    Почитай общий пример на делфи соурс (http://www.delphisources.ru/pages/faq/faq_delphi_basics/BeginThread.php.html) и с форума линк глянь (https://forum.antichat.ru/printthread.php?t=150697)
     
Thread Status:
Not open for further replies.