Конференция "Начинающим" » Проблемы с динамическими объектами
 
  • Hadroran © (31.12.17 13:03) [0]
    Всем привет.

    На динамически создаваемых TabSheet-ах пытаюсь открыть соответствующую этому табу форму. Однако в моем коде она открывается на весь экран, закрывая главную.
    Подскажите, что не так сделал?


     private
       TabS: array of TcxTabSheet;
       function GetCount : integer;

    function Tfrm_Main.AddTabSheet: TcxTabSheet;
    begin
     SetLength(TabS, GetCount + 1);
    //  TabS[GetCount-1] := TcxTabSheet.Create(nil);
     TabS[GetCount-1] := TcxTabSheet.Create(pc_MainPages);
     TabS[GetCount-1].PageControl := pc_MainPages;
     Result := TabS[GetCount-1];
    end;

    procedure Tfrm_Main.MainTreeClick(Sender: TObject);
    begin
     if DM.T_MTree.FieldByName('ID_PARENT').AsInteger > 0 then
       begin
         if not SearchSameTabs(DM.T_MTree.FieldByName('TAG').AsInteger, TSheetIndex) then
           begin
             pc_MainPages.Visible := true;
             AddTabSheet;  
             TabS[GetCount-1].Caption := ClickNode.Text + ' (' + DM.T_MTree.FieldByName('TAG').AsString + ')';
             TabS[GetCount-1].Tag := DM.T_MTree.FieldByName('TAG').AsInteger;
             TabS[GetCount-1].Name := 'TabSheet_' + DM.T_MTree.FieldByName('TAG').AsString;
    //          TabS[GetCount-1].OnResize := TabSheetResize;

             pc_MainPages.ActivePageIndex := GetCount-1;
           end
         else
           pc_MainPages.ActivePageIndex := TSheetIndex;
       end;

     case DM.T_MTree.FieldByName('TAG').AsInteger of
       301: begin
              if frm_Employees = nil then
                frm_Employees := Tfrm_Employees.Create(nil);
                with frm_Employees do
                  begin
                    Parent := FindComponent('TabSheet_301') as TcxTabSheet;
                    Left := 0;
                    Top := 0;
                    Show;
                  end;
            end;
     end;
    end;

  • Hadroran © (31.12.17 14:31) [1]
    РЕШЕНО

    Надо так.
    [CODE]
    if frm_Employees = nil then
     frm_Employees := Tfrm_Employees.Create(TabS[GetCount-1]);
    [/CODE]
    и еще тут
    [CODE]
    Parent := TabS[GetCount-1];
    Left := 0;
    Top := 0;
    [/CODE]
 
Конференция "Начинающим" » Проблемы с динамическими объектами
Есть новые Нет новых   [118658   +23][b:0][p:0.002]