Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

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

Всем привет.

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

РЕШЕНО

Надо так.
Код:

if frm_Employees = nil then
  frm_Employees := Tfrm_Employees.Create(TabS[GetCount-1]);

и еще тут
Код:

Parent := TabS[GetCount-1];
Left := 0;
Top := 0;

Hadroran вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помощь с динамическими структурами Алексей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 21:34
Управление динамическими объектами по Handle SibBear Общие вопросы Delphi 3 17.03.2009 20:12


16:32.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru