Форум: "WinAPI";
Текущий архив: 2002.04.29;
Скачать: [xml.tar.bz2];
ВнизКто-нить знает как юзать LB_GETTEXT? Найти похожие ветки
← →
Velocity (2002-02-20 05:50) [0]Сабж, только сильно не бейте, понимаю, что достал уже этим вопросом, но больше обратиться некуда. Последний параметр в этой мессаге - буфер (или указатель на него?), куда будет возвращена строка из LISTBOXа (в SDK так написано). Если в качестве буфера брать string - буфер всегда пустой, если PChar - вообще ошибка вылетает. Вызываю так:
SendMessage(хендл листбокса,LB_GETTEXT,номер строчки,integer
(buffer));
Кто знает - подскажите ПРАВИЛЬНЫЙ формат вызова сей команды. Заранее спасибо.
← →
Suntechnic (2002-02-20 06:55) [1]
PChar
туда передавть надо. Только память выделить не забывай.
← →
Evgeny (2002-02-20 07:11) [2]можно и так:
var
I : Integer;
CurDir : array[Byte] of Char;
...
I := SendMessage(lParam, LB_GETCURSEL, 0, 0);
SendMessage(lParam, LB_GETTEXT, I, Integer(@CurDir));
...
← →
MBo (2002-02-20 07:52) [3]непременно перед LB_GETTEXT надо узнать длину с помощью
LB_GETTEXTLEN и, как Suntechnic прописал, выделить память под PChar(len+1 байт)
← →
Evgeny (2002-02-20 08:09) [4]MBo
непременно перед LB_GETTEXT надо узнать длину
Как сказано в справке:
An LB_GETTEXTLEN message can be sent before the LB_GETTEXT message to retrieve the length, in characters, of the string.
Сообщение LB_GETTEXTLEN может быть послано перед сообщением LB_GETTEXT, чтобы извлечь длину строки.
так что, чаще всего достаточно иметь предопределенный массив.
← →
MBo (2002-02-20 08:42) [5]>Evgeny
согласен, если длины хватает, но непременно поставил, так как в исходном вопросе было про ошибку с PChar -скорее всего из-за этого
← →
Evgeny (2002-02-20 11:23) [6]Возможно и так
← →
Velocity (2002-02-21 05:02) [7]>All
Спасибо огромное, научили балбеса. А то замучился уже. Еще раз спасибо.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.04.29;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.128 c