![]() |
|
Модераторы: Akina |
![]()
|
|
| Buka1214 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 8.5.2013 Репутация: нет Всего: нет |
Задача почти конкурсная ряд форумов решить ее не могут.
Я самоучка и, видимо, что-то пропускаю в учебниках, либо учебники барахло, поэтому просьба ответ дать в виде кода с комментариями. Необходимо решить именно эту задачу, а не искать обходных путей типа ListBox, TextBox, Grid и т. д. Суть: В Microsoft Visual Basic 6.0 на форму в цикле командой Print выводится текст более чем в 100 строк. Установлена полоса прокрутки и ее свойства. При перемещении движка текст не перемещается. При щелчке на полосе прокрутке выводится процедура Private Sub VScroll1_Change() End Sub Видимо в нее надо что-то вставить или как-то связать полосу прокрутки либо с формой, либо с текстом. Вставка Form1 = VScrollBar.Value не помогла. Как перемещать текст при перемещении движка полосы прокрутки? |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Именно. Внимательнейшим образом изучите, что из себя представляет объект "Форма" в VB6. Задача - штатными средствами нерешаемая. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Сергейчик |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 16.5.2013 Репутация: нет Всего: нет |
предположу что при движении полосы прокрутки текст тупо перепечатывается
каждый раз уменьшая печатаемых количество строк или увеличивая или каждый раз печатая с определённой позиции экрана тем самым будет типа эффекта прокручивания? |
|||
|
||||
| Сергейчик |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 16.5.2013 Репутация: нет Всего: нет |
Dim a As Integer, b As String
'
незабудь Label1 на форму кинуть или создай ещё одну переменную заместо Label1 Это сообщение отредактировал(а) Akina - 21.5.2013, 07:52 |
|||
|
||||
| Сергейчик |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 16.5.2013 Репутация: нет Всего: нет |
Вот ваша задача только не на 100 а на 100000 строк?
'кнопка загрузки текста сразу из файла или накопителя lдля вас не делал поэтому из окна Textboxa туда копируете и загружаете. ' Dim A, B As Integer Dim D(100000), C As String Private Sub Command1_Click() C = Text1.Text A = 0 Do Until A = Len© A = A + 1 If Mid$(C, A, 2) = vbCrLf Then C = Mid$(C, 1, A - 1) & Mid$(C, A + 2, Len© - A - 1): A = A - 1 Loop Text1.Text = "" A = 0 Do Until A = Int(Len© / 90) + 1 A = A + 1 If A = 1 Then D(A) = Mid$(C, 1, 90) If A > 1 Then D(A) = Mid$(C, (A * 90) / 2 + 1, 90) If A > Int(Len© / 90) Then D(A) = Mid$(C, A * 90 - 89, Len© - ((A - 1) * 90) + 1) Loop End Sub ' Впрокрутку вставляем Private Sub VScroll1_Change() Form1.FontSize = 8 Label1 = VScroll1.Value Form1.Cls Print , vbCrLf + vbCrLf For B = Label1 To Label1 + 45 Print , D(B) '(следующая строка в одну строку) If B > A Then Form1.Cls: Form1.FontSize = 25: Print , vbCrLf + vbCrLf: Print , "Конец": Print , "Загрузите новый файл": Print , vbCrLf + vbCrLf: Print , "Конец": Print , "Загрузите новый файл": Print , vbCrLf + vbCrLf: Print , "Конец": Print , "Загрузите новый файл" Next B End Sub 'Кнопка загрузки снизу с права 1/3-ть экрана текстбокс и слева от него прокрутка. Это сообщение отредактировал(а) Сергейчик - 21.5.2013, 19:44 |
|||
|
||||
| Сергейчик |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 16.5.2013 Репутация: нет Всего: нет |
Правда такой объём врядли загрузите или циклы может надо переделывать?
а лучше с постепенной подгрузкой. я 7000-10000 строк пробывал,в строке 90 символов=900000 символов. Это сообщение отредактировал(а) Сергейчик - 21.5.2013, 20:00 |
|||
|
||||
![]()
|
| Правила форума "VB6" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | VB6 | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |