Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: TextEdit (Unicode usercontrol) Добавлено: 04.04.10 03:00  

Автор вопроса:  Winand | Web-сайт: winandfx.narod.ru
Перевел textedit из класса в ряды юзерконтролов, ибо это удобнее намного
http://narod.ru/disk/19371879000/textedit.zip.html
Свойств, редактируемых в дезигн-тайм нет, потому что их добавление - муторно и лениво. Неплохо было бы, если кто-то потестит. Пару раз ide падало, но не совсем понятно из-за контрола или нет

Ответить

  Ответы Всего ответов: 9  

Номер ответа: 1
Автор ответа:
 AWP



ICQ: 345685652 

Вопросов: 96
Ответов: 1212
 Web-сайт: xawp.narod.ru
 Профиль | | #1
Добавлено: 04.04.10 16:23
сразу выдает
  1. Public Property Get text() As String
  2. If Not RuntimeMode Then Exit Sub
  3.     Dim textlen As Long, copied As Long
  4.     If multilined Then
  5.         Dim lineCount As Long, firstchar As Long, i As Long
  6.         lineCount = SendMessage(editwnd, EM_GETLINECOUNT, 0, 0&)
  7.         ReDim res(lineCount - 1) As String
  8.         For i = 0 To lineCount - 1
  9.             firstchar = SendMessage(editwnd, EM_LINEINDEX, i, ByVal 0)
  10.             If b(textlen, SendMessage(editwnd, EM_LINELENGTH, firstchar, ByVal 0)) Then
  11.                 ReDim buf(textlen * 2) As Byte
  12.                 lngToArr buf, textlen, 0
  13.                 copied = SendMessage(editwnd, EM_GETLINE, i, buf(0))
  14.                 res(i) = MidB(buf, 1, copied * 2)
  15.             End If
  16.         Next i
  17.         text = Join$(res, vbNewLine)
  18.     Else
  19.         If b(textlen, length) Then
  20.             ReDim buf(textlen * 2) As Byte
  21.             lngToArr buf, textlen, 0
  22.             copied = SendMessage(editwnd, EM_GETLINE, 0, buf(0))
  23.             text = MidB(buf, 1, copied * 2)
  24.         End If
  25.     End If
  26. End Property

на строке: b(textlen, SendMessage(editwnd, EM_LINELENGTH, firstchar, ByVal 0))
Функция не задана.

заметил, что CopyMemory не декларирована.

Ответить

Номер ответа: 2
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #2
Добавлено: 04.04.10 18:40
фач. Опять я))
  1. Option Explicit
  2. Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (lpDest As Any, lpSource As Any, ByVal cBytes&)
  3.  
  4. Public Function b(p1 As Long, p2 As Long) As Boolean
  5.     p1 = p2
  6.     b = CBool(p1)
  7. End Function
  8.  
  9. 'Write lng to pos in byte array
  10. Public Sub lngToArr(ByRef arrTo() As Byte, ByRef lng As Long, ByRef pos As Long)
  11.     CopyMemory arrTo(pos), ByVal VarPtr(lng), 4
  12.     pos = pos + 4
  13. End Sub
  14.  
  15. 'Convert VB system color to RGB
  16. Public Function cColor(ByVal clr As Long, Optional hPal As Long = 0) As Long
  17.     If Bits(clr, &H80000000) Then
  18.         If OleTranslateColor(clr, hPal, cColor) Then cColor = &HFFFF
  19.     Else
  20.         cColor = clr
  21.     End If
  22. End Function

Ответить

Номер ответа: 3
Автор ответа:
 AWP



ICQ: 345685652 

Вопросов: 96
Ответов: 1212
 Web-сайт: xawp.narod.ru
 Профиль | | #3
Добавлено: 04.04.10 18:51
я так понимаю, это код для модуля? в конторлл можно пихнуть?

Ответить

Номер ответа: 4
Автор ответа:
 AWP



ICQ: 345685652 

Вопросов: 96
Ответов: 1212
 Web-сайт: xawp.narod.ru
 Профиль | | #4
Добавлено: 04.04.10 18:54
теперь нету, кстати, функции Bits

Ответить

Номер ответа: 5
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #5
Добавлено: 05.04.10 01:34
AWP, я убрал функцию ccolor из контрола, так что просто выкинь её.
Это код модуля, потому что я его много где использую. И да, его конечно же можно засунуть в контрол

Ответить

Номер ответа: 6
Автор ответа:
 AWP



ICQ: 345685652 

Вопросов: 96
Ответов: 1212
 Web-сайт: xawp.narod.ru
 Профиль | | #6
Добавлено: 05.04.10 03:26
Как ты и сказал из ide постоянно вылетает.
Какие-то адреса неправильно указываются.

Ответить

Номер ответа: 7
Автор ответа:
 AWP



ICQ: 345685652 

Вопросов: 96
Ответов: 1212
 Web-сайт: xawp.narod.ru
 Профиль | | #7
Добавлено: 05.04.10 03:26
а так, вроде, работает.

Ответить

Номер ответа: 8
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #8
Добавлено: 05.04.10 18:28
Вечером посмотрю, где ты там накололся.

Ответить

Номер ответа: 9
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #9
Добавлено: 05.04.10 21:16
Так ну одну ошибку я нашел) Проблема в том, что у меня падало редко, так что не понятно, починилось или нет
  1. 272: If prtproc Then Call StopSubclass(prtwnd, prtproc): prtproc = 0

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам