FillChar(OpenFN, SizeOf(OpenFN), 0);
szFile := '';
with OpenFN do begin
HWNDOwner := MainForm;
Flags := OFN_HIDEREADONLY or OFN_NOCHANGEDIR;
lStructSize := SizeOf(OpenFN);
lpstrFile := szFile;
nMaxFile := sizeOf(szFile);
case Save of
0: lpstrTitle := ' Îòêðûòü...';
1: lpstrTitle := ' Ñîõðàíèòü...';
2: lpstrTitle := ' Ñîõðàíèòü êàê...';
end;
lpstrInitialDir := PChar(FolderPath);
lpstrFilter := PChar('Ôàéëû *.' + Ext + #0'*.' + Ext + #0);
lpstrDefExt := PChar(Ext);
end;
if Save = 0 then Result := GetOpenFileName(OpenFN)
else Result := GetSaveFileName(OpenFN);
стандартный дельфовский TOpenDialog тоже вызывает GetOpenFileName, и ниче не тормозит обычно...
Вот и я думаю, почему старый ВЦЛовский вариант работает быстрее, какой там флаг надо поставить? А то просто ужас, какие затупы.
Что-то гонял-гонял GetOpenFileName из WinAPI (и на XP и на Семерке), никак не получается задержка в 5 секунд. Даже при нажатии на "My Computer", когда система должна определить иконку флоппи, которого у меня в помине нет, зависание отсутствует. И к сетевым ресурсам (при условии, что ни приложение ни открываемая папка не лежат в сетевых папках) нет обращения.
Были подобные жалобы при использовании Qt, но там другой случай, Дельфей это не касается никак.
Это не может быть связано с тем, что у меня семёрка и "всего лишь" гиг оперативы?
А вот это вполне возможно. 1 гиг - это минимальные требования для Win7, может с этим тормоза и связаны...