![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как сделать дерево выбора каталога с CheckBox`ами? [D5, Win95/98]
MegaVolt © (2002-05-16 13:18:00)Например такое как сделано в нортоновских утилитах для UnErase?
Игорь Шевченко (2002-05-21 14:35:00) [1]LoadBitmap, обычно...
Есть еще такое понятие, как System ImageList - тоже в Shell32.dll
MegaVolt (2002-05-21 14:23:00) [2]Кто знает как извлекать картинки откликнитесь :)
MegaVolt (2002-05-21 10:15:00) [3]А как к ним обращатся? Емсли не сложно с примером
MegaVolt (2002-05-21 10:15:00) [4]А как к ним обращатся? Если не сложно с примером
Игорь Шевченко (2002-05-20 17:39:00) [5]Все стандартные картинки находятся в файле Shell32.dll
С уважением,
MegaVolt (2002-05-20 17:26:00) [6]При том со стандартными картинками т.е. Мой компьютенр и пр. Как такие картинки доставать из винды?
MegaVolt (2002-05-20 10:44:00) [7]MBo:
я хочу иметь возможность выбора директорий в дереве. Т.е. указать верхнюю папку и все нижние мне не подходит нужно указывать те папки которые я захочу например как это сделано в КАV 4...
MBo (2002-05-16 18:13:00) [8]Я не видел NU. Чем не устраивают приведенные подходы и чего конкретно надо добиться?
Дмитрий Баранов (2002-05-16 18:00:00) [9]Если ты имеешь в виду тот диалог, который возникает при вызове ф. SHBrowseForFolders, то иначе как полухакерскими методами туда чекбоксы не засунешь, а если и получится, то получать информацию будет шибко сложно.
Выходы
1) Взять 6 делфи, там есть дерево каталогов a la Explorer, извратиться над его стилем, сделать свой диалог (сымитировать стандартный)
2) Скачать откуда-нить компонент FolderTree - сделать то же самое
3) ... или написать самому.
MegaVolt (2002-05-16 17:54:00) [10]Ни кто не знает?
MegaVolt (2002-05-16 14:53:00) [11]Но последнее предложение делает TreeView с CheckBox`ами а заполнять мне придётся самому :( Но например в тех же нортоновских утилитах это сделано черезвычайно похоже на стандартный выбор каталога. Может есть какиенибудь виндяшные стандартные способы типа флага у стандартного диалога выбора каталога?
Дмитрий Баранов (2002-05-16 14:08:00) [12]procedure TForm1.FormCreate(Sender: TObject);
var style: DWORD;
const TVS_CHECKBOXES = $0100;
begin
style := GetWindowLong(TreeView1.Handle, GWL_STYLE);
style := style or TVS_CHECKBOXES;
SetWindowLong(TreeView1.Handle, GWL_STYLE, style);
end;
Krok (2002-05-16 13:50:00) [13]Перекрываешь событие TTreeView.OnClick :
const
ICON_NONE = 0;
ICON_YES= 1;
{....}
procedure TFormCommon.TreeGroupClick(Sender: TObject);
var
Good : boolean;
X_,Y_: integer;
Node,RootNode : TTreeNode;
MousePos: TPoint;
begin
GetCursorPos(MousePos);
with PointToSmallPoint(TreeGroup.ScreenToClient(MousePos)) do
begin
X_ := X;
Y_ := Y;
end;
Node := TreeGroup.GetNodeAt(X_, Y_);
if (Node<>nil) and
(htOnIcon in TreeGroup.GetHitTestInfoAt(X_,Y_)) then
begin
if (Node.ImageIndex=ICON_NONE) then
Node.ImageIndex=ICON_YES
else
Node.ImageIndex=ICON_NONE
end;
В ImageList соответствующие картинки(под номером 0 - без галочки, 1- с галочкой)
Song (2002-05-16 13:19:00) [14]Засунуть TCheckBox в TTreeView