Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.138.101.4] |
|
Сообщ.
#1
,
|
|
|
все знакоми с окошком OpenDialog.
на нем имеется кнопка выбора режима показа. как из программы открывая OpenDialog укозать ему в коком виде показывать фаилы? |
Сообщ.
#2
,
|
|
|
Тоесть в каком виде????
В каком формате,что ли ты это имел ввиду? |
Сообщ.
#3
,
|
|
|
вот что я имею в виду
Прикреплённый файлuntitled1.JPG (31.64 Кбайт, скачиваний: 228) |
Сообщ.
#4
,
|
|
|
Не говорю что невозможно, но помоему - никак. Ведь этот самый OpenDialog в своих Options имеет флаг ofOldStyleDialog, который если установить в True показывает устаревший диалог открытия, в котором вообще нет понятия о том как отображать файлы: в виде таблицы, в виде списка, или еще как нибудь...
|
Сообщ.
#5
,
|
|
|
а через API?
|
Сообщ.
#6
,
|
|
|
Через АПИ - это локальный хук на появление окна, и дальше видимо сообщения посылать.
|
Сообщ.
#7
,
|
|
|
M Тема перенесена из Delphi -> Delphi: Общие вопросы. |
Сообщ.
#8
,
|
|
|
Берешь хендл SysListView32 из OPenDialog, потом толи изменить стиль, то ли просто послать - незнаю, след. мессаги : (из CommCtrl)
LVS_ICON - This style specifies icon view. LVS_LIST - This style specifies list view. и т.д... |
Сообщ.
#9
,
|
|
|
да... чтото нечего не получается.
|
Сообщ.
#10
,
|
|
|
Я думаю тут универсально не сделать. Всё зависит от ОС.
Может статься так, что в Win XP можно сделать, а для w2k не будет работать, т.к. там другая иерархия окон в диалоге. Добавлено в : Я ща проверил в WinSight этот диалог. Иконка, на которую ты нажимаешь, чтобы выбрать тип представления - это TToolBar. Когда нажимаешь появляется окно. Его тип в дельфёвом диалоге WinSight определить не смог Я попробовал в Опере - там это ComboBoxEx32. Наверно и в Дельфи тоже самое (не думаю, что в Опере вызывается особенный диалог). Так что всё возможно. Просто посылаешь CB_сообщения этому окну для выбора нужного пункта. Думаю должно сработать. Или можно сэмулировать движение мыши. |
Сообщ.
#11
,
|
|
|
Есть хорошая примочка FileBox Extender. Так вот она с этим прекрастно справляется в Win9x, Win2k и WinXP. Вот его окно настройки:
Правда, исходников нет. Поэтому посмотреть как там сделано трудно. Но я, уже лет пять как успешено пользуюсь . |
Сообщ.
#12
,
|
|
|
Петрович, ему надо в каком-то одном диалоге в программе.
|
Сообщ.
#13
,
|
|
|
Не, он это во ВСЕ файловые диалоги ВСЕХ программ добавляет. Можно конечно для избранных запретить.
Добавлено в : Вот ссылка на сайт программы http://www.hyperionics.com/files/index.asp |
Сообщ.
#14
,
|
|
|
Kobra, что именно ? вот кусок кода, всё работает
//тебе надо будет достучаться до твоего SysListView32, как я уже и говорил //а для примера сделал проще, в окне explorer'a :) var h:hwnd; buf:array [0..255] of char; s:string; mystyle:dword; begin h:=WindowFromPoint(CrPos); if boolean(GetClassName(h,buf,256)) then s:=buf; if s='SysListView32' then begin mystyle:=GetWindowLong(h, GWL_STYLE); mystyle:=mystyle or LVS_LIST;//список SetWindowLong(h,GWL_STYLE,mystyle); end; end; |
Сообщ.
#15
,
|
|
|
Вот пример, правда на Си, как можно достать хэндл списка: Изменение диалога OpenFile Совместив с кодом P.O.D'а, можно добиться желаемого резалта...
|