Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Upotreba listview-a preko win32 apija

[es] :: Pascal / Delphi / Kylix :: Upotreba listview-a preko win32 apija

[ Pregleda: 2060 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

qwertzuiopasdfghjkl

Član broj: 94834
Poruke: 86
*.adsl.net.t-com.hr.



Profil

icon Upotreba listview-a preko win32 apija11.08.2006. u 07:57 - pre 215 meseci
Kreiram ga, al nikako da bude "poslozen" kako to zelim, evo primjer:



Code:

var lv1:HWND;
     column:LV_COLUMN;
     item:LV_ITEM;
//_hwnd je parent prozor od ovog listview-a


//::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.
            InitCommonControls;
            lv1:=CreateWindowEx(0, 'SysListView32', '',
             WS_VISIBLE or WS_CHILD or LVS_REPORT or LVS_EX_FULLROWSELECT or  WS_BORDER,0,21, 391, 255, _hwnd, 0, hInstance, nil);

            FillMemory(@column,SizeOf(column),0);
            column.mask:=LVCF_TEXT or LVCF_WIDTH or LVCF_SUBITEM;
            column.cx:=100;
            column.pszText:='Filename';
            SendMessage(lv1,LVM_INSERTCOLUMN,0,LongInt(@column));

            FillMemory(@column,SizeOf(column),0);
            column.mask:=LVCF_TEXT or LVCF_WIDTH or LVCF_SUBITEM;
            column.cx:=100;
            column.pszText:='Last access time';
            SendMessage(lv1,LVM_INSERTCOLUMN,1,LongInt(@column));

            FillMemory(@column,SizeOf(column),0);
            column.mask:=LVCF_TEXT or LVCF_WIDTH or LVCF_SUBITEM;
            column.cx:=100;
            column.pszText:='Last modified time';
            SendMessage(lv1,LVM_INSERTCOLUMN,2,LongInt(@column));

            FillMemory(@column,SizeOf(column),0);
            column.mask:=LVCF_TEXT or LVCF_WIDTH or LVCF_SUBITEM;
            column.cx:=100;
            column.pszText:='Size [KB]';
            SendMessage(lv1,LVM_INSERTCOLUMN,3,LongInt(@column));


Sad smo kreirali kolone, sad idem dodavat iteme u njih:
Code:

                  FillMemory(@item,SizeOf(item),0);
                  item.mask:=LVIF_TEXT
                  item.iItem:=0;           //ide u prvi red
                  item.iSubItem:=0;      //ide u prvu kolonu ('Filename')
                  item.pszText:='1';
                  SendMessage(lv1,LVM_INSERTITEM,0,LongInt(@item));
                  item.iItem:=0;           //ide u prvi red
                  item.iSubItem:=1;      //ide u drugu kolonu (''Last access time'')
                  item.pszText:='2';
                  SendMessage(lv1,LVM_INSERTITEM,0,LongInt(@item));
                  item.iItem:=0;           //ide u prvi red
                  item.iSubItem:=1;      //ide u trecu kolonu (''Last modified time'')
                  item.pszText:='3';
                  SendMessage(lv1,LVM_INSERTITEM,0,LongInt(@item));
                  item.iItem:=0;           //ide u prvi red
                  item.iSubItem:=1;      //ide u cetvrtu kolonu ('Size[KB]')
                  item.pszText:='4';
                  SendMessage(lv1,LVM_INSERTITEM,0,LongInt(@item));



Sliku imate u attachu... tako trebam dobit a ja ne dobijem nista ;)
On meni samo upise '1' a ove ostale (2,3,4) ne postoje.. ne kotnam gdje sam pogrijesio..

pozdrav

[Ovu poruku je menjao qwertzuiopasdfghjkl dana 11.08.2006. u 09:08 GMT+1]

[Ovu poruku je menjao qwertzuiopasdfghjkl dana 11.08.2006. u 09:08 GMT+1]
Prikačeni fajlovi
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Upotreba listview-a preko win32 apija11.08.2006. u 15:44 - pre 215 meseci
> Sliku imate u attachu... tako trebam dobit a ja ne dobijem nista ;)
> On meni samo upise '1' a ove ostale (2,3,4) ne postoje.. ne kotnam gdje sam pogrijesio..

Sa LVM_INSERTITEM dodaješ novu stavku u kontrolu a postavljanje vrednosti pomoćnih kolona se radi pomoću LVM_SETITEM, na primer:



Code:

  FillMemory(@item, SizeOf(item), 0);

  item.mask := LVIF_TEXT;
  item.pszText := 'A';
  ListView_InsertItem(lv1, item);

  item.iSubItem := 1;
  item.pszText := 'B';
  ListView_SetItem(lv1, item);

  item.iSubItem := 2;
  item.pszText := 'C';
  ListView_SetItem(lv1, item);

 
Odgovor na temu

qwertzuiopasdfghjkl

Član broj: 94834
Poruke: 86
*.adsl.net.t-com.hr.



Profil

icon Re: Upotreba listview-a preko win32 apija11.08.2006. u 19:00 - pre 215 meseci
Tako je.. a bem li ga kolko sam se napatio s tim ;)

thx
 
Odgovor na temu

qwertzuiopasdfghjkl

Član broj: 94834
Poruke: 86
*.adsl.net.t-com.hr.



Profil

icon Re: Upotreba listview-a preko win32 apija11.08.2006. u 19:53 - pre 215 meseci
A bem ga.. kako da dobijem linije izmedju redova i stupaca..
lv1:=CreateWindowEx(0, 'SysListView32', '',
WS_CHILD or LVS_REPORT or LVS_EX_FULLROWSELECT or LVS_EX_GRIDLINES or WS_VISIBLE or LVS_REPORT,0,21, 470, 444,
_hwnd, 0, hInstance, nil);

Mislim da je to to al nije... koji stil treba da ubacim/izbacim?
 
Odgovor na temu

obucina

Član broj: 38191
Poruke: 723

Jabber: obucina


+7 Profil

icon Re: Upotreba listview-a preko win32 apija11.08.2006. u 19:54 - pre 215 meseci
Koja muka te naterala da radis sa Win32 API-jem? Ovo sam radio samo jednom, u VC++, i pobegao glavom bez obzira. Sta fali TListView komponenti?
BTW, pregledaj i ListView makroe, ne znam da li imaju pandan u Delphi-ju, ali ako imaju, olaksace ti posao.
 
Odgovor na temu

qwertzuiopasdfghjkl

Član broj: 94834
Poruke: 86
*.adsl.net.t-com.hr.



Profil

icon Re: Upotreba listview-a preko win32 apija11.08.2006. u 21:56 - pre 215 meseci
Ma nije tako tesko sad kad gledam... volim win32 api ;)

trebalo je samo dodat SendMessage(lv1, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_GRIDLINES);
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Upotreba listview-a preko win32 apija

[ Pregleda: 2060 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.