2

を参照する以下のコードで問題が発生していますStoredPathName。Indy 10はを使用しないためStoredPathName、このコードを変更してV9からV10に調整する方法がわかりません。以下のコードは私が書いたものではなく、このタイプのコードに関してはまだ初心者なので、可能であれば問題を修正する方法を示すコード例をいただければ幸いです。

vlist:TStringList;

...
for j:=numEmails downto 1 do
  begin
    Msg.Clear;
    Retrieve(j,Msg);

    for k:=0 to Msg.MessageParts.Count-1 do
      with Msg.MessageParts[k] do
        if Msg.messageParts[k] is TIdAttachmentFile then
          begin
            //Get the name of the file that was sent.
            aname := TIdAttachmentFile(Msg.MessageParts[k]).FileName;

            if SameText(aname,ExtractFilename(PacketFilename))
            and FileExists(Longfilename(StoredPathName)) then
              begin
                //Read attachment and do call-back if defined.
                vlist.LoadfromFile(LongFilename(StoredPathName));

                if assigned(OnReceive) then
                  OnReceive;
              end
          end;
  end;

Disconnect;

except
  on E:Exception do
    result := E.Message;
end;

また、もう1つのコードは... Connect(9000); 9000は許可された引数ではなかったので、次のように変更しましたConnect;

4

1 に答える 1

1

StoredPathName は、TIdMessagePart から TIdAttachmentFile に移動されたプロパティです。上部で型キャストを行うようにコードを変更すると、すべて機能するはずです。

これを変える:

  with Msg.MessageParts[k] do
    if Msg.messageParts[k] is TIdAttachmentFile then

に:

  if Msg.messageParts[k] is TIdAttachmentFile then
    with TIdAttachmentFile(Msg.MessageParts[k]) do
于 2012-07-03T19:23:19.750 に答える