Und falls das Problem auch zur Laufzeit auftritt...
Das habe ich immer mit einem Workarround gelöst: Wenn Delphi läuft
Code:
FindWindow('TAppBuilder', Nil) > 0;
dann habe ich im OnShow bei Bedarf diese procedure aufgerufen
Delphi-Quellcode:
procedure CheckDataSourceProps(
const Form : TForm);
var
PInfo: PPropInfo;
i, Count : Integer;
L : Longint;
s :
string;
begin
s := '
';
Count := 0;
for i := 0
To Pred(Form.ComponentCount)
do begin
PInfo := GetPropInfo(Form.Components[i].ClassInfo,'
datasource');
if Assigned(PInfo)
then if (PInfo^.Proptype^.Kind = tkClass)
then
try
L := Longint(GetPropValue(TObject(Form.Components[i]),'
datasource'));
if L = 0
then begin
s := s + Form.Components[i].
Name+'
;';
inc(Count);
if Count
mod 10 = 0
then s := s + #13#10;
end;
except
on E:
Exception do begin
ShowErrMessage('
RUFORMCHECK.$45','
Komponente prüfen: '+IntToStr(i)+#13#10+E.
Message);
break;
end;
end;
end;
if s <> '
'
then begin
RuMessage('
Komponentenprüfung, Property «DataSource». '
+'
Komponenten ohne DataSource:'+#13#10#13#10 + s);
ClipBoard.asText := '
Komponenten ohne DataSource:'+#13#10 + s;
end;
end;
Gruss Otto PS: Sorry wenn ich manchmal banale Fragen stelle. Ich bin Hobby-Programmierer und nicht zu faul die SuFu zu benutzen