no es tan dificil.
pondre un ejemplo, espero ser lo suficientemente claro.
primero, el modelo.
campomaestro - integer
subcampo - integer
subsubcampo - integer
subsubsubcampo - integer
detalle - varchar(80)
tenemos una relación, donde estamos intentando clasificar, el ejemplo pondre temas, suntemas, etc.
campomaestro será 1
subcampo será 0
subsubcampo será 0
subsubsubcampo será 0
detalle será "español"
en otras palabras la clave: 1 0 0 0 hace referencia a español
el caso esta en encerrar el valor, si quieres posisionarte en "ortografia",
cuya clave es 1 1 0 0, tienes que hacer un recorrido por la tabla o en su caso un query enviando parametros exactos.
si tenemos 4 compos, los cuales listan los nombres segun su jerarquia, el primer combo listará el nombre de las materias, la clave será X 0 0 0, solo esos, que campomaestro sea diferente a cero, segun lo que selecciones en campomaestro, enviar ese indice a la consulta de subcampo para listar todos los dependientes de campomaestro según sea su indice., y listarás: X X 0 0, asi sucesivamente, hasta llegar al nivel que requieres, y asi podras calcular la posición exacta en tu tabla jerarquica o de llaves compuestas
esto es un ejemplo de una sola tabla donde la composición de la llave esta dentro de la misma, si tienes relación en otras tablas, solo calculas la fuente de datos (otras tablas) y envias a tu delete a la tabla.
si usas TQuerys es más facil hacer que usando un TTable (al menos para mi) pero si usas un TTable, usa la función Locate (creo, casi no recuerdo como hacerlo con un TTable)
espero te sirva.
salu2