Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.05.14;
Скачать: CL | DM;

Вниз

Добавление в ListView с помощью WinApi   Найти похожие ветки 

 
Svin   (2006-02-21 04:33) [0]

Привет! Каким образом можно добавить элементы в три столбца в ListView, используя WinApi? В справке Delphi не разобрался. Если можно, приведите пример.


 
n0name   (2006-02-21 11:29) [1]

function ListView_InsertColumn(hListView: HWND; Text: PChar; Index: Integer; Width: Integer): Integer;
var
Column: _LVCOLUMN;
begin
ZeroMemory(@Column, sizeof(Column));
Column.mask := LVCF_WIDTH or LVCF_TEXT;
if Index = -1 then Index := 0;
if Index <> 0 then
 begin
  Column.mask := Column.mask or LVCF_SUBITEM;
  Column.iSubItem := Index;
 end;
Column.cx := Width;
Column.pszText := Text;

result := SendMessageA(hListView, LVM_INSERTCOLUMNA, Index, Integer(@Column));
end;

function ListView_InsertItem(hListView: HWND; Text: PChar; ItemID: Integer): Integer;
var
Item: _LVITEM;
begin
ZeroMemory(@Item, sizeof(Item));
Item.mask := LVIF_TEXT;
Item.pszText := Text;
Item.iItem := ItemID;
result := SendMessageA(hListView, LVM_INSERTITEMA, 0, Integer(@Item));
end;

function ListView_SetItemText(hListView: HWND; Text: PChar; SubItem: Integer; ItemID: Integer): Integer;
var
Item: _LVITEM;
begin
ZeroMemory(@Item, sizeof(Item));
Item.pszText := Text;
Item.iSubItem := SubItem;
result := SendMessageA(hListView, LVM_SETITEMTEXTA, ItemID, Integer(@Item));
end;

procedure ListView_AddToReport(hDialog: HWND; ID, Status, Subj: PChar; Index: Integer);
var
hListView: HWND;
begin
hListView := GetDlgItem(hDialog, 1000);

ListView_InsertItem(hListView, ID, Index);
ListView_SetItemText(hListView, Status, 1, Index);
ListView_SetItemText(hListView, Subj, 2, Index);
end;


 
n0name   (2006-02-21 11:29) [2]

function ListView_InsertColumn(hListView: HWND; Text: PChar; Index: Integer; Width: Integer): Integer;
var
Column: _LVCOLUMN;
begin
ZeroMemory(@Column, sizeof(Column));
Column.mask := LVCF_WIDTH or LVCF_TEXT;
if Index = -1 then Index := 0;
if Index <> 0 then
 begin
  Column.mask := Column.mask or LVCF_SUBITEM;
  Column.iSubItem := Index;
 end;
Column.cx := Width;
Column.pszText := Text;

result := SendMessageA(hListView, LVM_INSERTCOLUMNA, Index, Integer(@Column));
end;

function ListView_InsertItem(hListView: HWND; Text: PChar; ItemID: Integer): Integer;
var
Item: _LVITEM;
begin
ZeroMemory(@Item, sizeof(Item));
Item.mask := LVIF_TEXT;
Item.pszText := Text;
Item.iItem := ItemID;
result := SendMessageA(hListView, LVM_INSERTITEMA, 0, Integer(@Item));
end;

function ListView_SetItemText(hListView: HWND; Text: PChar; SubItem: Integer; ItemID: Integer): Integer;
var
Item: _LVITEM;
begin
ZeroMemory(@Item, sizeof(Item));
Item.pszText := Text;
Item.iSubItem := SubItem;
result := SendMessageA(hListView, LVM_SETITEMTEXTA, ItemID, Integer(@Item));
end;

procedure ListView_AddToReport(hDialog: HWND; ID, Status, Subj: PChar; Index: Integer);
var
hListView: HWND;
begin
hListView := GetDlgItem(hDialog, 1000);

ListView_InsertItem(hListView, ID, Index);
ListView_SetItemText(hListView, Status, 1, Index);
ListView_SetItemText(hListView, Subj, 2, Index);
end;


 
Svin   (2006-02-22 06:10) [3]

Я читал, что от способа добавления зависит скорость удаления. Т.е. через WinApi лучше всего. Но для 10000 элементов скорость удаления не такая хорошая, как, например, в WinAmp"е. Скажите, пожалуйста, ListView вообще стоит использовать, если нужно быстродействие? И каким образом его можно добиться, если да?



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

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

Наверх




Память: 0.47 MB
Время: 0.042 c
3-1142684878
xayam
2006-03-18 15:27
2006.05.14
Проблема с SQL


2-1145876006
cherman
2006-04-24 14:53
2006.05.14
Проблема


2-1145769671
Akudza
2006-04-23 09:21
2006.05.14
Функция bintoint


1-1144229332
kyn66
2006-04-05 13:28
2006.05.14
Перехват ввода с клавиатуры


15-1145504038
antonn
2006-04-20 07:33
2006.05.14
про копирайты