Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Virtual Treeview свой редактор отдельно для каждой ячейки

3.2K
11 ноября 2008 года
Гудвин
186 / / 22.12.2007
Здравствуйте.
Как узнать по какой ячейке произошел щелчек мышью у компонента TVirtualDrawTree, то есть узнать её колонку?
Ситуация такая: нужно чтоб при нажатии на любую из ячеек сразу появлялся редактор, отдельный для каждой колонки. В сети нашел примеры, но они расчитаны только на одну колонку:

Код:
const WM_STARTEDITING=WM_USER+778;

...

procedure WMStartEditing(var Message: TMessage); message WM_STARTEDITING;

...

// при щелчке по ячейки вызывается редактор
procedure TFrame_Form1.WMStartEditing(var Message: TMessage);
var
  Node: PVirtualNode;
begin
    Node := Pointer(Message.LParam);
    VD.EditNode(Node, 0);//нужно вторым параметром передавать индекс колонки
end;


procedure TFrame_Form1.VDChange(Sender: TBaseVirtualTree; Node: PVirtualNode);
begin
  with Sender do
  begin
    if Assigned(Node) and not (tsIncrementalSearching in TreeStates) then
    begin
      PostMessage(Self.Handle, WM_STARTEDITING, Integer(Node), 0);
{было бы идеально индекс колонки передавать здесь вторым
параметром, но событие OnColumnClick вызывается после onChange}
    end;
  end;
end;


примеры как с ним работать брал отсюда:архив_статьи примеры
3.2K
11 ноября 2008 года
Гудвин
186 / / 22.12.2007
спасибо, решение нашел такое: вызывать редактирование по onmouseup
 
Код:
procedure TFrame_Form1.VDMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
VD.EditNode(VD.FocusedNode,   VD.FocusedColumn);
end;
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог