Resuelvo esto de otra manera. Escribí una pequeña utilidad que carga un archivo DFM y busca propiedades que no deberían estar presentes. Incluyendo database.connected = true values.
Esto se puede modificar para que funcione con las propiedades adecuadas. Aquí también he puesto el núcleo del código.
Para hacer esto realmente útil, debe usar esta utilidad en su script de compilación (yo uso FinalBuilder). Mi secuencia de comandos comienza haciendo un bucle en archivos .dfm, eliminando cualquiera de estas propiedades, y luego compila y ejecuta las pruebas unitarias. Si pasan, entonces continúa para construir la aplicación principal. Para mí, esta es una mejor manera que hacer que falle una prueba de unidad, ya que puede partir de un punto bueno conocido garantizado.
nState := 0;
bFound := False;
for nFileLoop := 0 to memoFile.Lines.Count - 1 do
begin
szLine := memoFile.Lines[nFileLoop];
case nState of //
0:
begin
if(0 <> Pos('TADOConnection', szLine)) then
begin
szSeeking := 'Connected';
nState := 1;
end
else if(0 <> Pos('TADOTable', szLine)) then
begin
szSeeking := 'Active';
nState := 1;
end
else if(0 <> Pos('TADOQuery', szLine)) then
begin
szSeeking := 'Active';
nState := 1;
end
else if(0 <> Pos('TDBISAMTable', szLine)) then
begin
szSeeking := 'Active';
nState := 1;
end
else if(0 <> Pos('TDBISAMDatabase', szLine)) then
begin
szSeeking := 'Connected';
nState := 1;
end
else if(0 <> Pos('TDBISAMSession', szLine)) then
begin
szSeeking := 'Active';
nState := 1;
end
else if(0 <> Pos('TDBISAMQuery', szLine)) then
begin
szSeeking := 'Active';
nState := 1;
end;
end;
1 :
begin
bFound := True;
if(0 <> Pos('end', szLine)) then
begin
nState := 0;
end
else if(0 <> Pos(szSeeking, szLine)) then
begin
nPos := Pos('=', szLine);
if nPos > 0 then
begin
memoFile.Lines[nFileLoop] := Copy(szLine, 1, nPos) + ' False';
end;
end;
end;
end; // case
end;
dulce, nunca supo que existía. Gracias. – TrevorD