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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.02.2009, 21:43   #1
Djem1991
Форумчанин
 
Аватар для Djem1991
 
Регистрация: 05.01.2009
Сообщений: 130
Лампочка Страшный PageControl

Здрям)

Пошарил форум, по данной теме много говорили... вот только для своего случия я ничего не нашёл..может плохо смотрел)

Вот в чём проблема. Создаю динаммически вкладки с мэмо и эдитом.
вот код создания:
Код:
procedure AddPage(ACaption: string; AControl:
TPageControl);
begin
  NewPage:=TTabSheet.Create(AControl.Owner);
  NewPage.PageControl := AControl;
  NewPage.Caption := ACaption;
  NewPage.Show;
end;
Код:
procedure TForm1.AddMemo;
begin
  if PageControl1.PageCount=1 then N:=PageControl1.ActivePage.TabIndex
  else N:=PageControl1.PageCount-1;
  Memos[n]:=TMemo.Create(Memos[n]);
  with Memos[n] do Begin
    Parent:=NewPage;
    Top:=PosMemoY;
    Left:=PosMemoX;
  end;
end;

procedure TForm1.AddEdit;
Begin
  if PageControl1.PageCount=1 then N:=PageControl1.ActivePage.TabIndex
  else N:=PageControl1.PageCount-1;
  Edits[n]:=TEdit.Create(Edits[n]);
  with Edits[n] do Begin
    Parent:=NewPage;
    Top:=PosEditY;
    Left:=PosEditX;
  end;
end;
всё хорошо, всё супер) массив из мэмок и эдитов благополучно заполняется, потом всё записывается в ини файл и т.д.
Проблема в удалении...
Код:
if (PageControl1.PageCount>1) and (PageControl1.ActivePageIndex>0) then
 PageControl1.ActivePage.Destroy;
хотя, удаляет, и даже даёт создать по новой вкладки,но не всегда(

Проблема в том, что после удаления вкладки нельзя добавить новую вкладку, делфи ругается, хотя если удалить и прогу перезапустить, то всё норм...
Откройте мне глаза...я уже в тупике(
В жизни нет reset'а, а жаль...
Djem1991 вне форума Ответить с цитированием
Старый 08.02.2009, 00:04   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Вы бы в хэлп заглядывали бы - там много полезного...
Например:
Цитата:
Destroy destructor (TTabSheet)
Description
Do not call Destroy directly at runtime. Instead, call Free. Free verifies that the tab sheet is not nil and only then calls Destroy. Destroy removes the tab sheet from the page control and then calls the inherited Destroy method.
Да и пример криэйта тоже есть:
Код:
  with PageControl1 do
    for i := 0 to 9 do
      with TTabSheet.Create(Self) do
      begin
        PageControl := PageControl1;
        TabVisible := (PageIndex mod 2 = 0);
        Caption := 'PageIndex: ' +
        IntToStr(PageIndex) + '  TabIndex: ' +
          IntToStr(TabIndex);
      end;
mihali4 вне форума Ответить с цитированием
Старый 08.02.2009, 00:05   #3
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
По умолчанию

Зря вы создаёте компоненты вручную каждый раз.
Я советую использовать фрейм(почти как форма), достаточно разместить все контролы на него, и настроить их реакции в фрейме.
Установить свойство Align в alClient, для заполнения поверхности вкладки.
Затем всё просто:
• Создать вкладку
• Создать фрейм
• Присвоить родителем созданого фрейма вашу вкладку
всё
Alter вне форума Ответить с цитированием
Старый 10.02.2009, 18:14   #4
Lemo
Форумчанин
 
Аватар для Lemo
 
Регистрация: 13.10.2008
Сообщений: 714
Радость

Вот такой вопрос, как сделать так что бы при режиме проектирование были видны вкладки, а при режеме компиляции мы их не видим?!
Ну тойсть на 1 станице у нас 3 кнопки в которых заложено открытие следующих 3-х страниц, но мы не должны видеть вкладки страниц!
Lemo вне форума Ответить с цитированием
Старый 10.02.2009, 18:25   #5
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от Lemo Посмотреть сообщение
Вот такой вопрос, как сделать так что бы при режиме проектирование были видны вкладки, а при режеме компиляции мы их не видим?!
Ну тойсть на 1 станице у нас 3 кнопки в которых заложено открытие следующих 3-х страниц, но мы не должны видеть вкладки страниц!
Вы о свойстве Visible хоть какое понятие имеете?
В приведенном примере (из хэлпа) видны только нечетные...

Последний раз редактировалось mihali4; 15.03.2009 в 16:01.
mihali4 вне форума Ответить с цитированием
Старый 10.02.2009, 18:37   #6
Lemo
Форумчанин
 
Аватар для Lemo
 
Регистрация: 13.10.2008
Сообщений: 714
Радость

и? при visable=false http://www.valar.ru/upload/png/0209/1234279772_.htm
форма полность пусная при запуске выходит!
Lemo вне форума Ответить с цитированием
Старый 10.02.2009, 19:00   #7
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

М-м-да-а... Тяжелый случай...
А то, что каждый TabSheet имеет такое свойство, посмотреть никак?
И даже специально предназначенное свойство TabVisible ?
А оно фигурирует в примере. И я о нем еще раз уже упоминал...

Последний раз редактировалось mihali4; 15.03.2009 в 16:02.
mihali4 вне форума Ответить с цитированием
Старый 09.03.2009, 18:23   #8
Demagog
Пользователь
 
Регистрация: 11.02.2009
Сообщений: 18
По умолчанию

наверно я задам самый тупой вопрос в теме...а как прописывается доступ к компонентам страницы? на пример к полю Edit1 вкладки pagecontrol1 страница1{tabsheet1}...перепробовал множество вариантов и перерыл все форумы, но такой элементарщины не пишут...
Demagog вне форума Ответить с цитированием
Старый 09.03.2009, 19:11   #9
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

А при чем тут вкладки? Edit1 - он и в Африке Edit1...
И больше одного Edit1 на форме не бывает!
mihali4 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
альтернативный PageControl Roof Компоненты Delphi 9 28.08.2009 02:07
Работа с PageControl Djem1991 Общие вопросы Delphi 4 03.02.2009 15:01
pagecontrol проблемка [koyot] Общие вопросы Delphi 3 29.01.2009 06:39
PageControl chingiz Компоненты Delphi 14 22.11.2008 10:49
Корешки в PageControl! Fellics{новичок} Помощь студентам 2 20.09.2008 22:44