Einzelnen Beitrag anzeigen

stalkingwolf

Registriert seit: 6. Mai 2011
540 Beiträge
 
#1

TVirtualStringTree Zelle selektieren

  Alt 8. Mär 2023, 12:08
Moin,

Kunden hatten den Wunsch das in den TVirtualStringTree auch Zellen selektiert werden können wenn man nicht direkt auf den Text in der Zelle klickt.
Wenn ich das korrekt sehe, dann kann das Element dies nicht.

Also habe ich versucht dies bei ColumnClick selber zu machen.
Allerdings ist damit nicht die gesamte Zelle markiert, sondern nur der Text in der Zelle. Schaut nicht so toll aus.

Jemand eine Idee wie das gehen könnte oder schon einmal selber gemacht?

Hier mein Code.

Code:
procedure TFMain.vtColumnClick(
  Sender: TBaseVirtualTree; Column: TColumnIndex; Shift: TShiftState);
var p:TPoint;
    node:PVirtualNode;
    hitInfo:THitInfo;
begin

    GetCursorPos(p);
    Windows.ScreenToClient(vt.Handle, p);
    vt.GetHitTestInfoAt(p.X, p.Y,true,hitInfo);

    if ((hitInfo.HitColumn >= _MINCOL) and (hitInfo.HitColumn <= _MAXCOL)) then begin

        node:=hitinfo.HitNode;
        if node = nil then exit;

        vt.FocusedColumn := 3;
        vtLieferListvtSelected[node] := TRUE;
    end;
end;
  Mit Zitat antworten Zitat