Einzelnen Beitrag anzeigen

AnyKey

Registriert seit: 15. Apr 2008
173 Beiträge
 
#10

Re: Dynamische Komponenten in MDIChild

  Alt 17. Aug 2009, 13:40
Also, hier noch mal der gesamte Quelltext:

Delphi-Quellcode:
procedure TfMain.ActLoadKonfigExecute(Sender: TObject);
var Child : TfMDIChild;
begin
// if FileExists(TFileOperations.GetFilePath+'Konfig.xml') then
  begin
    if Assigned(fMain.ActiveMDIChild) then
    begin
      Child := fMain.ActiveMDIChild;
      // die GroußBox und somit auch das RichEdit anpassen
      with Child.GroupBox1 do
      begin
        Child.GroupBox1.Align := alNone;
        Child.GroupBox1.Height := 298;
        Child.GroupBox1.Top := 168;
      end;
      // ScrollBox erzeugen
      Child.AScrollBox := TScrollBox.Create(Child);
      with Child.AScrollBox do
      begin
        Name := 'ScrollBox1';
        Parent := Child;
        Left := 0;
        Top := 0;
        Width := Child.Width - 9;
        Height := 153;
        Anchors := [akLeft, akTop, akRight];
        TabOrder := 0;
      end;
      // StringGrid erzeugen
      Child.ASplitGrid := TStringGrid.Create(Child);
      with Child.ASplitGrid do
      begin
        Name := 'StringGrid1';
        Parent := Child.AScrollBox;
        Left := 0;
        Top := 0;
        Width := 0;
        Height := 0;
        Align := alClient;
        FixedCols := 0;
        RowCount := 2;
        Options := [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goRangeSelect, goColSizing, goEditing];
        TabOrder := 0;
      end;
    end;
// end;
// else
  begin
    MessageBox(0,'Konfigurationsdatei wurde nicht gefunden!','Datei nicht gefunden',MB_ICONWARNING);
  end;
end;
ich habe eine MDI Anwendung als Projekt erstellt, dort gibt es wie gesagt die Klasse TfMDIChild, mit der die Childs erstellt werden. Das Problem ist jetzt, dass wenn ich in nur einem (von vielleicht 4) MDIChild, also dem Aktiven spezielle Komponenten dynamisch erzeugen will, muss ich ja wissen welches Child gerade aktiv ist. Das so zu machen: Child := fMain.ActiveMDIChild; halte ich auch für sinnvoll, soetwas in der art hatte ich mir auch schon überlegt, wusste wie gesagt nur noch nicht wie... Das Problem das jetzt dabei aber entsteht ist, das die Variable Child von eben dem Typ TfMDIChild ist und der Rückgabewert von ActiveMDIChild nunmal TForm als typ hat. Da dies inkompatibel ist kann es ja nicht funktionieren... Also meine frage, wie bekomme ich es doch noch hin das es funktioniert das Aktive Child herauszufinden um meine dynamischen Komponenten auf ihm zu erzeugen?!?!

Gruß und Danke
AnyKey
  Mit Zitat antworten Zitat