Текущий архив: 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