Hallo DPler/innen,
ich möchte in einem VirtualStringTree (VST) die Einträge durch drücken der Leertaste markieren, wie z.B. in einigen
Dateibrowsern (Total Commander). Jedoch klappt das ganze irgendwie noch nicht so ganz. Das Problem ist wenn ich einem
Eintrag versuche den Status "markiert" zugeben ist dieser ja bereits markiert, ich stehe ja auf dem Eintrag und somit
ist dieser ja bereits in gewisser weise markiert.
Das VST ist im Report Modus.
Mein erster Versuch sieht wie folgt aus nur bringt das Leider nichts und habe bisher auch keine Idee das umzusetzten.
Delphi-Quellcode:
procedure TfrmMain.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
var
Node : PVirtualNode;
begin
if Key = VK_SPACE then begin
Node := vstScroller.FocusedNode;
if Assigned(Node) then begin
if not (vsSelected in Node.States) then
Node.States := Node.States + [vsSelected]
else
Node.States := Node.States - [vsSelected];
end;{if}
end;{if}
end;
Es geht also darum beliebige Einträge mit der Leertaste zu markieren bzw. die
Markierung wieder aufzuheben wenn man erneut die Leertaste betätigt.