Главная страница
    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.47 MB
Время: 0.068 c
11-1207080348
Lotos
2008-04-02 00:05
2009.10.25
Splitter


15-1251452949
xayam
2009-08-28 13:49
2009.10.25
Подскажите есть ли для php библиотека для роботы с д-ми Word .doc


2-1251718687
abun
2009-08-31 15:38
2009.10.25
icns - иконки для MAC


2-1251199307
Fr
2009-08-25 15:21
2009.10.25
Выделение слова в строке TMemo


15-1250873376
TUser
2009-08-21 20:49
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский