¡Solucionado! Estaba planteando fatal la lógica del proceso. Lo he dejado así:
Código:
void __fastcall TfSelDocs::AlbaranesChecked(TBaseVirtualTree *Sender, PVirtualNode Node)
{
int nHay = 0;
slEmisor->Clear();
Nodo1 = Albaranes->GetFirst();
while (Nodo1 != NULL)
{
if ((Albaranes->CheckState[Nodo1] == csCheckedNormal || Albaranes->CheckState[Nodo1] == csCheckedPressed) && !Albaranes->HasChildren[Nodo1])
nHay ++;
Nodo1 = Albaranes->GetNext(Nodo1);
}
}
y funciona a la perfección.