Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.12.2017, 13:34   #1
Hadroran
 
Регистрация: 14.10.2010
Сообщений: 5
По умолчанию Проблемы с динамическими объектами

Всем привет.

На динамически создаваемых 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.2017, 14:31   #2
Hadroran
 
Регистрация: 14.10.2010
Сообщений: 5
По умолчанию

РЕШЕНО

Надо так.
Код:
if frm_Employees = nil then
  frm_Employees := Tfrm_Employees.Create(TabS[GetCount-1]);
и еще тут
Код:
Parent := TabS[GetCount-1];
Left := 0;
Top := 0;
Hadroran вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помощь с динамическими структурами Алексей21357 Помощь студентам 3 23.11.2013 21:36
Работа с динамическими объектами medved6216 Общие вопросы Delphi 3 17.11.2011 19:08
проблемы с работой с динамическими массивами pinkiller Общие вопросы C/C++ 4 09.11.2011 20:10
Access Violation при закрытии формы с динамическими объектами Adonidi Общие вопросы Delphi 3 20.11.2010 20:34
Управление динамическими объектами по Handle SibBear Общие вопросы Delphi 3 17.03.2009 19:12