![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ТриВью опять [D6, WinXP]
][ncognito © (2004-09-13 03:45:00)Здравствуйте!
Картина:
Слева три вью, справа грид.
В тривью отображается внутренность некой папки с поддиректориями и файлами... Т.е. грубо говоря, элементы тривью - это папки и файлы.
Как должно работать:
При клике на ветвь, связанныю с файлом, этот файл загружается в грид. При клике на директорию или на другой файл, загруженный файл выгружается и, если клик был по др. файлу, то загружается уже он. Это всё прекрасно фурычит.
Нужно сделать чтоб:
При выгрузке файла, если он был изменён, выдавался запрс, а не сохранить ли изменения... с вариантами ответов "да" "нет" "незнаю(aka cancel)".
Дак вот, в этом вся трабла.
Если надавить на кансель, то хочется чтоб веточка, которая за текущий файл в ответе, опять ВЫДЕЛИЛАСЬ!!!
А не получается. Выделение прескакивает на тот элемент, по которому кликнули...
Надеюсь понятно разъямнил.
Вот код, который не пашет :(
procedure TfmMain.TreeChanging(Sender: TObject; Node: TTreeNode;
var AllowChange: Boolean);
begin
if IsFileChanged=true // если файл изменён
then begin
IsCardChanged:=false;
if MessageDlg('Сохранить изменеия в файле',mtConfirmation, [mbYes, mbNo, mbCancel], 0) = mrCancel
then tvInvTree.Select(LastNode); // пытаюсь вернуть выделение...
end
else begin
if [выбран файл] then begin
LoadCard(Node.Data);
LastNode:=tvInvTree.Selected;
end
else UnLoadCard;
end;
end;
evvcom (2004-09-13 12:12:00) [1]Ну так написал бы, как разрулил. Правильный ответ: TreeView.OnChanging
][ncognito (2004-09-13 04:05:00) [2]Сам разрулил