Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Кто-нить знает как юзать LB_GETTEXT? [D5, Win95/98]


Velocity ©   (2002-02-20 05:50:00) 

Сабж, только сильно не бейте, понимаю, что достал уже этим вопросом, но больше обратиться некуда. Последний параметр в этой мессаге - буфер (или указатель на него?), куда будет возвращена строка из LISTBOXа (в SDK так написано). Если в качестве буфера брать string - буфер всегда пустой, если PChar - вообще ошибка вылетает. Вызываю так:

SendMessage(хендл листбокса,LB_GETTEXT,номер строчки,integer
(buffer));

Кто знает - подскажите ПРАВИЛЬНЫЙ формат вызова сей команды. Заранее спасибо.


Velocity   (2002-02-21 05:02:00) [1]

>All
Спасибо огромное, научили балбеса. А то замучился уже. Еще раз спасибо.


Evgeny   (2002-02-20 11:23:00) [2]

Возможно и так


MBo   (2002-02-20 08:42:00) [3]

>Evgeny
согласен, если длины хватает, но непременнопоставил, так как в исходном вопросе было про ошибку с PChar -скорее всего из-за этого


Evgeny   (2002-02-20 08:09:00) [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 07:52:00) [5]

непременно перед LB_GETTEXT надо узнать длину с помощью
LB_GETTEXTLEN и, как Suntechnic прописал, выделить память под PChar(len+1 байт)


Evgeny   (2002-02-20 07:11:00) [6]

можно и так:

var
I : Integer;
CurDir : array[Byte] of Char;
...
I := SendMessage(lParam, LB_GETCURSEL, 0, 0);
SendMessage(lParam, LB_GETTEXT, I, Integer(@CurDir));
...


Suntechnic   (2002-02-20 06:55:00) [7]

PCharтуда передавть надо. Только память выделить не забывай.


Наверх

Титульная страница Поиск, карта сайта Написать письмо