Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.01.2013, 21:45   #11
vovken1997
Дружелюбный
Форумчанин
 
Аватар для vovken1997
 
Регистрация: 23.02.2012
Сообщений: 692
По умолчанию

Спасибо!
Начал читать.

Просто вопрос сложился. Чем мой код принципиально отличается от кода Slym'а??? Зачем нужно было
Цитата:
type
PMailBox=^TMailBox;
TMailBox=record
Pop3:TidPOP3;
Smtp:TidSMTP;
Data:string;
end;
Для чего продублировались функции
Цитата:

function MailBoxCreate:PMailBox;
procedure MailBoxFree(MailBox:PMailBox);
function MailBoxGetData(MailBox:PMailBox;Buf :PChar;BufLength:integer):integer;
function SetPop3Params(MailBox:PMailBox;Host ,Username,Password:PChar):boolean;
function SetSmtpParams(MailBox:PMailBox;Host ,Username,Password:PChar):boolean;
function MailBoxReadMessageCount(MailBox:PMa ilBox):integer;
function MailBoxReadMessage(MailBox:PMailBox ;ID:integer):boolean;

implementation
const
DllName = 'Project1.dll';

function MailBoxCreate:PMailBox;external DllName;
procedure MailBoxFree(MailBox:PMailBox);exter nal DllName;
function MailBoxGetData(MailBox:PMailBox;Buf :PChar;BufLength:integer):integer;e xternal DllName;
function SetPop3Params(MailBox:PMailBox;Host ,Username,Password:PChar):boolean;e xternal DllName;
function SetSmtpParams(MailBox:PMailBox;Host ,Username,Password:PChar):boolean;e xternal DllName;
function MailBoxReadMessageCount(MailBox:PMa ilBox):integer;external DllName;
function MailBoxReadMessage(MailBox:PMailBox ;ID:integer):boolean;external DllName;
И для чего необходимо разделение кода на савсем пустяковые процедуры в три строки???

Не знаю почему, но код выглядит профессиональней чем мой. Правдо я половину нововедённых функций не понимаю. type пользуюсь раз в пол года.

Этому сами учатся, или кто то учит и есть строго прописанные правила написания кода???
-==ЛЮБОЕ ЗНАНИЕ ДОСТИГАЕТСЯ ТОЛЬКО СОБСТВЕННЫМИ УСИЛИЯМИ!!!==-
vovken1997 вне форума Ответить с цитированием
Старый 12.01.2013, 10:01   #12
3D Hunter
Сумрачная тень
Форумчанин
 
Аватар для 3D Hunter
 
Регистрация: 05.03.2009
Сообщений: 689
По умолчанию

вы должны твои прийти к самоосмыслению кода.со временем вырабатывается свой стиль,который меняется путем изучения чужих исходников,где можно увидеть новые для себя моменты и подумать,как их выгодно применить в своем коде.нужна постоянная практика.
"ковыряю изнутри" (с)
3D Hunter вне форума Ответить с цитированием
Старый 12.01.2013, 15:38   #13
vovken1997
Дружелюбный
Форумчанин
 
Аватар для vovken1997
 
Регистрация: 23.02.2012
Сообщений: 692
По умолчанию

Спасибо!
Попробую поработать над своим кодом сам. Если не получится воспользуюсь тем что есть.
-==ЛЮБОЕ ЗНАНИЕ ДОСТИГАЕТСЯ ТОЛЬКО СОБСТВЕННЫМИ УСИЛИЯМИ!!!==-
vovken1997 вне форума Ответить с цитированием
Старый 12.01.2013, 18:38   #14
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

есть парадигма: где породил там и убей! особенно в разных модулях и разных менеджерах памяти.
string - сложный тип, с автоматическим временем жизни и этот автомат перестает правильно работать при общении с DLL... приходится использовать либо менеджер памяти либо более простые типы как PChar

MailBoxCreate - создание некого объекта почтового ящика
MailBoxFree - его убийство
SetPop3Params, SetSmtpParams - выставление параметров
MailBoxGetData - запрос текстовых данных по последней операции.
а дальше пошли функции чтения записи почты
Не стесняемся, плюсуем!
Slym вне форума Ответить с цитированием
Старый 12.01.2013, 18:46   #15
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

процедуры в три строки нужны чтоб избежать вот этого
function messag_read(host:PChar;Port:integer ;login,password,Buf:PChar;BufLength :integer):integer;
6 параметров многовато для читаемости...

кроме того
твой код: 1 операция - одна сессия с сервером
мой код: несколько операций - одна сессия с сервером, что быстрее и правильнее
Не стесняемся, плюсуем!
Slym вне форума Ответить с цитированием
Старый 12.01.2013, 23:03   #16
vovken1997
Дружелюбный
Форумчанин
 
Аватар для vovken1997
 
Регистрация: 23.02.2012
Сообщений: 692
По умолчанию

У меня пишет что не может найти idText.dcu. Поискал этот файл по всему компу, результатов не найдено. Скиньте пожайлуста.

И под какую делфи вы пиcали код???
-==ЛЮБОЕ ЗНАНИЕ ДОСТИГАЕТСЯ ТОЛЬКО СОБСТВЕННЫМИ УСИЛИЯМИ!!!==-
vovken1997 вне форума Ответить с цитированием
Старый 13.01.2013, 09:54   #17
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

А КАК ТВОЙ ПЕРВЫЙ КОД КОМПИЛИЛСЯ?
там тоже idText используется

D7
Не стесняемся, плюсуем!
Slym вне форума Ответить с цитированием
Старый 13.01.2013, 09:56   #18
3D Hunter
Сумрачная тень
Форумчанин
 
Аватар для 3D Hunter
 
Регистрация: 05.03.2009
Сообщений: 689
По умолчанию

переходите на synapse. ИМХО,лучшая библиотека сокетов.все просто и понятно.даже примеры кода есть.
"ковыряю изнутри" (с)
3D Hunter вне форума Ответить с цитированием
Старый 13.01.2013, 11:12   #19
vovken1997
Дружелюбный
Форумчанин
 
Аватар для vovken1997
 
Регистрация: 23.02.2012
Сообщений: 692
По умолчанию

У меня в uses idText не был прописан. Как он там используется???
-==ЛЮБОЕ ЗНАНИЕ ДОСТИГАЕТСЯ ТОЛЬКО СОБСТВЕННЫМИ УСИЛИЯМИ!!!==-
vovken1997 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Критические секции tcriticalsection Dеlphi Общие вопросы Delphi 5 11.10.2011 19:45
Критические секции coNsept Общие вопросы C/C++ 7 09.09.2011 00:54
критические точки alex_pm Помощь студентам 1 05.05.2011 00:52
Критические секции в Linux Sparky Помощь студентам 2 28.05.2010 08:33
Критические секции Altera Общие вопросы Delphi 2 25.12.2009 10:45