Por que no pruebas en el evento OnDblClick del TreeView ahi puedes tomar el valor del puntero para hacer una consulta o para lo que gustes, te dejo un pedazo de codigo, espero te sirva
Código Delphi
[-]
procedure TForm1.treeDblClick(Sender: TObject);
var
datos:PNodeData;
begin
datos:=tree.GetNodeData(Tree.FocusedNode);
showMessage(datos.Texto);
end;
PAra tu caso supongo que seria
Código Delphi
[-]
procedure TForm1.treeDblClick(Sender:Tobject);
var
datos:PMyData;
begin
datos:=tree.GetNodeData(Tree.FocusedNode); showMessage(datos.IdSemestre);<- con esto tomas la clave del semestre
end;
Espero te sirva.