![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обновление компонента сендмеседжом [D7, XP]
NoSilence © (2010-05-10 18:42:00)Задача: выбрать элемент в listbox и combobox на чужом окне.
SendMessage(hCB, CB_SETCURSEL, 7, 0);
выбирает нужный элемент, но не вызывает события
пробовал посылать нажатие энтера, но эффект тот же
sniknik (2010-05-11 19:30:00) [1]> и нашел подобный проблемы :)
зачем искать "подобный проблемы" если уже дан "готовый решений"?
Leonid Troyanovsky (2010-05-11 19:08:00) [2]
> NoSilence (11.05.10 18:50) [17]
> В смысле?
http://ru.wikipedia.org/wiki/%D0%90%D0%B1%D1%80%D0%B0%D0%BA%D0%B0%D0%B4%D0%B0%D0%B1%D1%80%D0%B0_(%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D1%8F)
--
Regards, LVT.
NoSilence (2010-05-11 18:50:00) [3]В смысле?
Leonid Troyanovsky (2010-05-11 18:16:00) [4]
> NoSilence (11.05.10 18:01) [15]
> SendMessage(hWindow,WM_COMMAND,MakeWparam(0,CBN_SELCHANGE),
> hCB);
Абракадабра.
--
Regards, LVT.
NoSilence (2010-05-11 18:01:00) [5]Спасибо. Данная функция не помогла, но я стал искать информацию по MakeWParam и нашел подобный проблемы :)
SendMessage(hWindow,WM_COMMAND,MakeWparam(0,CBN_SELCHANGE),hCB);
И другие ответы, по меседжам :)
Leonid Troyanovsky (2010-05-11 08:14:00) [6]
> NoSilence (10.05.10 21:26) [12]
> for i:= $B000 to $B000+69 do SendMessage(hCB
SendMessage(hCB, CN_COMMAND, MakeWParam(0, CBN_EDITCHANGE), 0);
--
Regards, LVT.
Плохиш (2010-05-10 21:34:00) [7]В исходниках TComboBox всё написано.
NoSilence (2010-05-10 21:26:00) [8]Извиняюсь за "неправильные" слова, ибо быдло кодер (т.е. не программист по образованию)
генофонд это Controls.pas, ComCtrls.pas и прочие? Не смог найти там нужного сообщения.
максимум до чего додумался:
SendMessage(hCB, CB_SETCURSEL, 7, 0);
for i:= $B000 to $B000+69 do SendMessage(hCB, i, 0, 0);
и небольшие вариации с параметрами...
sniknik (2010-05-10 20:25:00) [9]OnChange это не событие, это метод компонента, который вызывается VCL (явный вызов процедуры) по какому то событию (последовательности событий/действий/х.з. неважно). посмотри в генофонде где вызывается и будешь знать, что за событие нужно послать...
NoSilence (2010-05-10 20:25:00) [10]И так. Совсем другой вариант:
На форме имеется ComboBox1
С событием OnChange
Выбираем ручками нужну нам строку, что вызывает OnChange
Теперь делаем
ComboBox1.ItemIndex:= 3;
событие OnChange не вызывается, строка меняется.
Нужно далее вызвать его.
Но а если это другое приложение?
SendMessage(hCB, CB_SETCURSEL, 3, 0);
SendMessage(hCB, CB_RESET, 0, 0); // Грубо говоря
NoSilence (2010-05-10 20:17:00) [11]Да не в моей. Короче, есть программа, там есть дроп скисок, при выборе которого подгружается вся инфа.
Мне всего лишь нужно выбрать строку из этого дроп списка, так чтобы в том приложении загрузилась инфа, а не тупо поменялось значение элемента.
Юрий Зотов (2010-05-10 20:11:00) [12]> NoSilence (10.05.10 20:07) [7]
Вы уже говорили, что она не Ваша. И я Вам о том же говорю. С чего вдруг в Вашей программе должны возникать чужие события?
NoSilence (2010-05-10 20:07:00) [13]Юрий Зотов, другая программа написана да делфи, не моя. Мне нужно выбрать из списка нужную строку, при этом должна произойти загрузка всего связанного с ним, но она не происходит.
Юрий Зотов (2010-05-10 20:07:00) [14]> NoSilence (10.05.10 20:04) [5]
Еще раз - почему Вы решили, что изменения в чужой программе должны вдруг сами по себе отражаться в Вашей прграмме?
NoSilence (2010-05-10 20:04:00) [15]Юрий Зотов, там же видно, что в другом окне строчка поменялась, но связанные с ее выбором действия не произошли.
if SendMessage(hCB, CB_SETCURSEL, 7, 0) = 7 then exit;
дальнейшие действия прервались
Юрий Зотов (2010-05-10 20:03:00) [16]> NoSilence (10.05.10 20:02) [2]
> OnChange
В чужой программе событие, может быть, и происходит - но с чего вдруг оно должно происходить в Вашей программе?
Юрий Зотов (2010-05-10 20:02:00) [17]> NoSilence (10.05.10 18:42)
if SendMessage(hCB, CB_SETCURSEL, 7, 0) = 7 then
строка_выбрана_успешно
else
была_ошибка;
NoSilence (2010-05-10 20:02:00) [18]OnChange
Игорь Шевченко (2010-05-10 19:55:00) [19]
> но не вызывает события
а какое событие должно произойти ? армагеддон ?