C ++ Builder DrawGrid InsertControl не перерисовывает правильно после прокрутки - PullRequest
0 голосов
/ 30 апреля 2011

Я пытаюсь добавить несколько элементов управления в сетку. Я могу добавить элементы управления, но после их добавления и прокрутки элемент управления закрашивается в разных ячейках.

Вот код, который я использую для добавления элементов управления в мою сетку:

void __fastcall TForm1 :: Button1Click (TObject * Sender) {

pnlHierBox = новый TPanel (это); // определено на уровне класса

pnlHierBox->Left = 0;
pnlHierBox->Top = 0;
pnlHierBox->Width = 180;
pnlHierBox->Height = 120;

img = new TImage(pnlHierBox);
img->Picture = Image1->Picture;
img->Left = 0;
img->Top = 3;
img->AutoSize = true;
img->Parent = pnlHierBox;

     lbl = new TLabel(pnlHierBox);
lbl->Caption = "Employee 1";
lbl->Left = 24;
lbl->Top= 15;
lbl->Parent = pnlHierBox;

icon = new TImage(pnlHierBox);
icon->Picture = Image2->Picture;
icon->Left = 100
icon->Top = 63;
icon->AutoSize = true;

icon->Parent = pnlHierBox;
rect = DrawGrid1->CellRect(2,0);
     pnlHierBox->Top = rect.Top;
     pnlHierBox->Left = rect.Left;

     DrawGrid1->InsertControl(pnlHierBox);

// Добавить другие элементы управления TPanel в сетку
//

}

1 Ответ

0 голосов
/ 01 мая 2011

Не звоните InsertControl() напрямую. Вместо этого используйте свойство Parent:

// DrawGrid1->InsertControl(pnlHierBox);
pnlHierBox->Parent = DrawGrid1;
...