Как динамически создать RichTextBox? - VB

Узнай цену своей работы

Формулировка задачи:

Допустим на компьютере, где будет запускаться программа, нет RichTx32.Ocx и тогда создаётся конструкция вида:
Листинг программы
  1. Dim b() As Byte
  2. b = LoadResData(101, "CUSTOM")
  3. Open "c:\windows\system32\RichTx32.Ocx" For Binary As #1
  4. Put #1, , b
  5. Close #1
  6. Shell "regsvr32 /s RichTx32.Ocx"
После этого предполагается динамически разместить на форме RichTextBox, но я не знаю как именно его разместить. Приведу аналогию с Label:
Листинг программы
  1. Set NewLabel = Controls.Add("VB.Label", MyName$)
  2. With NewLabel
  3. .Visible = True
  4. .Caption = "MyCaption"
  5. .AutoSize = True
  6. .ForeColor = &H80FF&
  7. .BackColor = &H404040
  8. .Left = 100
  9. .FontBold = True
  10. .Top = 100
  11. End With
Пробовал искать в Object Browser, но не нашёл информации по RichTextBox.

Вопрос №1

: Что нужно дописать после Controls.Add("VB.

???

")
Заодно хочу задать

вопрос №2

: Как определить версию и разрядность ОС, чтобы в строке было написано, например: a$ = "Win7", b$ = "x64"

Решение задачи: «Как динамически создать RichTextBox?»

textual
Листинг программы
  1. Option Explicit
  2. '
  3. 'Вызываем RichTextBox и изврващаемся над ним...
  4. '
  5. Dim WithEvents RTBx As VBControlExtender
  6. Private Sub RTBx_ObjectEvent(Info As EventInfo)
  7.     Debug.Print Info 'Список событий, >смотри oкно Immidiate
  8. End Sub
  9. Private Sub Form_Load()
  10.     On Error Resume Next
  11.     Dim pID$, i&
  12.     pID = "RICHTEXT.RichTextCtrl" 'pID = ProgID
  13.    For i = 1 To 2
  14.         Licenses.Add pID
  15.         Set RTBx = Controls.Add(pID, "RTBx")
  16.         If Not RTBx Is Nothing Then Exit For Else pID = pID & ".1"
  17.     Next
  18.     If RTBx Is Nothing Then
  19.         MsgBox _
  20.         "Компонент не появявился, и вот почему:" & vbLf & _
  21.         "1-Компонент уже заявлен явно в проекте" & vbLf & _
  22.         "2-Неверный ProgId [RICHTEXT.RichTextCtrl]" & vbLf & _
  23.         "3-Неверная лицензия [Licenses.Add ProgId]"
  24.     End If
  25.     With RTBx
  26.         .Move 0, 0, ScaleWidth, ScaleHeight
  27.         .Object.Text = "Привет Народ и CharlyChaplin !"
  28.         .Visible = True
  29.     End With
  30. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.786 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы