Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (все версии) - часть 3

Модерирует : ShIvADeSt

ShIvADeSt (07-04-2008 02:27): продолжение в http://forum.ru-board.com/topic.cgi?forum=33&topic=9383  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

   

Jokerjar79



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
DmitryKz, держи

Всего записей: 710 | Зарегистр. 08-09-2007 | Отправлено: 19:37 25-03-2008
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DmitryKz
на
http://slil.ru/25617999

Всего записей: 25518 | Зарегистр. 06-12-2002 | Отправлено: 19:38 25-03-2008
DmitryKz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Jokerjar79
akaGM
Ребята, спасибо большое!
 
Добавлено:
Jokerjar79
Это, кажись, из другой книги.

Всего записей: 3147 | Зарегистр. 29-09-2005 | Отправлено: 21:04 25-03-2008
Evill



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Народ, подскажите пожалуйста....
Можно ли в Delphi вставить анимированные файлы типа GIF либо какие другие?
Каким объектом это можно сделать?
 
Заранее спасибо.

Всего записей: 56 | Зарегистр. 01-11-2006 | Отправлено: 21:28 25-03-2008
Antananarivu

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте.  
Столкнулся с этой темой недавно..
Мне надо закачать почту, соединяясь с почтовым сервером и сохранить текст письма в папку, также нужно сохранить вложения, если они есть.
Использую объекты Indy.
Вот текст программы:

Код:
 
unit Unit222;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, IdMessage, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, IdMessageClient, IdPOP3;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    POP3: TIdPOP3;
    IdMessage: TIdMessage;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
label f;
var  
  mailcicl:integer;  
  addr:string;  
begin  
   POP3.Host:='pop.mail.ru';  
   POP3.Port:=110;  
   POP3.UserID:='antananarivu83@mail.ru';  
   POP3.Password:='******';  
   addr:=ExtractFilePath(Application.ExeName);  
   POP3.Connect;  
   for mailcicl:=1 to POP3.CheckMessages do
   begin
   if POP3.CheckMessages<1 then goto f ;  
   IdMessage.Clear;  
   Memo1.Clear;  
   POP3.Retrieve(1,IdMessage);  
   Memo1.Lines.AddStrings(IdMessage.Body);
   Memo1.Lines.SaveToFile(addr+inttostr(mailcicl)+'.txt');  
   POP3.Delete(mailcicl);  
   end;
   f:  
   POP3.Disconnect;  
   end;
end;
end.
 
 

 
Поставил IDmessageNodecode = true, когда было false вообще не работало (хотя и не знаю толком, для чего служит это поле).
Сейчас все выглядит так: скачивается первое письмо, и я так понимаю, что вложение воспринимается как текст, в общем всякая абракадабра, а остальные письма вообще не сохраняются (пустые текстовые файлы), хотя с сервера удаляются.
Если кто-то может помочь: объяснить, что в тексте программы не так, или написать верный код или хотя бы дать ссылку на примеры, объясняющие работу с Indy на русском языке - был бы очень признателен!
Заранее спасибо!

Всего записей: 151 | Зарегистр. 10-10-2006 | Отправлено: 23:10 25-03-2008 | Исправлено: Antananarivu, 23:13 25-03-2008
DmitryKz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
akaGM
Эх, посмотрел в приложении содержание дискеты для книги Дарахвелидзе Марков Программирование в Delphi 7, а в твоем выложенном архиве многих папок не хватает
Ребята, повторю просьбу - выложите ВСЮ дискету для этой книги.

Всего записей: 3147 | Зарегистр. 29-09-2005 | Отправлено: 00:03 26-03-2008
Jokerjar79



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
DmitryKz, я взял отсюда, может там наврали?

Всего записей: 710 | Зарегистр. 08-09-2007 | Отправлено: 00:40 26-03-2008
DmitryKz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Jokerjar79
Получается наврали, в смысле ошиблись.

Всего записей: 3147 | Зарегистр. 29-09-2005 | Отправлено: 03:43 26-03-2008
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DmitryKz
а я взял со сборника, так что там не наврали, а, скорее, недописали...
 
могу только посоветовать найти машину со старым флопповодом, обычно они читают такие дискеты, у них ток чтения/записи был больше современных, так что попробуй...
 
а ещё сунься на сайт издательства, может там есть...

Всего записей: 25518 | Зарегистр. 06-12-2002 | Отправлено: 07:45 26-03-2008 | Исправлено: akaGM, 07:47 26-03-2008
Figaro2000

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Antananarivu
есть книга Indy In Depth (перевод А.Подгорецкого, pdf,  весит всего 1-1.2 метра), пойдет? куда лить?

Всего записей: 245 | Зарегистр. 24-09-2005 | Отправлено: 07:48 26-03-2008
ymg2000



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DmitryKz
Есть хороший сайт с неплохой подборкой компьютерной, в т.ч. дельфийской литературой:
http://www.wmate.ru/ebooks/
Посмотри, может там и дискета есть.

Всего записей: 2391 | Зарегистр. 24-08-2007 | Отправлено: 08:26 26-03-2008
Antananarivu

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Figaro2000
Так я ее скачал, там про pop3 только то, что это ущербный протокол и никаких примеров, разве не так?

Всего записей: 151 | Зарегистр. 10-10-2006 | Отправлено: 08:53 26-03-2008
RostY



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Evill
вариант 1. RX library -- там есть компонент Gif-аниматор
вариант 2. GifImage.pas из http://www.tolderlund.eu/delphi/ или http://melander.dk/delphi/gifimage/

Всего записей: 387 | Зарегистр. 11-01-2006 | Отправлено: 09:35 26-03-2008
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Evill
вариант 0.
использовать родной класс TGIFImage, сорсы лежат в %delphi%\source\TGIFImage\
GIFImg.pas

Всего записей: 25518 | Зарегистр. 06-12-2002 | Отправлено: 09:47 26-03-2008
DmitryKz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
akaGM

Цитата:
а ещё сунься на сайт издательства, может там есть...

Йес! Все гениальное просто!

Всего записей: 3147 | Зарегистр. 29-09-2005 | Отправлено: 10:39 26-03-2008
Antananarivu

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
 
nit Unit222;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, IdMessage, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, IdMessageClient, IdPOP3;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    POP3: TIdPOP3;
    IdMessage: TIdMessage;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  intIndex:integer;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
label f;
var
  mailcicl:integer;  
  partstr:integer;
  s:string;
  addr:string;  
begin
   POP3.Host:='pop.mail.ru';  
   POP3.Port:=110;  
   POP3.UserID:='antananarivu83@mail.ru';  
   POP3.Password:='******';  
   addr:=ExtractFilePath(Application.ExeName);  
   POP3.Connect;  
   for mailcicl:=1 to POP3.CheckMessages do  
   begin
        if POP3.CheckMessages<1 then goto f ;  
        IdMessage.Clear;  
        Memo1.Clear;  
        POP3.Retrieve(mailcicl,IdMessage);  
        for intIndex := 0 to IdMessage.MessageParts.Count-1 do
        begin
                if IdMessage.MessageParts.Items[intIndex].ClassType=TIdattachment then
                begin
                        TIdAttachment(IdMessage.MessageParts.Items[intIndex]).SaveToFile(
                        TIdAttachment(Idmessage.MessageParts.Items[intIndex]).Filename);
                        TIdAttachment.Create(Idmessage.MessageParts,
                        TIdAttachment(Idmessage.MessageParts.Items[intIndex]).Filename)
                end;
 
                if IdMessage.MessageParts.Items[intIndex].ClassType=TidText then
                begin
                        For PartStr:=0 to TIdText(IdMessage.MessageParts.Items[IntIndex]).Body.Count-1 do
                                begin
                                s:=TIdText(IdMessage.MessageParts.Items[intIndex]).Body.Strings[PartStr];
                                memo1.Lines.Add(s);
                                end;
                        Memo1.Lines.SaveToFile(addr+inttostr(mailcicl)+'.txt');  
                end;
 
        end;
   POP3.Delete(mailcicl);
   end;
 
   f:  
   POP3.Disconnect;  
 
end;
end.
 

Все работает, скачивает почту, сохраняет текст письма в текстовой файл, сохраняет вложение.  
НО! Иногда почему-то вложение не скачивается и это вроде как происходит тогда, когда первое обрабатываемое письмо не содержит вложения.  
Буду рад любой помощи, с чем это может быть связано?
 
Добавлено:
Так.. потестил процедуру.
Проблема возникает с теми файлами, название которых содержит русские буквы... видимо, проблема с кодировкой... Но главное даже не это (хотя если кто с кодировками поможет, буду рад), главное то, что почему-то еще не скачиваются файлы размером больше 10-12 мегабайт (ориентировочно, я точнее не проверял). С чем это может быть связано ума не приложу...
 
Добавлено:
Так, потестил еще немного - размер файлов тут не причем, не закачиваются файлы в названии которых есть символ подчеркивания... кто-нибудь с этим сталкивался?

Всего записей: 151 | Зарегистр. 10-10-2006 | Отправлено: 12:54 26-03-2008
Evill



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RostY
akaGM
Спасибо

Всего записей: 56 | Зарегистр. 01-11-2006 | Отправлено: 18:19 26-03-2008
Sampron

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите как можно загрузить в заголовок окна другую иконку из ресурса?
К примеру ресурс с иконками:
MAINICON  //иконка приложения
NEWICON  //а это должна быть иконка заголовка

Всего записей: 563 | Зарегистр. 06-01-2007 | Отправлено: 21:27 26-03-2008
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sampron
Если в дизайнтайме, то через Project>Options...>Application>Load Icon. Либо в инспекторе объектов Form1>Icon>...

Всего записей: 2322 | Зарегистр. 24-05-2007 | Отправлено: 21:45 26-03-2008 | Исправлено: Frodo_Torbins, 21:49 26-03-2008
Sampron

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Frodo_Torbins
Если через инспектор объектов то иконка записывается в ресурс TForm1 двоичными данными, а нужно загрузить её из ресурсов иконок.

Всего записей: 563 | Зарегистр. 06-01-2007 | Отправлено: 21:59 26-03-2008
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (все версии) - часть 3
ShIvADeSt (07-04-2008 02:27): продолжение в http://forum.ru-board.com/topic.cgi?forum=33&topic=9383


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru