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;