Вниз
Скачать: CL | DM;

Проблема с событием 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.024 c
9-1110490520
SergeyR
2005-03-11 00:35
2005.06.06
User Interface


3-1114680917
Bocman
2005-04-28 13:35
2005.06.06
автоинкремент в Paradox


1-1116476115
sapsi
2005-05-19 08:15
2005.06.06
Загрузка строк в Мемо


14-1116264692
Ломброзо
2005-05-16 21:31
2005.06.06
Их нравы


8-1108800982
Rustam
2005-02-19 11:16
2005.06.06
вставка теста в графику(image)




   Наверх