RAD Studio VCL Reference
|
Occurs after a new tab is selected.
property OnChange: TNotifyEvent;
__property TNotifyEvent OnChange;
Write an OnChange event handler to take specific action immediately after the selected tab changes. Use the TabIndex property to determine which tab is now selected. This is the opportunity to make any changes to the control that reflect the new state implied by the selected tag.
Before the value of TabIndex changes, an OnChanging event occurs.
C++ Examples:
/* This project requires a Page Control. You will need to populate the Page Control by right clicking and selecting New Page from the context menu. As the tabs are selected by the user, the Page Control OnChange event fires, which causes the form caption to display the captions of each of the TTabSheets attached to the Page Control. Note the use of the Form’s OnShow event handler to set the caption when the form first appears. This occurs before any changes trigger the OnChange event of the Page Control. */ void __fastcall TForm1::PageControl1Change(TObject *Sender) { Caption = AnsiString("Now working on tab: " + PageControl1->ActivePage->Caption); } void __fastcall TForm1::FormShow(TObject *Sender) { PageControl1Change(Sender); }
/* This example uses a tab control to display the contents of several files. To run the example, place a tab control on a form and add a memo control that fits into its client area. Be sure to leave enough room for the tabs when they appear. Then add an OpenDialog and a button to the form. The "Add a file" button adds a single file to the tabcontrol. The "Assign files" button removes previous files and can be used to assign multiple files. To assign multiple files, use CNTL Select or SHIFT Select to select files in the OpenDialog. */ void __fastcall TForm1::Add_a_fileClick(TObject *Sender) { OpenDialog1->Options << ofAllowMultiSelect << ofFileMustExist << ofHideReadOnly; if (OpenDialog1->Execute()) { int index = TabControl1->Tabs->Add(OpenDialog1->FileName); Memo1->Lines->LoadFromFile(TabControl1->Tabs->Strings[index]); TabControl1Change(Sender); } } void __fastcall TForm1::Assign_filesClick(TObject *Sender) { OpenDialog1->Options << ofAllowMultiSelect << ofFileMustExist << ofHideReadOnly; if (OpenDialog1->Execute()) { TabControl1->Tabs->Assign(OpenDialog1->Files); Memo1->Lines->LoadFromFile(TabControl1->Tabs->Strings[TabControl1->TabIndex]); } } /* Place the following code in the tab control’s OnChange event handler: */ void __fastcall TForm1::TabControl1Change(TObject *Sender) { Memo1->Lines->LoadFromFile( TabControl1->Tabs->Strings[TabControl1->TabIndex]); }
/* This example requires a new TPageControl, with no new pages created at design time. The form OnCreate event handler adds several new TabSheet controls to the Page Control. The Page Control’s OnChange event handler displays a message dialog when the user changes tabs. The message dialog contains the captions for the tabs immediately before and after the active tab. */ void __fastcall TForm1::FormCreate(TObject *Sender) { for (int i = 0; i < 10; i++) { TTabSheet *pPage = new TTabSheet(PageControl1); // These tabsheets will be cleaned up by their owner (PageControl1). pPage->PageControl = PageControl1; pPage->Caption = AnsiString("Page") + IntToStr(i); pPage->Name = AnsiString("ts") + pPage->Caption; } } void __fastcall TForm1::PageControl1Change(TObject *Sender) { AnsiString PrevCaption, NextCaption; TPageControl *pPC = dynamic_cast<TPageControl *>(Sender); PrevCaption = pPC->FindNextPage(pPC->ActivePage, false, false)->Caption; NextCaption = pPC->FindNextPage(pPC->ActivePage, true, false)->Caption; ShowMessage(AnsiString("Previous tab caption: '") + PrevCaption + AnsiString("' Next tab Caption: '") + NextCaption + AnsiString("'")); }
Delphi Examples:
{ This project requires a Page Control. You will need to populate the Page Control by right clicking and selecting New Page from the context menu. As the tabs are selected by the user, the Page Control OnChange event fires, which causes the form caption to display the captions of each of the TTabSheets attached to the Page Control. Note the use of the Form’s OnShow event handler to set the caption when the form first appears. This occurs before any changes trigger the OnChange event of the Page Control. } procedure TForm1.PageControl1Change(Sender: TObject); begin Caption := ' Now working on tab: ' + PageControl1.ActivePage.Caption; end; procedure TForm1.FormShow(Sender: TObject); begin PageControl1Change(Sender); end;
{ This example uses a tab control to display the contents of several files. To run the example, place a tab control on a form and add a memo control that fits into its client area. Be sure to leave enough room for the tabs when they appear. Then add an OpenDialog and a button to the form. The "Add a file" button adds a single file to the tabcontrol. The "Assign files" button removes previous files and can be used to assign multiple files. To assign multiple files, use CNTL Select or SHIFT Select to select files in the OpenDialog. } procedure TForm1.Add_a_fileClick(Sender: TObject); var index : integer; begin OpenDialog1.Options := [ofAllowMultiSelect, ofFileMustExist, ofHideReadOnly]; if OpenDialog1.Execute then begin index:= TabControl1.Tabs.Add(OpenDialog1.FileName); Memo1.Lines.LoadFromFile(TabControl1.Tabs[index]); TabControl1Change(Sender); end; end; procedure TForm1.Assign_filesClick(Sender: TObject); var index : integer; begin OpenDialog1.Options := [ofAllowMultiSelect, ofFileMustExist, ofHideReadOnly]; if OpenDialog1.Execute then begin TabControl1.Tabs.Assign(OpenDialog1.Files); Memo1.Lines.LoadFromFile( TabControl1.Tabs[TabControl1.TabIndex]); end; end; { Place the following code in the tab control’s OnChange event handler: } procedure TForm1.TabControl1Change(Sender: TObject); begin with TabControl1 do Memo1.Lines.LoadFromFile(Tabs[TabIndex]); end;
{ This example requires a new TPageControl, with no new pages created at design time. The form OnCreate event handler adds several new TabSheet controls to the Page Control. The Page Control’s OnChange event handler displays a message dialog when the user changes tabs. The message dialog contains the captions for the tabs immediately before and after the active tab. } procedure TForm1.FormCreate(Sender: TObject); var i: Integer; begin for i := 0 to 9 do with TTabSheet.Create(Self) do begin PageControl := PageControl1; Caption := 'TabSheet #' + IntToStr(i); end; end; procedure TForm1.PageControl1Change(Sender: TObject); var PrevCaption, NextCaption: ShortString; begin with (Sender as TPageControl) do begin PrevCaption := FindNextPage(ActivePage, False, False).Caption; NextCaption := FindNextPage(ActivePage, True, False).Caption; end; ShowMessage('Previous tab caption: "' + PrevCaption + '" Next tab Caption: "' + NextCaption + '"'); end;
Copyright(C) 2009 Embarcadero Technologies, Inc. All Rights Reserved.
|
What do you think about this topic? Send feedback!
|