Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  159

•  TDictionary Custom Sort  3 336

•  Fast Watermark Sources  3 087

•  3D Designer  4 846

•  Sik Screen Capture  3 339

•  Patch Maker  3 551

•  Айболит (remote control)  3 656

•  ListBox Drag & Drop  3 013

•  Доска для игры Реверси  81 690

•  Графические эффекты  3 943

•  Рисование по маске  3 247

•  Перетаскивание изображений  2 628

•  Canvas Drawing  2 751

•  Рисование Луны  2 578

•  Поворот изображения  2 188

•  Рисование стержней  2 168

•  Paint on Shape  1 568

•  Генератор кроссвордов  2 235

•  Головоломка Paletto  1 767

•  Теорема Монжа об окружностях  2 229

•  Пазл Numbrix  1 685

•  Заборы и коммивояжеры  2 057

•  Игра HIP  1 282

•  Игра Go (Го)  1 230

•  Симулятор лифта  1 475

•  Программа укладки плитки  1 216

•  Генератор лабиринта  1 548

•  Проверка числового ввода  1 365

•  HEX View  1 497

•  Физический маятник  1 358

 
скрыть


Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

Отображать элементы TListView как группу XP



Оформил: DeeCo

// declarations from commctrl.h 
type
   TLVGROUP = record
     cbSize: UINT;
     mask: UINT;
     pszHeader: LPWSTR;
     cchHeader: Integer;
     pszFooter: LPWSTR;
     cchFooter: Integer;
     iGroupIdL: Integer;
     stateMask: UINT;
     state: UINT;
     uAlign: UINT;
   end;

   tagLVITEMA = packed record
     mask: UINT;
     iItem: Integer;
     iSubItem: Integer;
     state: UINT;
     stateMask: UINT;
     pszText: PAnsiChar;
     cchTextMax: Integer;
     iImage: Integer;
     lParam: lParam;
     iIndent: Integer;
     iGroupId: Integer;
     cColumns: UINT;
     puColumns: PUINT;
   end;
   TLVITEMA = tagLVITEMA;

 const
   LVM_ENABLEGROUPVIEW = LVM_FIRST + 157;
   LVM_MOVEITEMTOGROUP = LVM_FIRST + 154;
   LVM_INSERTGROUP     = LVM_FIRST + 145;

   LVIF_GROUPID = $0100;

   LVGF_HEADER  = $00000001;
   LVGF_ALIGN   = $00000008;
   LVGF_GROUPID = $00000010;

   LVGA_HEADER_LEFT   = $00000001;
   LVGA_HEADER_CENTER = $00000002;
   LVGA_HEADER_RIGHT  = $00000004;


 procedure TForm1.Button1Click(Sender: TObject);
 var
   LvGroup: TLVGROUP;
   LvItemA: TLVITEMA;
   ListItem: TListItem;
   I: Byte;
 begin
   // Fill listview with random data 
  Randomize;
   for i := 1 to 10 do
   begin
     ListItem := ListView1.Items.Add;
     ListItem.Caption := IntToStr(Random(100));
   end;

   SendMessage(ListView1.Handle, LVM_ENABLEGROUPVIEW, 1, 0);

   // Create Group1 
  FillChar(LvGroup, SizeOf(TLVGROUP), 0);
   with LvGroup do
   begin
     cbSize := SizeOf(TLVGROUP);
     mask := LVGF_HEADER or LVGF_ALIGN or LVGF_GROUPID;
     pszHeader := 'Group 1';
     cchHeader := Length(LvGroup.pszHeader);
     iGroupIdL := 0;
     uAlign := LVGA_HEADER_CENTER;
   end;
   SendMessage(ListView1.Handle, LVM_INSERTGROUP, 0, Longint(@LvGroup));

   // Create Group2 
  FillChar(LvGroup, SizeOf(LvGroup), 0);
   with LvGroup do
   begin
     cbSize := SizeOf(TLVGROUP);
     mask := LVGF_HEADER or LVGF_ALIGN or LVGF_GROUPID;
     pszHeader := 'Group 2';
     cchHeader := Length(LvGroup.pszHeader);
     iGroupIdL := 1;
     uAlign := LVGA_HEADER_LEFT
   end;
   SendMessage(ListView1.Handle, LVM_INSERTGROUP, 1, Longint(@LvGroup));

   // Assign items to the groups 
  for I := 0 to ListView1.Items.Count - 1 do
   begin
     with LvItemA do
     begin
       FillChar(LvItemA, SizeOf(TLvItemA), 0);
       mask := LVIF_GROUPID;
       iItem := I;
       iGroupId := Random(2);
     end;
     SendMessage(ListView1.Handle, LVM_SETITEM, 0, Longint(@LvItemA))
   end;
 end;



 // XPManifest needed! 







Copyright © 2004-2024 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте