Einzelnen Beitrag anzeigen

Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#10

Re: Frames über deren Namen dynamisch aufrufen

  Alt 8. Dez 2008, 15:46
Hallo,

die Umwandlung eines Strings in eine Klassenreferenz kann mit Hilfe der Funktion Delphi-Referenz durchsuchenGetClass durchgeführt werden. Die Frame-Klassen müssen dazu einmalig mittels Delphi-Referenz durchsuchenRegisterClass registriert werden.

Delphi-Quellcode:
type
  TFrameClass = class of TFrame;
  
function FindFrameClass (const aClassName: string; var aFrameClass: TFrameClass): Boolean;
var
  ClassRef : TPersistentClass;
begin
  ClassRef := GetClass(aClassName);
  Result := Assigned(ClassRef) and ClassRef.InheritsFrom(TFrame);
  if Result then
    aFrameClass := TFrameClass(ClassRef);
end;
  
// Beispiel für den Einsatz der Funktion:
  
var
  FrameClass : TFrameClass;
begin
  RegisterClass (TFrameShowInteressenten);
  RegisterClass (TFrameObjekte);
  RegisterClass (TfrGewerbeMaskeAngebot);

  if FindFrameClass('TfrGewerbeMaskeAngebot', FrameClass) then
    if (not Assigned(FActiveFrame)) or not (FActiveFrame is FrameClass) then
      begin
        FreeAndNil (FActiveFrame);
        FActiveFrame:= FrameClass.Create(Self);
        FActiveFrame.Parent := pnlFrameParent;
      end;
end;
So oder ähnlich sollte das funktionieren.

Gruß Hawkeye
  Mit Zitat antworten Zitat