![]() |
Модераторы: Akina |
![]() ![]() ![]() |
|
Marvel |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 31.8.2003 Где: Belarus, Polatsk Репутация: нет Всего: нет |
Help - Не срабатывает событие:
в коде формы все ок, но я создал winsock1 в модуле класса, а события на него прописать не могу.
при ошибке код не работает, хотя в изначальном примере где код в форме- все ок. http://marvel.at.tut.by/tmp/f.zip в SendMailsrc.zip от которого я вертелся события срабатывают в SmtpTest.zip - нет почему? Это сообщение отредактировал(а) Marvel - 10.8.2004, 20:28 |
|||
|
||||
cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
Попробуй вместо Private Public написать, может заработает. А вообще напиши (если не заработает) как добиться в первом работающем варианте этой ошибки, то есть как сделать так чтобы событие сработало?
-------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
Marvel |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 31.8.2003 Где: Belarus, Polatsk Репутация: нет Всего: нет |
изменил на паблик- тот же результат
в исходниках SendMailsrc при попытке отправить почту выдается ошибка host unreacheble или что-то вроде, т.е. норма когда не подключен к сети (если подключен то все шлется) В моем же файлике SmtpTest.zip winsock объявлен внутри класса, а вот как к нему событие прикрутить?.. В коде формы все понятно: жмем F2, выбираем winsock, смотрим что у него есть Event: error, и пишем обработчик: Sub Winsock1_Error. В классе так не сработало, может там по другому как-то надо оформлять обработчик события... В первом посте этой темы я дал ссылку на исходники, прошу - посмотрите. Сам уже много всего перепробовал но пока безрезультатно. |
|||
|
||||
cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
С тебя ящик... водки
![]() Блин долго я просидел (часа три наверно), пока докумекал вот до чего:
То есть у Winsock'ета есть TimeOut определенный на Connect и Event он об ошибке выкидывает только после того, как пройдет это определенное количество времени. Если мы не дождались этого Event'a и вышли из процедуры, то Event пропал (по другому я себе объяснить данный факт не смог). Мы недолго думаю (ну в смысле долго думая, но все таки ![]() Если кто-то удививится тому, что я так долго пытался помочь человеку, то вот тому объяснение: самому интересно стало. ![]() -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
Marvel |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 31.8.2003 Где: Belarus, Polatsk Репутация: нет Всего: нет |
Все! Релиз! clsSmtp v1.0!
http://marvel.at.tut.by/clssmtp.zip cardinal , в германию я ящик водки слать не буду, но если появишься в Беларуси, желательно в Полоцке, то пиво с меня ![]() ключевая строка приняла вид:
теперь мы знаем как к классу прикрутить компоненты (даешь классные классы) один из недостатков класса - функция UUEncodeFile достаточно медленна, но мне пока что быстро и не надо. |
|||
|
||||
cardinal |
|
||||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
То над чем можно поработать я подчеркнул красным цветом. Public Function UUEncodeFile(strFilePath As String) As String Dim intFile As Integer 'file handler Dim intTempFile As Integer 'temp file Dim lFileSize As Long 'size of the file Dim strFileName As String 'name of the file Dim strFileData As String 'file data chunk Dim lEncodedLines As Long 'number of encoded lines Dim strTempLine As String 'temporary string Dim i As Long 'loop counter Dim j As Integer 'loop counter Dim strResult As String ' 'Get file name strFileName = Mid$(strFilePath, InStrRev(strFilePath, "\") + 1) ' 'Insert first marker: "begin 664 ..." strResult = "begin 664 " + strFileName + vbLf ' 'Get file size lFileSize = FileLen(strFilePath) lEncodedLines = lFileSize \ 45 + 1 ' 'Prepare buffer to retrieve data from 'the file by 45 symbols chunks strFileData = Space(45) ' intFile = FreeFile ' Open strFilePath For Binary As intFile For i = 1 To lEncodedLines -> For i = 1 To lEncodedLines - 1 'Read file data by 45-bytes cnunks ' If i = lEncodedLines Then -> вынести из цикла 'Last line of encoded data often is not 'equal to 45, therefore we need to change 'size of the buffer strFileData = Space(lFileSize Mod 45) End If 'Retrieve data chunk from file to the buffer Get intFile, , strFileData 'Add first symbol to encoded string that informs 'about quantity of symbols in encoded string. 'More often "M" symbol is used. strTempLine = Chr(Len(strFileData) + 32) ' If i = lEncodedLines And (Len(strFileData) Mod 3) Then -> вынести из циклаlength of 'source data is not a number divisible by 3, add one or two 'blankspace symbols strFileData = strFileData + Space(3 - (Len(strFileData) Mod 3)) End If For j = 1 To Len(strFileData) Step 3 -> раскрыть цикл 'Breake each 3 (8-bits) bytes to 4 (6-bits) bytes ' '1 byte strTempLine = strTempLine + Chr(Asc(Mid(strFileData, j, 1)) \ 4 + 32) -> возможно можно заменить на And 3 '2 byte strTempLine = strTempLine + Chr((Asc(Mid(strFileData, j, 1)) Mod 4) * 16 _ + Asc(Mid(strFileData, j + 1, 1)) \ 16 + 32) -> возможно можно заменить на And 3 и на сдвиг влево на четыре '3 byte strTempLine = strTempLine + Chr((Asc(Mid(strFileData, j + 1, 1)) Mod 16) * 4 _ + Asc(Mid(strFileData, j + 2, 1)) \ 64 + 32) -> возможно можно заменить на And 63 и сдвиг на 2 влево '4 byte strTempLine = strTempLine + Chr(Asc(Mid(strFileData, j + 2, 1)) Mod 64 + 32) -> возможно можно заменить на And 63 Next j 'replace " " with "`" strTempLine = Replace(strTempLine, " ", "`") -> сделать один раз вне цикла? 'add encoded line to result buffer strResult = strResult + strTempLine + vbLf 'reset line buffer strTempLine = "" Next i Close intFile 'add the end marker strResult = strResult & "`" & vbLf + "end" + vbLf 'asign return value UUEncodeFile = strResult End Function Ну и на крайний случай можешь почитать тут: http://forum.vingrad.ru/index.php?showtopic=15962 ![]()
Вылетаю первым рейсом ![]() -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "VB6" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | VB6 | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |