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

Опасен ли CM_RECREATEWND?   Найти похожие ветки 

← →
Mister Twister   (2005-09-10 22:03) [0]

В моей проге заполняется ListView:

 MyListView.Items.BeginUpdate;
 try
... (здесь заполнение)
 finally
   MyListView.Items.EndUpdate;
 end;
 SendMessage(MyListView.Handle, CM_RECREATEWND, 0, 0);

Хотелось бы узнать, насколько корректен вызов CM_RECREATEWND после заполнения списка?
Нет ли тут подводных камней?


← →
Турист   (2005-09-10 23:15) [1]

Может быть это "подводные камни" ?


{ ComCtrls.pas }

procedure TCustomListView.CreateWnd;

 procedure ReadCols;
 var
   Reader: TReader;
 begin
   if FColStream = nil then Exit;
   Columns.Clear;
   Reader := TReader.Create(FColStream, 1024);
   try
     Reader.ReadValue;
     Reader.ReadCollection(Columns);
   finally
     Reader.Free;
   end;
   FColStream.Destroy;
   FColStream := nil;
 end;

begin
 inherited CreateWnd;
 ResetExStyles;
 SetTextBKColor(Color);
 SetTextColor(Font.Color);
 SetAllocBy(AllocBy);
 if FMemStream <> nil then
 begin
   Items.BeginUpdate;
   FReading := True;
   try
     Columns.Clear;
     FMemStream.ReadComponent(Self);
     FMemStream.Destroy;
     FMemStream := nil;
     if OwnerData then Items.Count := FOwnerDataCount;
     if FCheckboxes then RestoreChecks;
     ReadCols;
     Font := Font;
   finally
     Items.EndUpdate;
     FReading := False;
   end;
 end;
 Columns.UpdateCols;
 if (LargeImages <> nil) and LargeImages.HandleAllocated then
   SetImageList(LargeImages.Handle, LVSIL_NORMAL);
 if (SmallImages <> nil) and SmallImages.HandleAllocated then
   SetImageList(SmallImages.Handle, LVSIL_SMALL);
 if (StateImages <> nil) and StateImages.HandleAllocated then
   SetImageList(StateImages.Handle, LVSIL_STATE);
 DoAutoSize;
end;

procedure TCustomListView.DestroyWnd;
begin
 if FMemStream = nil then
   FMemStream := TMemoryStream.Create
 else
   FMemStream.Size := 0;
 if OwnerData then FOwnerDataCount := Items.Count;
 FMemStream.WriteComponent(Self);
 FMemStream.Position := 0;
 if FCheckboxes then
   SaveChecks;
 inherited DestroyWnd;
end;



Страницы: 1 вся ветка

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



Память: 0.45 MB
Время: 0.025 c
1-1129690270
Александр Слоб.
2005-10-19 06:51
2005.11.13
Динамический массив: ошибка компилятора?


4-1126632307
GanibalLector
2005-09-13 21:25
2005.11.13
Весы "Масса-К"


2-1130313822
alless
2005-10-26 12:03
2005.11.13
Как передать ф-ию в качестве параметра дин. массив?


14-1130140271
syte_ser78
2005-10-24 11:51
2005.11.13
какие базы (локальные) поодерживают украинскую локализацию?


3-1128082475
Top
2005-09-30 16:14
2005.11.13
(Оракля)Как организовать автоперемотку сиквенса в ADO




   Наверх