TPageControl, программно поменять вкладки местами

Квейд
Дата: 20.09.2019 12:02:03
Пробовал играться с PageIndex, не вышло

When a movie is over, it's a black
Мимопроходящий
Дата: 20.09.2019 12:04:01

20.09.2019 12:02, Квейд пишет:
> Пробовал играться с PageIndex, не вышло

а после того как поменял индексы принудительно перерисовать?

Posted via ActualForum NNTP Server 1.5

Квейд
Дата: 20.09.2019 12:08:44
нет, это не помогает
Dmitri Krizhanovski
Дата: 20.09.2019 12:11:56
Квейд,

CE.
И так и так работает:
PageControl1.ActivePage.PageIndex := 0;
PageControl1.Pages[3].PageIndex := 1;
softwarer
Дата: 20.09.2019 12:12:54
Квейд
Пробовал играться с PageIndex, не вышло

Поиграйся получше. У меня сходу вышло.

type
  TForm14 = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    TabSheet3: TTabSheet;
    TabSheet4: TTabSheet;
    TabSheet5: TTabSheet;
    Panel1: TPanel;
    procedure Panel1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form14: TForm14;

implementation

{$R *.dfm}

procedure TForm14.Panel1Click(Sender: TObject);
begin
  with PageControl1.ActivePage do PageIndex := PageIndex - 1;
end;
Мимопроходящий
Дата: 20.09.2019 12:15:54

20.09.2019 12:08, Квейд пишет:
> нет, это не помогает

странно.
у меня работает.
procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
  if RadioGroup1.ItemIndex = 0 then
    begin
      TabSheet2.PageIndex := 0;
      TabSheet1.PageIndex := 1;
    end
  else
    begin
      TabSheet2.PageIndex := 1;
      TabSheet1.PageIndex := 0;
    end
end;


Posted via ActualForum NNTP Server 1.5

Гаджимурадов Рустам
Дата: 20.09.2019 12:16:53
Квейд> Пробовал играться с PageIndex, не вышло

Показывай, как пробовал-то. Шо, PageControl1.Pages[0].PageIndex := 1 не работает?

Posted via ActualForum NNTP Server 1.5

Гаджимурадов Рустам
Дата: 20.09.2019 12:17:46
Чую я, он поменял два (2) раза. Минус на минус дал плюс.

Posted via ActualForum NNTP Server 1.5

Квейд
Дата: 20.09.2019 12:20:45
часть вкладок "прячется", согласно некоей логике
var
  T, MyTab: TTabSheet;

//…
    MyTab := nil;
    for I := 0 to PageControlCard.PageCount - 1 do
    begin
      T := PageControlCard.Pages[I];
      if Info.FSheetFactory.IsTabOwnedByFactory(T) then
        T.TabVisible := True
      else
        if SameText(T.Name, 'MyTab') then
          MyTab := T;
        T.TabVisible := False
    end;


Мне нужно, чтобы MyTab стала видимой и находилась в самом конце (была последней вкладкой).

    if Assigned(MyTab) then
    begin
      MyTab.PageIndex := PageControlCard.PageCount - 1; // не уверен что это правильно
      MyTab.TabVisible := True
    end;


все равно эта вкладка всегда первая
Мимопроходящий
Дата: 20.09.2019 12:23:08

разбей задачу на две.
отлаживай сперва одно, потом другое.

Posted via ActualForum NNTP Server 1.5