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

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

Обновление окна [D6, Win95/98, WinME]


Felix_the_cat ©   (2003-03-29 04:44:00) 

Такой вопрос:
Из своей программы меняю у папки иконку, но обновление происходит только, когда я перехожу в окно Explorer"a и нажимаю F5. Пробовал и SendMessage отправлять, и в реестре UpdateMode менял - не хочет оно обновляться само. Может, кто знает, как это лечится? Заранее спасибо.


Felix_the_cat   (2003-03-30 13:04:00) [1]

Огромное спасибо, Almaz - всё прекрасно работает.


Almaz   (2003-03-30 04:59:00) [2]

Попробуйте так:

procedure TForm1.Button1Click(Sender: TObject);
var
Save: String;
Dummy: Cardinal;
begin
with TRegistry.Create do
try
RootKey := HKEY_CURRENT_USER;
if not OpenKey("Control Panel\Desktop\WindowMetrics", FALSE) then Abort;
Save := ReadString("Shell Icon size");
if Save = "" then Abort;
WriteString("Shell Icon size", IntToStr(StrToInt(Save) - 1));
SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, SPI_SETNONCLIENTMETRICS, 0, SMTO_ABORTIFHUNG, 10000, Dummy);
WriteString("Shell Icon size", Save);
SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, SPI_SETNONCLIENTMETRICS, 0, SMTO_ABORTIFHUNG, 10000, Dummy);
finally
Free;
end;
end;


Удачи.


Наверх

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