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

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

Наверх




Память: 0.47 MB
Время: 0.046 c
8-1110160125
P_Wlasik
2005-03-07 04:48
2005.11.13
Сравнение звука


9-1120126196
_Max
2005-06-30 14:09
2005.11.13
Bejeweled - > Magikan


11-1111648452
Bil Bal Dur
2005-03-24 10:14
2005.11.13
ListBox + SaveToFile = ?


1-1129203791
VIsa
2005-10-13 15:43
2005.11.13
Помогите разобраться с прозрачностью в TPNGImage


14-1129786565
Иксик
2005-10-20 09:36
2005.11.13
Как называеться мультфильм?