Por algo dije, que no sabía si había chequeado bien. Es que no estoy muy acostumbrado a esa identación de if-then-else que aplicas. Yo prefiero identar (¿es éste el término correcto? de esta forma:me alegra que este programando bien :D, con respecto al error grave solo sucede si no consigue cedula y si no entra en el else....
if (condicion) then begin end else begin end;
De este modo tanto la parte THEN como la parte ELSE están en la misma línea.
Como he dicho, el tema de partir o no el algoritmo eso ya es una cuestión de análisis. Lo primero es preguntarse: ¿esa mini rutina de comprobación sólo se da en dicho contexto (botón)? ¿O puede aparecer en otro lado (a lo largo del ciclo de vida del form? Si va a "dispararse" esa mini rutina (o alguna muy parecida) en varios puntos, es mejor tenerla fuera en un procedimiento o función. Si se considera oportuno tenerla como un método más, la nueva pregunta es ¿Sólo es válido para ésta clase? ¿Puede ser útil en otra?
También, si te gustan los números puedes llevar el uso de indicadores y métricas para ver como se comporta el añadir más métodos a una clase. MPC (Métodos ponderados por clase), ACO (Acomplamiento entre clases objeto), CCM (Carencia de cohesión en los métodos), TC (Tamaño de clase) son algunas de las que pueden aportar un valor de interés.
Por ejemplo, supongamos que tienes en dicho Form, ya un total de 20 métodos. Supongamos que separas a esa rutina en dos, y sólo te limitas a llamarlas en el botón. Añadir esos 2 métodos en dicho Form (suponiendo que sólo para dicho Form es válido contar con éstos) supone un incremento del 10% ( 2/20) en cuanto a cantidad de métodos, lo que nos lleva a un total de 22. A fin de comprobar las cuentas: 20/22 es aproximadamente 91%.
Si sólo se va a usar una vez (en el botón) podría indicar un desperdicio, pero si existe la posibilidad de que esas rutinas se apliquen en variso puntos, es conveniente.
Ahora si deseas, puedes "poderar" tus resultados según la complejidad de los métodos, que es lo que hace MPC.
Teniendo esas rutina como algo indivisible tenemos un valor de V(G) = 6 si mis cálculos son correctos. Normalizado respecto a la cantidad de líneas obtenemos 6/35 = 0,17 o un 17%.
Ahora si separamos la rutina de control de la de inserción tendemos esto: V(G1) = 5, V(G2) = 2. Normalizados son: 5/10 = 0,5 y 2/25 = 0,08. Lo que da un total de 0,58 o un 58%.
Por un lado vemos que si lo asumimos como cantidad es despreciable, pero si consideramos en conjunto su complejidad vemos un incremento de un 0,58 a la métrica MPC; lo cual parecería un tanto impráctico considerando que es un valor bastante algo respecto a ese 17%.
En definitiva se debe analizar otros factores, para tener otra perspectiva.
Yo me limito a ofrecer un plano un tanto más técnico y "numérico". Siempre en última instancia prima la astucia, la experiencia del desarrollador.
No son lo mismo, el Form te consume más recursos que el TDataModule. Para usar los TDataModule basta con añadir en las sección uses de las units necesarias el nombre de la unidad del TDataModule.con respecto a los datamodules..... nunca he sabido como se usa pero yo uso todos los ztables en un solo form que creo que es casi lo mismo
Saludos,