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

Вниз

Пропадают вкладки в PageControl е   Найти похожие ветки 

 
cyber-pilot   (2009-08-27 15:57) [0]

У меня проблемы с отрисовкой вкладок в компоненте PageControl при перемещении по вкладкам. Если вкладок много и последовательно переходить по ним вправо, а потом влево, то некоторые из них начинают пропадать.
У меня Delphi 2007, win XP.


 
cyber-pilot   (2009-08-27 16:00) [1]

Вот пример как сделано перемещение по вкладкам:

unit Unit1;

interface

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

type
 TForm1 = class(TForm)
   PageControl1: TPageControl;
   Button1: TButton;
   Button2: TButton;
   procedure FormCreate(Sender: TObject);
   procedure Button1Click(Sender: TObject);
   procedure Button2Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
 if PageControl1.TabIndex > 0 then
   PageControl1.TabIndex := PageControl1.TabIndex - 1;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 if PageControl1.TabIndex < PageControl1.PageCount - 1 then
   PageControl1.TabIndex := PageControl1.TabIndex + 1;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
 i: Integer;
 vTab: TTabSheet;
begin
 PageControl1.Style := tsFlatButtons;

 for i := 0 to 30 do
 begin
   vTab := TTabSheet.Create(PageControl1);

   vTab.Caption := IntToStr(10000 + i);
   vTab.PageControl := PageControl1;
 end;
end;

end.

Как сделать, чтобы вкладки не пропадали?


 
clickmaker ©   (2009-08-27 17:59) [2]

> некоторые из них начинают пропадать

совсем пропадать? образуются дыры в 10000 + i?


 
cyber-pilot   (2009-08-27 18:15) [3]

Получается вот так: http://s46.radikal.ru/i114/0908/4e/f17885c7d5a1.jpg


 
cyber-pilot   (2009-08-27 18:19) [4]

Вот пример получше: http://i036.radikal.ru/0908/0b/a04dd03411de.jpg


 
clickmaker ©   (2009-08-27 18:20) [5]

а пэйджконтрол точно прижат к левому краю?
если да, то похоже на глюк отрисовки. Если бы они пропадали совсем, было бы что-то типа 10023 10025 10029


 
clickmaker ©   (2009-08-27 18:25) [6]

короче, попробуй PageControl1.Update или Refresh после смены индекса


 
cyber-pilot   (2009-08-27 18:28) [7]

Точно прижат.
Они не совсем пропадают, если преходить между вкладками, то они восстанавливаются. Но ни PageControl1.Update, ни Refresh, ни Invalidate не помогают.


 
Amoeba ©   (2009-08-27 18:44) [8]

Попробуй изменить код таким образом:

procedure TForm1.Button1Click(Sender: TObject);
begin
 with PageControl1 do
   if ActivePageIndex > 0 then
     ActivePage:= ActivePageIndex - 1;
end;


 
Amoeba ©   (2009-08-27 18:48) [9]

Sorry, должно быть так:

procedure TForm1.Button1Click(Sender: TObject);
begin
with PageControl1 do
  if ActivePageIndex > 0 then
    ActivePageIndex:= ActivePageIndex - 1;
end;


 
Amoeba ©   (2009-08-27 18:54) [10]

Еще можно так:

procedure TForm1.Button1Click(Sender: TObject);
begin
with PageControl1 do
 if ActivePageIndex > 0 then
   ActivePage := Pages[ActivePageIndex - 1];
end;


 
cyber-pilot   (2009-08-27 20:01) [11]


> Amoeba ©  

Все равно то же самое.


 
sniknik ©   (2009-08-27 22:48) [12]

они у тебя похоже просто не прорисовываются, попробуй добавь
procedure TForm1.Button1Click(Sender: TObject);
begin
 if PageControl1.TabIndex > 0 then
   PageControl1.TabIndex := PageControl1.TabIndex - 1;
 PageControl1.Repaint;
end;



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

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

Наверх




Память: 0.49 MB
Время: 0.025 c
2-1251913566
Shyrick
2009-09-02 21:46
2009.10.25
SQL-запрос


15-1249935362
XcCCC
2009-08-11 00:16
2009.10.25
сложение цвета


15-1251444756
TarenoKostanay
2009-08-28 11:32
2009.10.25
ОС


15-1251145808
Юрий
2009-08-25 00:30
2009.10.25
С днем рождения ! 25 августа 2009 вторник


1-1221741558
kaif
2008-09-18 16:39
2009.10.25
Кодировка в ресурсах EXE-файла для EventLog