Вниз
Скачать: 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.022 c
3-1114873152
DIS
2005-04-30 18:59
2005.06.06
master-detail SQLзапрос


1-1116589938
juice
2005-05-20 15:52
2005.06.06
Как реализовать закрытие многопоточного приложения ?


10-1093501666
Vitalik
2004-08-26 10:27
2005.06.06
Создание COM сервера


14-1116559538
gek
2005-05-20 07:25
2005.06.06
Не очень понятная проблема с телевизором


3-1115099064
_DB_
2005-05-03 09:44
2005.06.06
SQL запрос на выбор записей, начанающихся с определенного слова




   Наверх