![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() собственно сабж. можно ли както при последующем открытии опендиалога сделать чтоб по умолчанию был выделен последний открытый им файл? а то надо открывать файлы из папки с большой кучей файлов,и каждый раз пролистывать ОД к нужному файлу,при этом надо еще визуально найти этот файл..долговато получается
|
#2
|
||||
|
||||
![]() Указывать его до открытия OpenDialog-а.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#3
|
|||
|
|||
![]() Цитата:
|
#4
|
||||
|
||||
![]() Если OnSelectionChange не поможет, тогда нужно перехватить WndProc контрола, а именно сообщение WM_INITDIALOG. Дать отработать родному обработчику, а затем выделить нужный пункт.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#5
|
|||
|
|||
![]() Цитата:
нельзя ли пожалуйста поподробнее,что прописывать в OnSelectionChange ? |
#6
|
||||
|
||||
![]() Попробуй такой код:
Код:
procedure TForm1.ODSelectionChange(Sender: TObject); var wnd, lv : HWND; I : Integer; ClassName : array[0..MAX_PATH + 1] of Char; function IndexOf : Integer; var Info : TLVFindInfo; begin with Info do begin flags := LVFI_STRING or LVFI_PARTIAL; psz := PChar(ChangeFileExt(ExtractFileName(OD.FileName), '')); end; Result := ListView_FindItem(lv, -1, Info); end; begin if (OD.FileName <> '') and (ExtractFileName(OD.FileName) <> '') then begin wnd := GetWindow(GetParent(OD.Handle), GW_CHILD); while wnd > 0 do begin GetClassName(wnd, ClassName, MAX_PATH); if ClassName = 'SHELLDLL_DefView' then Break; wnd := GetWindow(wnd, GW_HWNDNEXT); end; lv := GetWindow(wnd, GW_CHILD); I := IndexOf; if (lv <> 0) and (I >= 0) then begin ListView_EnsureVisible(lv, I, True); ListView_SetItemState(lv, I, LVIS_SELECTED, LVIS_SELECTED); ListView_SetItemState(lv, I, LVIS_FOCUSED, LVIS_FOCUSED); Windows.SetFocus(lv); end; end; end; Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |