Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.07.15;
Скачать: CL | DM;

Вниз

ActivePage в TPageControl   Найти похожие ветки 

 
Катерина ©   (2002-07-03 11:27) [0]

Объястиье, пожалуйста, почему, когда я до открытия формы настраиваю ее составляющие, в частности, TPageControl, устанавливая PageControl1.ActivePageIndex на определенную вкладку, то при открытии формы (OnShow) открыта вкладка действительно та, которая указана, а компоненты на ней - из той вкладки, что последней была открыта при редактировании формы. Перещелкнешь вкладки - всё нормально. Не смертельно, конечно, но довольно неприятно.


 
Skier ©   (2002-07-03 11:31) [1]

>Катерина
А зачем тебе ActivePageIndex может просто обойтись
через ActivePage ?
Т.е. в OnShow пишешь :

PageControl1.ActivePage := YourTabSheet;


 
Катерина ©   (2002-07-03 11:44) [2]

То же самое. Показана на указанная вкладка, а компоненты - с другой


 
Игорь Шевченко ©   (2002-07-03 11:51) [3]

Код привести нельзя, чтобы убедиться в этом странном эффекте ?


 
Skier ©   (2002-07-03 11:52) [4]

>Катерина
Страшные вещи ты рассказываешь :)
Т.к. твоя проблема не очень сложна в описании, то всё это
очень похоже на глюк делфийского PageControl-a.

Попробуй так что ли :
- брось на форму ещё один PageControl
- создай на нём нужное кол-во страниц
- скопируй всё элементы со старых страниц на новые
(копируешь) с удалением
- прибей старый PageControl
- переимену страницы на новом PageControl-е

Может поможет...А в общем всё это довольно странно.


 
Катерина ©   (2002-07-03 12:14) [5]

>>Игорь Шевченко
Я отправила 3 файла: форма, unit и проект Вам на e-mail


 
Катерина ©   (2002-07-03 12:28) [6]

Привожу пример этой ситуации:

Unit1.dfm

object Form1: TForm1
Left = 123
Top = 158
Width = 320
Height = 240
Caption = "Form1"
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -13
Font.Name = "MS Sans Serif"
Font.Style = []
OldCreateOrder = False
OnShow = FormShow
PixelsPerInch = 120
TextHeight = 16
object PageControl1: TPageControl
Left = 16
Top = 8
Width = 289
Height = 193
ActivePage = TabSheet2
TabIndex = 1
TabOrder = 0
object TabSheet1: TTabSheet
Caption = "TabSheet1"
object Label1: TLabel
Left = 16
Top = 120
Width = 41
Height = 16
Caption = "Label1"
end
end
object TabSheet2: TTabSheet
Caption = "TabSheet2"
ImageIndex = 1
OnShow = TabSheet2Show
object Label2: TLabel
Left = 40
Top = 32
Width = 41
Height = 16
Caption = "Label2"
end
end
end
end


Unit1.pas

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls;

type
TForm1 = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
Label1: TLabel;
Label2: TLabel;
procedure FormShow(Sender: TObject);
procedure TabSheet2Show(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormShow(Sender: TObject);
begin
PageControl1.ActivePageIndex
end;

procedure TForm1.TabSheet2Show(Sender: TObject);
begin
PageControl1.ActivePage := TabSheet1;
end;

end.


Project1.dpr

program Project1;

uses
Forms,
Unit1 in "Unit1.pas" {Form1};

{$R *.res}

begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.




 
Skier ©   (2002-07-03 12:38) [7]

>Катерина
Ежели заремить код,

procedure TForm1.FormShow(Sender: TObject) и
procedure TForm1.TabSheet2Show(Sender: TObject)

то вроде бы работает...


 
Skier ©   (2002-07-03 12:40) [8]

>Катерина
Но лучше так :
procedure TForm1.FormShow(Sender: TObject);
begin
//PageControl1.ActivePageIndex;
PageControl1.ActivePage := TabSheet1;
end;

procedure TForm1.TabSheet2Show(Sender: TObject);
begin
//PageControl1.ActivePage := TabSheet1;
end;

end.


 
Катерина ©   (2002-07-03 12:55) [9]

Спасибо! Вроде работает...


 
Игорь Шевченко ©   (2002-07-03 12:59) [10]

Катерина © (03.07.02 12:14)

Так нельзя делать :-)



Страницы: 1 вся ветка

Текущий архив: 2002.07.15;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.015 c
4-47875
Oduvan
2002-05-13 06:33
2002.07.15
Как поставить ниже панели задачь свое окно


1-47340
PSZ
2002-07-01 15:42
2002.07.15
Как Caption на TButton написать в несколько строк ?


4-47868
Serd_hhc
2002-05-11 08:56
2002.07.15
Закрытие окна.


1-47367
DoommY
2002-07-02 07:52
2002.07.15
Как поместить в список все компаненты на форме (имена, заголовки)


4-47870
Иван
2002-05-13 01:53
2002.07.15
WM_ACTIVATE