Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.06.06;
Скачать: 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 вся ветка

Текущий архив: 2005.06.06;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.042 c
14-1116415568
Смирнов Роман
2005-05-18 15:26
2005.06.06
SLOC метрики


1-1116676673
antol
2005-05-21 15:57
2005.06.06
как ввести логическое выражение


8-1108137652
Eraser
2005-02-11 19:00
2005.06.06
Быстрое сжатие битмапов


9-1110363388
Djon007
2005-03-09 13:16
2005.06.06
Любители Diablo LoD отзовитесь?


14-1116274252
aga
2005-05-17 00:10
2005.06.06
XP prof vs XP home