Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 0
Регистрация: 24.07.2007
Сообщений: 178

Истинная позиция или количество строк

25.04.2008, 21:21. Показов 627. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как в RichTextBox определить позицию курсора, понятно. Примерно, так
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Private Declare Function SendMessage Lib 'user32' _
                Alias 'SendMessageA' _
                (ByVal hwnd As Long, _
                ByVal wMsg As Long, _
                ByVal wParam As Long, _
                ByVal lParam As Long) As Long
                
Private Const EM_LINEFROMCHAR = &HC9
Private Const EM_LINEINDEX = &HBB
Private Const EM_GETSEL = &HB0
 
Private Sub CheckPosition()
Dim char_pos As Long
Dim row As Long
Dim col As Long
    char_pos = RichTextBox1.SelStart
    row = SendMessage(RichTextBox1.hwnd, _
                EM_LINEFROMCHAR, char_pos, 0) + 1
 
    col = char_pos - SendMessage(RichTextBox1.hwnd, _
                EM_LINEINDEX, -1, 0) + 1
 
    lblPosition.Caption = '(' & Format$(row) & _
                ', ' & Format$(col) & ')'
End Sub
Но тут один косяк: таким образом определяется не истинный номер строки (а значит и символа в этой строке), а видимый, т.е. если строка не поместилась в одну строку в Rich, то для него это будет уже две строки.
Определять вручную позицию можно, но для файлов более 30Kb - медленно, так как приходиться создавать переменную в эти 30 или более Kb.
А Win32API SendMessage определяет мгновенно.
В итоге вопрос: те константы, которые подставляются для вызова функции, такие еще могут иметь параметры, может в них дело?..
Или кто знает, как определить по-другому?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.04.2008, 21:21
Ответы с готовыми решениями:

Истинная или ложная с точки зрения математической логики фраза
6. Истинная или ложная с точки зрения математической логики фраза: «Если 2 х 2 = 5, то Луна сделана из зеленого сыра»?

Определение - какая это логическая функция: ложная, истинная или выполнимая
Я в соответствии с заданием: упросил функции и нашел их ДНФ и КНФ. А вот с определением их истинности или ложности я запутался...помогите...

Как узнать количество НЕ скрытых строк в qtablewidget или как изменить нумерацию строк по порядку
Здравствуйте, в программе есть таблица с данными, которые после определенных действий меняются и строки скрываются. Как сделать так, чтобы...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.04.2008, 21:21
Помогаю со студенческими работами здесь

Позиция сайта и количество людей
Дарова всем! Такое аномальное явление - по поисковой фразе, которую по региону набирают в месяц ~1800 раз, мой сайт на 3-ем месте. Это...

Количество строк или слов в файле на языке Си
Здравствуйте, проблема в языке Си. Пользователь вводит слова или число, нужно найти количество этих слов или строк содержащих этих слов из...

Подсчитать количество строк, начинающихся с одного или нескольких пробелов
Есть задача: В тексте из 30 строк по 66 знаков подсчитать количество строк, начинающихся с одного или нескольких пробелов, за которыми...

Количество строк на листе или номер последней строки с данными
Как получить количество строк на листе или номер последней строки с данными? Могут встречаться пустые строки между строками с данными.

Подсчитать в матрице А количество строк, сумма элементов которых кратна 2 или 3
Помогите пожалуйста доделать, просто без понятия как продолжить програмуу( 1)Подсчитывает в матрице А количество строк, сумма элементов...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru