How do I download attachment file with Delphi Indy TIdIMap4

Delphi XE2, Indy 10, using TIdIMap4 to read emails to get attacments.
Once I have the list of attachment file names, what is the best way (or any way) to download and store the actual attachments.

eg.
==================
 
     IDIMap41.UIDRetrieve(mbMsgUID, mbMsgP);

      for liCount := 0 to mbMsgP.MessageParts.Count-1 do
      begin
  
        if mbMsgP.MessageParts[liCount] is TIdText then
        begin
          Memo1.Lines.AddStrings((mbMsgP.MessageParts[liCount] as TIdText).Body);
        end
        else
        begin
          if mbMsgP.MessageParts[liCount] is TIdAttachmentFile then
          begin
              Memo1.Lines.Add('Attachment file: ' + TIdAttachmentFile(mbMsgP.MessageParts.Items[liCount]).Filename)
             // Download attachment file to local drive...
             // What goes in here to save the file?
                  .........
             //
          end;
        end;
      end;
==================

Thanks if you can help or point me in the right direction.

Graeme
-1
Graeme
12/3/2012 10:20:39 AM
embarcadero.delphi.winsock 1874 articles. 2 followers. Follow

5 Replies
2694 Views

Similar Articles

[PageSpeed] 50

Graeme wrote:

> Once I have the list of attachment file names, what is the best way
> (or any way) to download and store the actual attachments.

Are you having a problem with the code you already have?  You need to be 
more specific.  It should work as you showed it.

IMAP is a very complex protocol with a lot of features.  One of those features 
is the ability to retreive the structure of an email and then access the 
individual parts of the email without having to access the entire email as 
a whole.  If you are just interested in attachments, you can use UIDRetrieveStructure() 
followed by UIDRetrievePart() to get the attachment data by itself.

> if mbMsgP.MessageParts[liCount] is TIdAttachmentFile then

You should check for the TIdAttachment base class generically instead of 
the TIdAttachmentFile derived class specifically.  It is possible to download 
attachments into another class, like TIdAttachmentMemory, and not all attachment 
are guaranteed to have a filename anyway.

> // Download attachment file to local drive...
> // What goes in here to save the file?

TIdAttachment has public SaveToStream() and SaveToFile() methods.  Alternatively, 
you can use the public OpenLoadStream() and CloseLoadStream() methods if 
you want direct access to the attachment's data.

--
Remy Lebeau (TeamB)
0
Remy
12/3/2012 4:50:07 PM
> {quote:title=Remy Lebeau (TeamB) wrote:}{quote}
> Graeme wrote:
> 
> > Once I have the list of attachment file names, what is the best way
> > (or any way) to download and store the actual attachments.
> 
> Are you having a problem with the code you already have?  You need to be 
> more specific.  It should work as you showed it.

Yes, it works as far as it goes (ie obtaining a name of the attached file), as well as all the other text parts I need. 


> 
> IMAP is a very complex protocol with a lot of features.  One of those features 
> is the ability to retreive the structure of an email and then access the 
> individual parts of the email without having to access the entire email as 
> a whole.  If you are just interested in attachments, you can use UIDRetrieveStructure() 
> followed by UIDRetrievePart() to get the attachment data by itself.
> 
> > if mbMsgP.MessageParts[liCount] is TIdAttachmentFile then
> 
> You should check for the TIdAttachment base class generically instead of 
> the TIdAttachmentFile derived class specifically.  It is possible to download 
> attachments into another class, like TIdAttachmentMemory, and not all attachment 
> are guaranteed to have a filename anyway.
> 

I'll use TIdAttachment now. I haven't found any examples of code for downloading files using IMAP4  (plenty for uploading) and mistakenly thought maybe you'd need the name to locate it on the server or something. However, I think you still need the file name so that you can use the same file extension when saving it. All the examples of attachment parts I have found in testing did actually have a name and an extension showing what kind of file it was. For my purposes I'll ignore attachments which don't ha
ve a file name set.

> > // Download attachment file to local drive...
> > // What goes in here to save the file?
> 
> TIdAttachment has public SaveToStream() and SaveToFile() methods.  Alternatively, 
> you can use the public OpenLoadStream() and CloseLoadStream() methods if 
> you want direct access to the attachment's data.
> 
> --
> Remy Lebeau (TeamB)

Thanks Remy - I'll let you know how I go.
0
Graeme
12/3/2012 10:25:39 PM
> {quote:title=Graeme Martin wrote:}{quote}
> > {quote:title=Remy Lebeau (TeamB) wrote:}{quote}
> > Graeme wrote:
> > 
> > > Once I have the list of attachment file names, what is the best way
> > > (or any way) to download and store the actual attachments.
> > 
> > Are you having a problem with the code you already have?  You need to be 
> > more specific.  It should work as you showed it.
> 
> Yes, it works as far as it goes (ie obtaining a name of the attached file), as well as all the other text parts I need. 
> 
> 
> > 
> > IMAP is a very complex protocol with a lot of features.  One of those features 
> > is the ability to retreive the structure of an email and then access the 
> > individual parts of the email without having to access the entire email as 
> > a whole.  If you are just interested in attachments, you can use UIDRetrieveStructure() 
> > followed by UIDRetrievePart() to get the attachment data by itself.
> > 
> > > if mbMsgP.MessageParts[liCount] is TIdAttachmentFile then
> > 
> > You should check for the TIdAttachment base class generically instead of 
> > the TIdAttachmentFile derived class specifically.  It is possible to download 
> > attachments into another class, like TIdAttachmentMemory, and not all attachment 
> > are guaranteed to have a filename anyway.
> > 
> 
> I'll use TIdAttachment now. I haven't found any examples of code for downloading files using IMAP4  (plenty for uploading) and mistakenly thought maybe you'd need the name to locate it on the server or something. However, I think you still need the file name so that you can use the same file extension when saving it. All the examples of attachment parts I have found in testing did actually have a name and an extension showing what kind of file it was. For my purposes I'll ignore attachments which don't 
have a file name set.
> 
> > > // Download attachment file to local drive...
> > > // What goes in here to save the file?
> > 
> > TIdAttachment has public SaveToStream() and SaveToFile() methods.  Alternatively, 
> > you can use the public OpenLoadStream() and CloseLoadStream() methods if 
> > you want direct access to the attachment's data.
> > 
> > --
> > Remy Lebeau (TeamB)
> 
> Thanks Remy - I'll let you know how I go.

All works OK, for example like:

        if mbMsgP.MessageParts[liCount] is TIdText then
        begin
          Memo1.Lines.AddStrings((mbMsgP.MessageParts[liCount] as TIdText).Body);
        end
        else
        begin
          if mbMsgP.MessageParts[liCount] is TIdAttachment then
          begin
            if  mbMsgP.MessageParts[liCount] is TIdAttachmentFile then
            begin 
              fName := TIdAttachmentFile(mbMsgP.MessageParts.Items[liCount]).Filename;
              if fName <> ''
                fName := selectedFolder + fName
              else
                fName := selectedFolder + defaultFilename;
              TIdAttachmentFile(mbMsgP.MessageParts.Items[liCount]).SaveToFile(fName);
            end
            else
            begin
               Memo1.Lines.Add('Attachment ignored - Not recognised as a file');
            end;
          end;
        end;

(Originally, I was thinking it was much more complicated than it really is)

Thank you for your help.
0
Graeme
12/3/2012 11:05:45 PM
Graeme wrote:

> Yes, it works as far as it goes (ie obtaining a name of the attached
> file), as well as all the other text parts I need.

So what is the actual problem you are having?

> I haven't found any examples of code for downloading files using IMAP4
> (plenty for uploading) and mistakenly thought maybe you'd need the
> name to locate it on the server or something.

No.  Downloading emails is no different than using TIdSMTP, at least when 
using TIdMessage to receive the data.

> However, I think you still need the file name so that you can use the same
> file extension when saving it.

When you save it, you choose the filename to save to.  You can use whatever 
you want.  If an attachment has a filename assignd to it, then of course 
you can use it as-is.  Otherwise, you can also just create own own filename. 
 TIdAttachment derives from TIdMessagePart, which has a FileName property 
that is not tied to the type of message part it is (attachments are not required 
to have filenames, and text parts can have filenames).

--
Remy Lebeau (TeamB)
0
Remy
12/4/2012 12:01:54 AM
Graeme wrote:

> if  mbMsgP.MessageParts[liCount] is TIdAttachmentFile then

You don't need to check for TIdAttachmentFile.  The TIdAttachment hierarchy 
is just a storage mechanism.  TIdAttachmentFile, TIdAttachmentMemory, etc 
- they are just a means of *YOU* choosing how *YOU* want attachment stored 
on *YOUR* machine.  It has nothing to do with whether an attachment in an 
email represents a file or not, because *ALL* attachments represent files. 
 So just get rid of that type check:

{code:delphi}
if mbMsgP.MessageParts[liCount] is TIdText then
begin
  Memo1.Lines.AddStrings(TIdText(mbMsgP.MessageParts[liCount]).Body);
end
else if mbMsgP.MessageParts[liCount] is TIdAttachment then
begin
  fName := ExtractFileName(TIdAttachment(mbMsgP.MessageParts.Items[liCount]).FileName);
  if fName = '' then fName := defaultFilename;
  TIdAttachment(mbMsgP.MessageParts.Items[liCount]).SaveToFile(selectedFolder 
+ fName);
end;
{code}

--
Remy Lebeau (TeamB)
0
Remy
12/4/2012 12:07:21 AM
Reply:

Similar Artilces:

access violation when trying to attach a file in Delphi / Indy
Hello - I'm using Delphi 2010 and Indy 10.5.5 and I'm sending an email using the following: {code} uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComObj, ShellApi, Grids, AdvObj, BaseGrid, AdvGrid, IdMessage, IdMessageParts, IdSMTP, IdTCPConnection, IdTCPClient, IdComponent, IdExplicitTLSClientServerBase, IdMessageClient, IdSMTPBase, IdBaseComponent, IdAttachment, IdAttachmentFile, IdIOHandler, IdIOHandlerSocket, IdIOHandlerStack, IdSSL, IdSSLOpenSSL; procedure SendEmail(addressee,full_file : string); var subject_string : string; IdSMTP1: TIdSmtp; IdMessage1: TIDMessage; begin Form1.IdSMTP1 := TIdSMTP.Create; Form1.IdMessage1 := TIdMessage.Create; Form1.IdMessage1.Clear; Form1.IDMessage1.From.Name := 'Your Friend'; Form1.IDMessage1.From.Address := ....; Form1.IdSMTP1.Host := ....; Form1.IdSMTP1.Port := 587; Form1.IdSMTP1.AuthType := satDefault; Form1.IdSMTP1.Username := ....; Form1.IdSMTP1.Password := .....'; Form1.IdMessage1.Recipients.EMailAddresses := addressee'; Form1.IdMessage1.Subject := 'Hello There' ; Form1.IdMessage1.Body.Text := 'Hello '; try TIdAttachmentFile.Create(IdMessage1.MessageParts, full_file); Form1.IdSMTP1.Connect; Form1.IdSMTP1.Authenticate; try Form1.IdSMTP1.Send(Form1.IdMessage1); finally Form1.IdSMTP1.Disconnect; end; finally Form1.IdMessage1.Free; Fo...

Converting Delphi 2007 Indy 10.2.3 to Delphi 2009 Indy 10.5.5 [Edit]
Hello, I am currently attempting to port over a Delphi 2007 project that uses Indy 10.2.3 (very successfully) to Delphi 2009 and Indy 10.5.5 (I just got the latest development build this morning). I think I am running into an encoding issue, but am not sure. Specifically, IDHTTP with SSL calls an old CGI and the CGI returns a .zip file and I then save it to the disk. In 2007 and before this worked perfectly. In 2009, it is not. Here is the examples of the 2 different results (though cut way short in the post) I am getting back: 2007: 'PK'#3#4#$14#0#0#0#8#0'rLQ9žrPb€'#0...

How to use a delphi XE3 obj file in delphi 2007?
Hi, I'm migrating an application from delphi 2007 to delphi XE3 and I would like to do it in several steps. To do this I need to use a part of my new code (XE3) in the current delphi 2007 application. So I want to use the .obj file from my XE3 file. I know I have to use the {$L 'Filename'} and I know that I have to declare the functions that I want to use in external in my D2007 project. I wanted to make an easy and simple example to see how it works with only 1 function 'hello world' compiled in obj with XE3 but I can't find the way to use it in D2007. In D200...

Delphi and Delphi for .Net
It seems that Delphi for .Net is slower than Delphi Win32 native applicaiton. I would like to know is it true all .Net application is slower than Win32 native applicaiton or it is Delphi for .Net only. Your information is great appreciated, Inung On 2011-06-21 18:20:17 +0100, Inung Huang said: > It seems that Delphi for .Net is slower than Delphi Win32 native applicaiton. > I would like to know is it true all .Net application is slower than > Win32 native applicaiton or it is Delphi for .Net only. If you are only running the code in the application once then, yes, yo...

Indy IdHMACSHA1 different results in Delphi 2007 and Delphi 2009
Hello newsgroup A test of the IdHMACSHA1 encryption method shows different results, and I am not sure if there is an error in my code or in the Indy code shipped with Delphi 2009. The Delphi 2007 version works in an application which communicates with Amazon Web Services and so it seems to be the correct one. Any suggestions are very welcome, maybe I just need to download a newer version of Indy? program Test; {$APPTYPE CONSOLE} uses IdHMACSHA1, IdCoderMIME, IdGlobal, SysUtils; function Base64Encode(const Input: string): string; begin Result := TIdEncode...

I need help:File CodeGear.Delphi.Targets dammaged in Delphi X2
Hello My computer has a crash and the file CodeGear.Delphi.Targets was dammaged. Delphi open but I can not compile anything. other files recovered but Windows Backup Center does no save this filetype .Targets (pay attention!) Can someone send my privatelly this file or say me where I can download it. It's Delphi X2 update 4 I tried delphi X2 repair but it gives me error Thank you. Joan Galí GTV Barcelona-Europe Solved reinstalling Delphi. El 30/06/2014 13:51, Joan Gali ha escrit: > Hello > My computer has a crash and the file CodeGear.Delphi.Targets...

I need help:File CodeGear.Delphi.Targets dammaged in Delphi X2
Hello My computer has a crash and the file CodeGear.Delphi.Targets was dammaged. Delphi open but I can not compile anything. other files recovered but Windows Backup Center does no save this filetype .Targets (pay attention!) Can someone send my privatelly this file or say me where I can download it. It's Delphi X2 update 4 I tried delphi X2 repair but it gives me error Thank you. Joan Galí GTV Barcelona-Europe Solved reinstalling Delphi. El 30/06/2014 13:51, Joan Gali ha escrit: > Hello > My computer has a crash and the file CodeGear.Delphi.Targe...

superreview requested: [Bug 243324] Download manager fails to close with files that download very quickly (small files / cached files) : [Attachment 164976] check closeWhenDone pref before opening do
Son Le <lesx99@lycos.com> has asked Ben Goodger <bugs@bengoodger.com> for superreview: Bug 243324: Download manager fails to close with files that download very quickly (small files / cached files) https://bugzilla.mozilla.org/show_bug.cgi?id=243324 Attachment 164976: check closeWhenDone pref before opening download window (v3) https://bugzilla.mozilla.org/attachment.cgi?id=164976&action=edit ...

superreview cancelled: [Bug 243324] Download manager fails to close with files that download very quickly (small files / cached files) : [Attachment 164720] check closeWhenDone pref before opening do
Son Le <lesx99@lycos.com> has cancelled Son Le <lesx99@lycos.com>'s request for superreview: Bug 243324: Download manager fails to close with files that download very quickly (small files / cached files) https://bugzilla.mozilla.org/show_bug.cgi?id=243324 Attachment 164720: check closeWhenDone pref before opening download window (v2) https://bugzilla.mozilla.org/attachment.cgi?id=164720&action=edit ...

superreview cancelled: [Bug 243324] Download manager fails to close with files that download very quickly (small files / cached files) : [Attachment 164976] check closeWhenDone pref before opening do
Son Le <lesx99@lycos.com> has cancelled Son Le <lesx99@lycos.com>'s request for superreview: Bug 243324: Download manager fails to close with files that download very quickly (small files / cached files) https://bugzilla.mozilla.org/show_bug.cgi?id=243324 Attachment 164976: check closeWhenDone pref before opening download window (v3) https://bugzilla.mozilla.org/attachment.cgi?id=164976&action=edit ...

superreview requested: [Bug 243324] Download manager fails to close with files that download very quickly (small files / cached files) : [Attachment 164720] check closeWhenDone pref before opening do
Son Le <lesx99@lycos.com> has asked Ben Goodger <bugs@bengoodger.com> for superreview: Bug 243324: Download manager fails to close with files that download very quickly (small files / cached files) https://bugzilla.mozilla.org/show_bug.cgi?id=243324 Attachment 164720: check closeWhenDone pref before opening download window (v2) https://bugzilla.mozilla.org/attachment.cgi?id=164720&action=edit ...

SEPA components for Delphi with Source Code (Delphi 5
Hi all, in the european union change next year the Bankingformat to the SEPA Format. All peoples and companies must change the bankingssoftware and the costumer data form acountnummers in the new IBAN and BIC numbers. See: http://www.arma-it.de/shop/artikelueber.php?wgruppeid=211&wgruppe_offen=211 Functions: - generate SEPA XML'S - Calc IBAN - BIC Database (DE,AT and CH) Questions: vertrieb@arma-it.de PS: Bankinssoftware for Develpoers (Germany only) http://www.arma-it.de/shop/artikelueber.php?wgruppeid=212&wgruppe_offen=212 El 26/10/13 21:38, A...

Delphi 7 to Delphi XE
Have been using Delphi 7 for many moons ( have got later versions but never upgraded to ) My first problem is: Component Palette. in XE it is a small toolbar docked in top right in Delphi 7 it gives a large view of all the components. I am struggling to be able to cope/access my components.in Delphi XE. Can I make the component pallette tool bar the same size as Delphi 7, or is there a fast way to view/choose all available components in XE, that I have not spotted yet? Kind Regards, Robert. Hi, What I know is that in Delphi 2010 and XE you can choose between t...

Delphi 5 to Delphi 6 and up
Dear List, Trying to add 7Zip compression support to my delphi application. I am using the ported 7Zip sdk (see their website, they have a link). I am stumped on how to rewrite a single function: function ReverseDecode(var Models: array of SmallInt; ....): ..... where the input is mostly a fixed size array of SmallInt. This code perfectly compiles and functions in Delphi 6 and up, but in Delphi 5 I get the error: There is no overloaded version of 'ReverseDecode' that can be called with these arguments And obviously, the input (fixed) isn't the same as the param definition (dynamic sized). However, my question is just as obvious: How do I rewrite this function so it will behave correctly in Delphi 5? (If this is even possible) I hope I don't have to overload it to something like: function ReverseDecode(var Models: array[0..xxx] of SmallInt....... Thanks in advance for any assistance, Rory Rory Slegtenhorst wrote: > Dear List, > > Trying to add 7Zip compression support to my delphi application. > I am using the ported 7Zip sdk (see their website, they have a link). > > I am stumped on how to rewrite a single function: > > function ReverseDecode(var Models: array of SmallInt; ....): ..... > > where the input is mostly a fixed size array of SmallInt. > This code perfectly compiles and functions in Delphi 6 and up, but in > Delphi 5 I get the error: There is no overloaded version...

Delphi 5 To Delphi 2009
I upgraded to Delphi 2009 from D5. The install says I can install Delphi and/or C++. Delphi installed OK but I see nothing of C++. What am I missing or does my upgrade not include C++? Thanks It depends on what you bought. If you bought Delphi 2009 only, that's what you get. If you bought Delphi 2009 and C++ Builder 2009 you get both. My guess is you got Delphi 2009 only. The simplest way to verify is look your invoice - it should say I would think. You could also go to members.embarcadero.com, login, then click on my registered products. There will be a textual description of...

Delphi 4 to Delphi 2007
Hello, I will have to port a D4 application (with source) to D2007. what kind of problem could I face ? I will have to go to customer site tommorow to analyse its source code to quote the work, what should I care of to hestimate the porting time ? Thanks John Terry wrote: > Hello, > I will have to port a D4 application (with source) to D2007. > what kind of problem could I face ? > I will have to go to customer site tommorow to analyse its source code > to quote the work, what should I care of to hestimate the porting time ? You can probably do it by just changi...

Delphi and virus, or virus and Delphi.
Hi all. There is some discussion about a 'new' virus, that targets Delphi (and developers). The article is in danish: <http://www.version2.dk/artikel/11833-delphi-udviklere-jages-af-ny-type-malware> but refers to this article: <http://news.cnet.com/8301-27080_3-10312628-245.html> From the Danish article POV, it seems like Delphi itself is vunerable, which is not true. As far as i can see, is the attack vector, injection of (source) code in the 'Sysconst' unit. What's going on? -- Best regards Stig Johansen Perhaps checking other thre...

from delphi 6 to delphi 2010
Hi. It is possible, with component RX, dxforumlibrary, InfoPower3000Pro, StringAlignGrid. Accepts communication BDE. Thank by comments. excequiel arostica wrote: >Hi. > It is possible, with component RX, dxforumlibrary, >InfoPower3000Pro, StringAlignGrid. Accepts communication BDE. > >Thank by comments. Rx is dead and sources are taken over by jcl/jvcl. I dont know about the rest of the components and i have no experiences with bde over the last 9 years. excequiel arostica wrote: > Hi. > It is possible, with component RX, dxforumlibrary,...

Delphi 5 to Delphi XE4
Thinking about making the conversion. Of course we have numerous components such as: TurboPower AsyncPro, TurboPower Orpheus ICS2 Synactis All-In-The-Box. You guys have any advice as to the effort and time it may possibly take. It is a large application, several hundred thousand lines. And that's what happens when using third party components, a lot of extra work. I have been burned a few times. I now minimize the use to a few well known suppliers, like TMS. I have "banned" a lot of other components. Regards, Ole > > Thinking about making the conver...

Delphi XE / Delphi 2010
Hello! I noticed that Embarcadero® Delphi® 2010 Version is not on the list of products on Embarcadero page. Or is it still possible to buy it? Will RAD Studio XE compile programs written in Delphi 2010 without problems.? Thanks. Am 13.09.2010 09:04, schrieb Petra Nemec: > Will RAD Studio XE compile programs written in Delphi 2010 without problems.? As always you will probably have to recreate the projects as the import is still a bit -- special. Christian Hello! Does anybody know if it is still possible to get a Delphi2010 trial version (if yes where)? ...

Delphi for PHP or Delphi PRISM
Hi, I have the opportunity to develop a web-based library management system. Nothing fancy, just being able to do the usual CRUD stuff for books and provide a search facility. Borrowing is to be done via an email request to the library admin who then sends out the book(s). Since both Delphi for PHP and Delphi PRISM will enable me to develop the app, which one will allow me to deliver it in less time and also increase (even how small) my marketability as a web developer? Thanks. Phillip Flores Phillip Flores wrote: > Hi, > > I have the opportunity to develop a...

Delphi 2007 to Delphi 7
I've written a class in Delphi 2007 that is not supported in Delphi 7. What would be the best way to achive what I've done in Delphi 2007 in Delphi 7? Thanks, Tom type BondConstants = class { Bond Types } type BondType = record const TREASURY = 3; AGENCY = 0; CORP = 1; MUNI = 2; SBA = 5; MBS = 4; CMO = 6; end; { Day Count Methods } type DayCount = record const ACTUAL_360 = 2; ACTUAL_365 = 1; ACTUAL_ACTUAL = 1; d30_360 = 0; ...

Delphi 7 to Delphi XE2
Hi, Still using that old workhorse, Delphi7, but am going to the conference in London hosted by Embarcadero on Delphi XE2. Although I would like to "move with the times" and am keen to get the UNICODE and 64-bit support offered by the latest IDEs, I confess to being more than a little scared about all the UNICODE/String/AnsiString and 32/64 bit issues I'm probably going to fall over. Anyone recently upgraded from Delphi7 to one of the latest Delphi IDEs? Thanks, Alain On 03/02/2012 08:55, Alain Dekker wrote: > Still using that old workhorse, Delphi7, but am going to the conference in > London hosted by Embarcadero on Delphi XE2. > > Although I would like to "move with the times" and am keen to get the > UNICODE and 64-bit support offered by the latest IDEs, I confess to being > more than a little scared about all the UNICODE/String/AnsiString and 32/64 > bit issues I'm probably going to fall over. Anyone recently upgraded from > Delphi7 to one of the latest Delphi IDEs? I recently upgraded a sizeable (Paradox) app from D3 to XE2 and was pleasantly surprised. About 20-30 hours once I understood how XE2 works. Andrew -- Andrew Gabb email: agabb@tpgi.com.au Adelaide, South Australia phone: +61 8 8342-1021 ----- Recently moved a lexicographic application from D2007 to XE2 with little pain. As you would imagine, it is heavily string-based, with much use of TStringLists, cuttin...

Delphi 4 to Delphi 2009
Hello, Thanks to all who answered my previous question. That was a great help. And atlast our client agreed to upgrade our delphi version from 4 to Delphi 2009. *Sigh*. But before that, I need to give the estimation and cost regarding the migration to delphi 2009. Can anyone tell me is there any tool to migrate from delphi 4 to delphi 2009 or just I need to compile our Delphi 4 application in Delphi 2009. I have read from the delphi 2009 feature matrix that Delphi 1 through Delphi 2007 import is possible in delphi 2009. But i am not that sure considering the size of our application. ...

Web resources about - How do I download attachment file with Delphi Indy TIdIMap4 - embarcadero.delphi.winsock

Attachment in adults - Wikipedia, the free encyclopedia
Attachment in adults deals with the theory of attachment in adult romantic relationships. Attachment theory was extended to adult romantic relationships ...

Facebook Allowing Page Admins To ‘Refresh Share Attachment?’
Facebook appears to have given page administrators the option of refreshing links that they share in posts on their pages . continued... New ...

Chronik-Fotos - Mama Bean - Unconditional Attachment - Facebook
Graphic design students at the University of North Texas asked this inspiring mama, Monica, to be the face of their ad campaign. The campaign ...

New Facebook Messages Only Provides an Online Attachment Viewing Feature for Microsoft Docs
In another move highlighting Facebook’s strategic relationship with investor Microsoft, the company has given the established office software ...

Documents.me - Documents from remote PC, MAC, Gmail attachments, Google Drive & Dropbox Docsync for iPad ...
Get Documents.me - Documents from remote PC, MAC, Gmail attachments, Google Drive & Dropbox Docsync on the App Store. See screenshots and ratings, ...

A bullet attachment that could save lives? - YouTube
It looks like a toy attachment for a gun, but this new device is intended to give suspects a chance to live if shot. CNN's Sara Sidner reports. ...

Invention of the Day: New ‘Alternative’ Gun Attachment May Prevent Shooting Deaths
The Ferguson Police Department is testing out a new device which they think might help prevent unnecessary shooting deaths. “The Alternative” ...

100th anniversary of Anzac landings brings home strong attachments
The commemoration of the 100th anniversary of the Anzac landings draws our attention to events that so many of us have a strong attachment to. ...

iPhones - Is Our Attachment To Smartphones A Bad Thing?
They cater to our basic human hunger for connection, so is our attachment to mobiles such a bad thing?

Apple not encrypting email attachments in iOS 7, security researcher claims
Apple's Mail app in iOS 7 is failing to encrypt email attachments, leaving user data vulnerable to hackers, a security researcher claims.

Resources last updated: 3/17/2016 9:15:13 AM