Главная страница
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.042 c
2-1129658185
Darkwing
2005-10-18 21:56
2005.11.13
Можно ли создать БД не имея готовых файлов (исп. TTable и BDE)


2-1129802515
Андрей__
2005-10-20 14:01
2005.11.13
DBLookUpComboBox


14-1130042170
SergP.
2005-10-23 08:36
2005.11.13
MSWORD


2-1129787961
Green-Templar
2005-10-20 09:59
2005.11.13
random(2)*2


2-1130227210
555
2005-10-25 12:00
2005.11.13
Помогите плийз!!!!