Форум: "Компоненты";
Текущий архив: 2005.06.06;
Скачать: [xml.tar.bz2];
ВнизПроблема с событием OnPaint :( Найти похожие ветки
← →
Sun bittern © (2004-06-15 08:04) [0]Доброго дня уважаемые!
У возникла следующая проблемка. Имеем наследника от TCustomTabControl т.е. почти стандартный TPageControl только его TTabShet являются TScrollBox. Так вот в методе Paint класса нашего так сказать TTabShet имеем следующее:
procedure TETSDesignerTabSheet.Paint;
var
I, J: Integer;
begin
with Canvas do
begin
Lock;
try
FillRect(ClipRect);
for I := 0 to Width div 4 do
for J := 0 to Height div 4 do
Pixels[I * 4, J * 4] := clBlue;
finally
Unlock;
end;
end;
if Assigned(FOnPaint) then FOnPaint(Self);
end;
Как вроде ни чего сложного, но, создаем данную страничку в приложении динамически (в Run Time):
var
A: TETSDesignerTabSheet;
B: TRichEdit;
begin
A := TETSDesignerTabSheet.Create(ETSDesignerPageControl1);
B := TRichEdit.Create(ETSDesignerPageControl1);
B.Parent := A;
B.Name := "sdssd";
B.Left := 10;
B.Top := 10;
with a do
begin
PageControl := TETSDesignerPageControl(ETSDesignerPageControl1);
Name := "A";
Caption := "AAA";
ETSDesignerPageControl1.ActivePage := a;
end;
end;
На данной вновь созданной страничке все нормально перерисовывается, но если даную страничку создать в Design Time, то на вновь созданной страничке сетка не перерисовывается. В чем может быть проблема? Заранее благодарствуем за помошь и намеки.
Кстати вот код для создания странички в Design Time
procedure TETSDesignerPageControlEditor.ExecuteVerb(Index: Integer);
var
ts : TETSDesignerTabSheet;
begin
case Index of
0:
begin
ts := TETSDesignerTabSheet.Create(Designer.Root);
ts.PageControl := TETSDesignerPageControl(Component);
ts.Name := Designer.UniqueName("ETSTabSheet");
ts.Caption := ts.Name;
TETSDesignerPageControl(Component).ActivePage := ts;
Designer.SelectComponent(ts);
end;
1:
with TETSDesignerPageControl(Component) do
begin
if PageCount > 0 then
if ActivePageIndex < PageCount - 1 then
ActivePageIndex := ActivePageIndex + 1;
end;
2:
with TETSDesignerPageControl(Component) do
begin
if PageCount > 0 then
if ActivePageIndex > 0 then
ActivePageIndex := ActivePageIndex - 1;
end;
3: TETSDesignerPageControl(Component).ActivePage.Free;
end;
end;
← →
Sun bittern © (2004-06-16 13:37) [1]Сам разобрался :)
Страницы: 1 вся ветка
Форум: "Компоненты";
Текущий архив: 2005.06.06;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.012 c