Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


Информационный Канал Subscribe.Ru

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 381
от 10.02.2006, 05:36

Администратор:Калашников О.А.
В рассылке:Подписчиков: 252, Экспертов: 52
В номере:Вопросов: 5, Ответов: 11


Вопрос № 34720: Помогите, пожалуйста, разобраться, в чем ошибка. Пробую использовать свою DLL библиотеку (код ниже), компилируется нормально, Но как правильно в приложении вызывать не знаю. При работе приложения функции вызываться, но при завершении выда...
Вопрос № 34729: Уважаемые эксперты ответьте на такие вопросы: 1) как из программы на дельфи или из командной строки запустить удаленный доступ к сети; 2) как из программы на дельфи проверить есть ли в данный момент соединение с Интернетом; 3) посоветуйте программу т...
Вопрос № 34746: Здоровенько! Как создать программу, чтобы при нажатии на Button1 она загружала в Memo1 текстовый файл по адресу: http://www.myserver.com/news.txt?...
Вопрос № 34756: Здравствуйте, эксперты! Больше всего ненавижу сидеть часами, искать ошибку в программе, а потом понимать, что это не твоя ошибка. Вот и сейчас писал прогу - локальный посиковик. Наткнулся на такой случай, что компонент "Indy Clients" &q...
Вопрос № 34759: Здравствуйте, господа Эксперты! Мне нужно написать прогу, которая бы отправляла SMS-ки на определенный номер сотового через Инет. Проблема в том, что я никогда не писал программ для сети и не знаю, какие компоненты использовать, Буду очень призна...

Вопрос № 34.720
Помогите, пожалуйста, разобраться, в чем ошибка.
Пробую использовать свою DLL библиотеку (код ниже), компилируется нормально,
Но как правильно в приложении вызывать не знаю.
При работе приложения функции вызываться, но при завершении выдается ошибка Windows.
В каких случаях нужно в разделе Uses писать ShareMem и где в самой библиотеке или в приложении?
Если не трудно киньте ссылки или небольшие (до 100 кб ) статьи по созданию DLL в Delphi где понятно и доходчиво описан процесс создания библиотек

Приложение:

Отправлен: 04.02.2006, 14:35
Вопрос задал: Пепеляев Александр Павлович (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Dushin Igor
Здравствуйте, Пепеляев Александр Павлович!
Создание и использование dll подробно описывается здесь:
http://www.citforum.ru/programming/32less/les23.shtml
http://www.sources.ru/magazine/0804/delphidll.html
---------
Глюк без причины - признак вирусины!
Ответ отправил: Dushin Igor (статус: 4-ый класс)
Отправлен: 04.02.2006, 15:33
Оценка за ответ: 5

Отвечает: Злоумышленник
Здравствуйте, Пепеляев Александр Павлович!
ShareMem юзают, когда DLL экспортирует любые функции или процедуры, которые получают в качестве параметров или возвращают в виде результатов строки или динамические массивы, причём ставят ShareMem первым элементом списка uses. Т. е. ты сделал всё правильно. Но твоя DLL вырубает приложение. Поэтому, чтобы не ломать голову, поменяй стринг на PChar (см., как я переделал в приложении) и всё заработает (ShareMem можно убрать). Успехов.

Приложение:

Ответ отправил: Злоумышленник (статус: 2-ой класс)
Отправлен: 04.02.2006, 16:01
Оценка за ответ: 5

Отвечает: Лучников Юрий Владимирович
Здравствуйте, Пепеляев Александр Павлович!
Очень хорошее пособие по dll находится по адресу:
http://www.rsdn.ru/article/Delphi/Delphi_7_05.xml.

Успехов;)
Ответ отправил: Лучников Юрий Владимирович (статус: Студент)
Отправлен: 05.02.2006, 14:05
Оценка за ответ: 5


Вопрос № 34.729
Уважаемые эксперты ответьте на такие вопросы: 1) как из программы на дельфи или из командной строки запустить удаленный доступ к сети; 2) как из программы на дельфи проверить есть ли в данный момент соединение с Интернетом; 3) посоветуйте программу типа IE_Money но с большим количеством функций.
Пояснение: все это мне надо для учета работы разных пользователей в инете на одном компьютере с Win98. Заранее благодарен.
Отправлен: 04.02.2006, 17:10
Вопрос задал: Зеленский Александр Станиславович (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Slava
Здравствуйте, Зеленский Александр Станиславович!
Второй вопрос: один из способов проверить есть ли в данный момент соединение с Интернетом.
Для работы Вам необходимо импортировать функцию InetIsOffline из URL.DLL:

function InetIsOffline(Flag: Integer): Boolean; stdcall; external 'URL.DLL';

а затем поместить в программу простой вызов функции для проверки статуса соединения:

if InetIsOffline(0) then
ShowMessage('This computer is not connected to Internet!')
else
ShowMessage(You are connected to Internet!');

Эта функция возвращает TRUE если соединение с интернетом отсутствует, или FALSE если соединение установлено.
Файл url.dll обычно есть на большенстве компьютеров.
Еще можно использовать функ-ю InternetGetConnectedState() из wininet.dll
Ответ отправил: Slava (статус: 9-ый класс)
Отправлен: 04.02.2006, 19:10

Отвечает: sir henry
Здравствуйте, Зеленский Александр Станиславович!
1) Для этого нужно запустить программу удаленного соединения rasdial:
Shellexecute(0, 'open', 'rasdial', PChar(User+' '+password), NIL, SW_SHOW);
Чтобы отключится - ту же прогу, только с параметром /DISCONNECT
2) К сожалению, несмотря на наличие специальных функций для этого в WinAPI, единственный надежный способ - пропинговать какой-либо удаленный ресурс и получить от него ответ.
Как одну из функций можно применить такую:
uses
WinInet;

function IsConnectedToInternet: Boolean;
var
dwConnectionTypes: DWORD;
begin
dwConnectionTypes :=
INTERNET_CONNECTION_MODEM +
INTERNET_CONNECTION_LAN +
INTERNET_CONNECTION_PROXY;
Result := InternetGetConnectedState(@dwConnectionTypes, 0);
end;
Но учтите, что даже в MSDN есть предупреждение, что верить ей и подобным функциям, нельзя.
Ответ отправил: sir henry (статус: Академик)
Отправлен: 05.02.2006, 08:46

Отвечает: Лучников Юрий Владимирович
Здравствуйте, Зеленский Александр Станиславович!

1) Хороший материал по поводу вопроса http://www.rsdn.ru/summary/278.xml

2) Самый простой способ - проверить локальный IP-адрес. Если машина не в сети, то ее IP всегда равен 127.0.0.1 (localhost).
Успехов!
Ответ отправил: Лучников Юрий Владимирович (статус: Студент)
Отправлен: 05.02.2006, 14:12
Оценка за ответ: 4


Вопрос № 34.746
Здоровенько! Как создать программу, чтобы при нажатии на Button1 она загружала в Memo1 текстовый файл по адресу: http://www.myserver.com/news.txt?
Отправлен: 04.02.2006, 21:04
Вопрос задал: Ramirez (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Dushin Igor
Здравствуйте, Ramirez!
См. приложение... Показано как закачать текстовый файл из интернета, не забудьте подключить в uses wininet...

Приложение:

---------
Глюк без причины - признак вирусины!

Ответ отправил: Dushin Igor (статус: 4-ый класс)
Отправлен: 04.02.2006, 21:49

Отвечает: Ерёмин Андрей
Здравствуйте, Ramirez!
В приложении пример кода, который скачивает файл с сервера в нужную папку. Затем файл загружается в TMemo стандартным способом.

Приложение:

---------
Нет правила без исключений. Правило без исключений - исключение из правил.

Ответ отправил: Ерёмин Андрей (статус: Профессионал)
Отправлен: 05.02.2006, 07:41


Вопрос № 34.756
Здравствуйте, эксперты!
Больше всего ненавижу сидеть часами, искать ошибку в программе, а потом понимать, что это не твоя ошибка. Вот и сейчас писал прогу - локальный посиковик. Наткнулся на такой случай, что компонент "Indy Clients" "IdFTP" не может поменять директорию. Как оказалось, все папки, которые либо начинаются с пробела, либо содержат непрерывную последовательность пробелов, считаются неработающими. IdFTP просто внаглую удаляет лишние пробелы! А потом пишет, что нет такой директории. Балбес! Даже Total Commander в первом случае (когда в начале пробелы) не меняет директорию. Надеюсь, что найдется среди вас хоть кто-нибудь, который сталкивался с подобной проблемой. Заранее, спасибо.
Отправлен: 05.02.2006, 03:38
Вопрос задал: Repose (статус: 1-ый класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Ерёмин Андрей
Здравствуйте, Repose!
Попробуйте заменять пробелы на комбинацию символов "процент20" - "%20".
---------
Нет правила без исключений. Правило без исключений - исключение из правил.
Ответ отправил: Ерёмин Андрей (статус: Профессионал)
Отправлен: 05.02.2006, 07:43

Отвечает: sir henry
Здравствуйте, Repose!
Вам просто надо было взглянуть на то, как любая инетовская прога обращается с пробелами - она их просто заменяет на символ пробела - в дельфийской нотации это будет $20 или если посмотреть например в IE или Mozilla - %20. :)
Ответ отправил: sir henry (статус: Академик)
Отправлен: 05.02.2006, 08:53


Вопрос № 34.759
Здравствуйте, господа Эксперты!
Мне нужно написать прогу, которая бы отправляла SMS-ки на определенный номер сотового через Инет. Проблема в том, что я никогда не писал программ для сети и не знаю, какие компоненты использовать, Буду очень признателен, если подскажете пример работы с нужными компонентами или дадите ссылки. НЕ ПОДХОДИТ вариант типа "робот" - заполнение и оправка через форму на сайте оператора сотовой связи. Заране благодарен!
Отправлен: 05.02.2006, 04:15
Вопрос задал: Ваньков Петр Семенович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Slava
Здравствуйте, Ваньков Петр Семенович!
Вот тут есть статья на эту тему http://www.kamlit.ru/docs/journals/cd/cd22/off-line/pr/22/article_10.php.htm или та же статья тут http://wizard901.narod.ru/Clause/SMS.htm
Ответ отправил: Slava (статус: 9-ый класс)
Отправлен: 05.02.2006, 06:52


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.14 (бета) от 09.02.2006
Яндекс Rambler's Top100

Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.delphiplus
Архив рассылки
Отписаться Вебом Почтой
Вспомнить пароль

В избранное