Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > ОС и железо
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 04.11.2009, 23:20
Аватар для AllMaNi
AllMaNi AllMaNi вне форума
Новичок
 
Регистрация: 15.06.2009
Адрес: Россия, ЮФО
Сообщения: 57
Репутация: 10
Вопрос Чтение, установка текста с помощью WinAPI

Господа программисты!
Прошу помощи в следующей задаче:

Мне нужно сделать так, чтоб при выборе пункта в Combobox, содержимое этого пункта заносилось в Label.
Пытаюсь следующим образом:

Код:
if (lParam = ComboBox1) and (HiWord(wParam) = BN_CLICKED) then
  //OnClick компонента ComboBox1
  begin
    GetWindowText(ComboBox1, szBuf, 1024);
    SetWindowText(Label1, szBuf);
  end;

где - szBuf :PChar;

Но Label - просто очищается.
Если задать в ручную - szBuf:='12345'; то Label так и становится - 12345.

Видимо я не правильно пытаюсь получить текст из Combobox
__________________
Пусть ненавидят миллионы, зато любят тыщи (с) Многоточие

Последний раз редактировалось AllMaNi, 04.11.2009 в 23:23.
Ответить с цитированием
  #2  
Старый 04.11.2009, 23:31
Аватар для NIch
NIch NIch вне форума
Продвинутый
 
Регистрация: 02.06.2008
Адрес: Бендеры ПМР
Сообщения: 754
Репутация: 2446
По умолчанию

Немного теории...
http://www.firststeps.ru/mfc/winapi/win/r.php?81
http://www.firststeps.ru/mfc/steps/help/r.php?183
Попробуй сначала получить handle объектов...и работать с хендлом...
__________________
В начале был Бит, потом Байт и только потом появилось Слово...
Ответить с цитированием
  #3  
Старый 04.11.2009, 23:40
Аватар для AllMaNi
AllMaNi AllMaNi вне форума
Новичок
 
Регистрация: 15.06.2009
Адрес: Россия, ЮФО
Сообщения: 57
Репутация: 10
По умолчанию

перепробовал все что можно:
для чтения

Код:
SendMessage(Combobox1, WM_GETTEXT, 80, LongInt(szBuf));
GetWindowText(ComboBox1, szBuf, 1024);
GetDlgItemText(ComboBox1, 0, szBuf , 100 );

для записи
Код:
SendMessage(Label1, WM_SETTEXT, 80, LongInt(szBuf));

с хэндлами я и работаю - здесь в примере - Combobox1 и Label1 - и есть хэндлы этих элементов.

Код:
  Label1 : HWND; //TLabel
  ComboBox1 : HWND; //TComboBox
  Button1 : HWND; //TButton
__________________
Пусть ненавидят миллионы, зато любят тыщи (с) Многоточие
Ответить с цитированием
  #4  
Старый 05.11.2009, 10:27
Аватар для AllMaNi
AllMaNi AllMaNi вне форума
Новичок
 
Регистрация: 15.06.2009
Адрес: Россия, ЮФО
Сообщения: 57
Репутация: 10
По умолчанию

Кое что исправил:
Код:
if (lParam = ComboBox1) and (HiWord(wParam) = CBN_SELCHANGE) then
  //OnClick компонента ComboBox1
  begin

setlength(szbuf, 80);
GetWindowText(ComboBox1, pansichar(szBuf), 80);
SendMessage(Label1 , WM_SETTEXT, 80, LongInt(szBuf));

 end;

Работает но немного не так - на лабел выводится предыдущая запись:
если выбираю перую строку - то лабел пустой, вторую, выводится первый и т.д.
Где-то видимо надо идекс указать...а где хз...
__________________
Пусть ненавидят миллионы, зато любят тыщи (с) Многоточие
Ответить с цитированием
  #5  
Старый 05.11.2009, 10:45
Аватар для AllMaNi
AllMaNi AllMaNi вне форума
Новичок
 
Регистрация: 15.06.2009
Адрес: Россия, ЮФО
Сообщения: 57
Репутация: 10
По умолчанию

пробовал вот так:
Код:
idCombobox := GetDlgCtrlId(Combobox1);
GetDlgItemText(ComboBox1, idCombobox, PAnsiChar(szBuf) , 100 );

тоже не получается...
__________________
Пусть ненавидят миллионы, зато любят тыщи (с) Многоточие
Ответить с цитированием
  #6  
Старый 06.11.2009, 10:52
Аватар для AllMaNi
AllMaNi AllMaNi вне форума
Новичок
 
Регистрация: 15.06.2009
Адрес: Россия, ЮФО
Сообщения: 57
Репутация: 10
По умолчанию

Никто не подскажет???
__________________
Пусть ненавидят миллионы, зато любят тыщи (с) Многоточие
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 02:16.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025