Tomoyo
							
								Участник 
								
								 
								  Offline
								
								
								
								
							 
						 | 
						
							
								  | 
								
									
									 «  : 26-10-2008 18:29 »   | 
								
								 | 
							  
							 
							Разместить на форме пять страниц с закладками. Написать процедуру, позволяющую пользователю программы видеть только предыдущую и следующую закладки, помимо закладки на активной странице. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							RXL
							
						 | 
						
							
								  | 
								
									
									 « Ответ #1 : 26-10-2008 18:57 »   | 
								
								 | 
							  
							 
							Смотри свойства страниц TabVisible. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С. 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							Tomoyo
							
								Участник 
								
								 
								  Offline
								
								
								
								
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #2 : 27-10-2008 17:30 »   | 
								
								 | 
							  
							 
							Но ведь там можно только задать изначально видимость/невидимость страницы. А мне прогу надо написать. У меня была мысль сделать их изначально все видимыми с помощью TabVisible, а затем путем прибавления и отнимания 1 от i-той страницы задавать видимость предыдущей и последующей.  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							x77
							
								Модератор
								
								 
								  Offline
								Пол:   
								
								меняю стакан шмали на обратный билет с Марса.
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #3 : 28-10-2008 10:07 »   | 
								
								 | 
							  
							 
							задача не понятна. что значит "написать программу"? что эта программа делать будет? 
  в принципе, можно в OnChange делать видимым Tab с индексом i + 2, невидимым Tab с индексом i, и ставить активным Tab с индексом i + 1. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							Tomoyo
							
								Участник 
								
								 
								  Offline
								
								
								
								
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #4 : 28-10-2008 10:28 »   | 
								
								 | 
							  
							 
							Программа во что делает: при нажатии на закладку страницы остается видимой она, предыдущая и последующая. Все остальные невидимые. И так при нажатии на 2,3 и 4. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							x77
							
								Модератор
								
								 
								  Offline
								Пол:   
								
								меняю стакан шмали на обратный билет с Марса.
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #5 : 28-10-2008 11:03 »   | 
								
								 | 
							  
							 
							ну так надо перехватить OnChange и в нём нужным индексам указать Visible = FALSE. что конкретно не получается? 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							Tomoyo
							
								Участник 
								
								 
								  Offline
								
								
								
								
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #6 : 29-10-2008 15:37 »   | 
								
								 | 
							  
							 
							Извините за беспокойство)Я уже сделала. И понимаю, что можно было сделать намного короче.
 
 
  unit Unit7;
  interface
  uses   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,   Dialogs, StdCtrls, ComCtrls;
  type   TForm7 = class(TForm)     PageControl1: TPageControl;     TabSheet1: TTabSheet;     TabSheet2: TTabSheet;     TabSheet3: TTabSheet;     TabSheet4: TTabSheet;     TabSheet5: TTabSheet;     Button1: TButton;     Button2: TButton;     Button3: TButton;     procedure PageControl1Change(Sender: TObject);     procedure PageControl1Enter(Sender: TObject);     procedure Button1Click(Sender: TObject);     procedure Button2Click(Sender: TObject);     procedure Button3Click(Sender: TObject);   private     { Private declarations }   public     { Public declarations }   end;
  var   Form7: TForm7;
  implementation
  {$R *.dfm}
    procedure TForm7.PageControl1Change(Sender: TObject);    begin      case Pagecontrol1.ActivePageIndex of       0:       begin         Tabsheet2.TabVisible:=true;         Tabsheet3.TabVisible:=false;       end;
        1:       begin         Tabsheet1.TabVisible:=true;         Tabsheet3.TabVisible:=true;         Tabsheet4.TabVisible:=false;
        end;
        2:       begin         Tabsheet1.TabVisible:=false;         Tabsheet2.TabVisible:=true;         Tabsheet4.TabVisible:=true;         Tabsheet5.TabVisible:=false;       end;
        3:       begin         Tabsheet2.tabVisible:=false;         Tabsheet3.TabVisible:=true;         Tabsheet5.TabVisible:=true;       end;
        4:       begin         Tabsheet2.TabVisible:=false;         Tabsheet3.TabVisible:=false;         Tabsheet4.TabVisible:=true;       end;       end;       end;
  procedure TForm7.PageControl1Enter(Sender: TObject); begin Pagecontrol1.ActivePageIndex:=0; Tabsheet3.TabVisible:=false; Tabsheet4.TabVisible:=false; Tabsheet5.TabVisible:=false; end;
  procedure TForm7.Button1Click(Sender: TObject); begin button2.Visible:=false; button3.Visible:=true; end;
 
  procedure TForm7.Button2Click(Sender: TObject); begin button3.Visible:=false; button1.Visible:=true; end;
  procedure TForm7.Button3Click(Sender: TObject); begin button1.Visible:=false; button2.Visible:=true; end;
 
 
 
  end. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							zubr
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #7 : 29-10-2008 15:40 »   | 
								
								 | 
							  
							 
							Tomoyo, очень криво. Подумай, а если бы закладок было 100, представь сколько кода надо писать. Попробуй найти более красивое решение (оно есть). 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							Tomoyo
							
								Участник 
								
								 
								  Offline
								
								
								
								
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #8 : 29-10-2008 16:01 »   | 
								
								 | 
							  
							 
							Мне сегодня препод тоже самое сказал)) Я знаю, как переделать. Спасибо всем. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	 |