Как сделать калькулятор в Delphi?

Delphi - объектно-ориентированный язык программирования, разработанный компанией Borland в 1995 году. Он основан на языке программирования Pascal, но имеет более расширенные возможности и добавлены новые функции.

Как Delphi реализует многоплатформенную разработку?

Delphi является интегрированной средой разработки (IDE), которая позволяет разрабатывать программное обеспечение для различных платформ, включая Windows, macOS, Android и iOS. Delphi достигает многоплатформенности с помощью...

Отправлять электронную почту

Советы » E-mail » Отправлять электронную почту

В D5 Вы можете попробовать использовать компоненты TNMSMTP и TNMPOP3,

в D6 и Kylix компоненты от NetMasters заменены компонентами Indy.

Алгоритм простой (для сторонних компонентов он принципиально ничем не отличается):

  • необходимо заполнить структуру PostMessage;
  • отправить эту структуру при помощи метода SendMail.

Структура PostMessage:

  • (*) FromName: string - имя отправителя;
  • FromAddress: string - Почтовый адресс отправителя
  • ReplyToAddress: string - Адрес, по которому следует ответить на письмо;
  • Organization: string
  • LocalProgram: string - Имя почтовой программы отправителя;
  • (*) ToAddress: TStringList - Почтовый адрес главного получателя (ей)
  • ToCC: TStringList - Список получателей Carbon Copy
  • ToBCC: TSringList - Список получателей Blind Carbon Copy
  • Attachments: TStringList - Список вложений
  • Body: TStringList - Собственно текст письма
  • Subject: string - Строка темы письма.

(*) - помечены обязательные поля. С остальным не сложно разобраться самому.

Также это можно сделать при помощи MAPI.

Т.е. письмо будет отправлено средствами _почтовой_программы_по_умолчанию_ - со всеми недостатками :) (например письмо будет помещено в папку "отправленные"). Зато без всяких там компонент и просто :)

Hиже готовая функция, в которой:

  • From - от кого
  • Dest - кому
  • Subject - тема
  • Text - текст письма
  • FileName - путь к вложению (если '', то соответственно ничего и не вкладываем)
  • Outlook - показывать или нет письмо перед отправкой (в твоём случае False)
Uses

MAPI; ... function

SendMail(const

From, Dest, Subject, Text, FileName: PChar; Outlook: boolean):Integer; var

Message

: TMapiMessage; Recipient, Sender: TMapiRecipDesc; File_Attachment: TMapiFileDesc; function

MakeMessage: TMapiMessage; begin

FillChar(Sender, SizeOf(Sender), 0); Sender.ulRecipClass := MAPI_ORIG; Sender.lpszAddress := From; FillChar(Recipient, SizeOf(Recipient), 0); Recipient.ulRecipClass := MAPI_TO; Recipient.lpszAddress := Dest; FillChar(File_Attachment, SizeOf(File_Attachment), 0); File_Attachment.nPosition := Cardinal(-1); File_Attachment.lpszPathName := FileName; FillChar(Result, SizeOf(Result), 0); with

Message

do

begin

lpszSubject := Subject; lpszNoteText := Text; lpOriginator := @Sender; nRecipCount := 1; lpRecips := @Recipient; nFileCount := 1; lpFiles := @File_Attachment; end

; end

; var

SM: TFNMapiSendMail; MAPIModule: HModule; MAPI_FLAG: Cardinal; begin

if

Outlook then

MAPI_FLAG:=MAPI_DIALOG else

MAPI_FLAG:=0; MAPIModule := LoadLibrary(PChar(MAPIDLL)); if

MAPIModule = 0 then

Result := -1 else

try

@SM := GetProcAddress(MAPIModule, 'MAPISendMail'); if

@SM <> nil

then

begin

MakeMessage; Result := SM(0, Application.Handle, Message

, MAPI_FLAG, 0); end

else

Result := 1; finally

FreeLibrary(MAPIModule); end

; end

;

Другое по теме:

Категории

Статьи

Советы

Copyright © 2024 - All Rights Reserved - www.delphirus.com