![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Shell Controls [D7]
fog © (2007-12-09 16:25:00)Есть связка TShellComboBox + TShellListView. При изменении Path
ShellComboBox1.Path := 'E:\';ShellListView не обновляется. Обновляется ТОЛЬКО при ручном выборе.
ShellListView1.Update;
Пробовал вместо ShellListView1.Update:
ShellComboBox1.Parent.Perform(WM_COMMAND, CBN_SELENDOK, 0);
с тем же результатом.
Где ошибка (в Perform) и как ShellListView обновить программно?
fog (2007-12-09 23:35:00) [1]
> Johnmen © (09.12.07 20:46) [6]
> Сделай так
> 1.
> type
> TMyShellComboBox = class(TShellComboBox);
> 2.
> ShellComboBox1.Path := 'E:\';
> TMyShellComboBox(ShellComboBox1).Select;
спасибо, сработало.
Johnmen (2007-12-09 20:46:00) [2]Сделай так
1.
type
TMyShellComboBox = class(TShellComboBox);
2.
ShellComboBox1.Path := 'E:\';
TMyShellComboBox(TShellComboBox1).Select;
fog (2007-12-09 19:05:00) [3]
> Johnmen © (09.12.07 18:33) [4]
>
> Сейчас попробовал. Работает.
Формально - да. Получается ShellComboBox1.Root = 'E:\'.
> если потребуется перейти на другой диск через ShellComboBox,
> то придется заново восстаналивать ShellComboBox1.Root :
> = rfMyComputer.
backspace'ом в ShellListView можно вернутся до уровня rfDesktop, при этом в ShellComboBox'е как было 'E:\' так оно и остается. Не годится.
Johnmen (2007-12-09 18:33:00) [4]
> fog (09.12.07 18:31) [3]
Сейчас попробовал. Работает.
fog (2007-12-09 18:31:00) [5]
> Johnmen © (09.12.07 17:16) [1]
> ShellListView1.Root := ShellComboBox1.Path;
Идея хорошая, но не работает. Если изначально ShellComboBox1.Root = rfMyComputer, то изменение ShellListView1.Root повлечет за собой изменение ShellComboBox1.Root; в итоге - если потребуется перейти на другой диск через ShellComboBox, то придется заново восстаналивать ShellComboBox1.Root := rfMyComputer.
{RASkov} (2007-12-09 17:25:00) [6]> [0] fog (09.12.07 16:25)
> ShellComboBox1.Path := 'E:\';
Или попробуй так:
ShellComboBox1. Root:='E:\';
Johnmen (2007-12-09 17:16:00) [7]
ShellComboBox1.Path := 'E:\';
ShellListView1.Root := ShellComboBox1.Path;