Einzelnen Beitrag anzeigen

mm1256

Registriert seit: 10. Feb 2014
Ort: Wackersdorf, Bayern
642 Beiträge
 
Delphi 10.1 Berlin Professional
 
#8

AW: Datenkomponenten verlieren Datasource

  Alt 15. Dez 2016, 19:50
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
  Mit Zitat antworten Zitat