Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.10.25;
Скачать: [xml.tar.bz2];

Вниз

Пропадают вкладки в 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.043 c
2-1251462711
denis_lunev
2009-08-28 16:31
2009.10.25
Сохранение изменений свойств в EDIT


2-1251275225
TarenoKostanay
2009-08-26 12:27
2009.10.25
Task Bar


4-1220621752
Demo_nik
2008-09-05 17:35
2009.10.25
Как определить путь к каталогу в котором нахожусь?


2-1250751050
kyn66
2009-08-20 10:50
2009.10.25
Исчезает окно предупреждения.


2-1251882705
sanx
2009-09-02 13:11
2009.10.25
Получить от компилятора текущую дату в констатнту, как?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский