TVirtualStringTree に表示されているノードの 2 列目を編集しています。ただし、編集が完了した後、Sender.GetNodeData(Node) を使用してテキストを取得できません。テキストが含まれていません。
OnEdited イベントでテキストを取得するにはどうすればよいですか? 編集されたテキストを取得する他の方法はありますか? Virtual Treeview CHM ヘルプ ドキュメントの最初のいくつかの FAQ ページを読み、この SO の質問の回答も参照しましたが、回答が見つかりませんでした。
現在のコードは次のとおりです。
TTherapData = record
TherapID: Integer;
TherapName: String[120];
TherapInstr: String[120];
Selected: Byte;
end;
PTherapData = ^TTherapData;
procedure TfmPatient_Conslt.vstRxList_AsgEdited(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex);
var
TherapData: PTherapData;
begin
TherapData := Sender.GetNodeData(Node);
if Assigned(TherapData) then
begin
TherapData^.TherapInstr := vstRxList_Asg.Text[Node, 1];
showmessage(TherapData^.TherapInstr);
end;
FTherapDataListAsg_Iter := 0;
vstRxList_Asg.NodeDataSize := SizeOf(TTherapData);
vstRxList_Asg.RootNodeCount := 0;
vstRxList_Asg.RootNodeCount := TherapDataList_CountSelectedItems;
end;