Вниз
Скачать: 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
3-1114659708
Deshifrator
2005-04-28 07:41
2005.06.06
Ошибка метода GetIndexForFields


1-1116657594
seregka
2005-05-21 10:39
2005.06.06
Параграфы в Richedit


1-1116881272
Erick
2005-05-24 00:47
2005.06.06
Как нарисовать точку из 3-х координат?


1-1116774448
Ralf
2005-05-22 19:07
2005.06.06
Region


9-1106547979
wild_arg
2005-01-24 09:26
2005.06.06
GLScene. Antialiasing.




   Наверх