AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ListView Item Text herausfinden

Ein Thema von TonyMontana · begonnen am 20. Jan 2008 · letzter Beitrag vom 20. Jan 2008
 
TonyMontana
(Gast)

n/a Beiträge
 
#13

Re: ListView Item Text herausfinden

  Alt 20. Jan 2008, 16:23
Also ich habs finally doch schon bereits Gestern hinbekommen, evtl. findet der ein oder andere ja noch nen Fehler:

Delphi-Quellcode:
var
lvc: TLVColumn;
///////////////////////////////////
                   ImageListSm := ImageList_Create(16,16,ILC_COLOR32,0,1);
                   ImageList_AddIcon(ImageListSm,LoadIcon(hInstance,MAKEINTRESOURCE(IDI_ICON2)));
                   SendDlgItemMessage(handle, IDC_LISTVIEW1, LVM_SETIMAGELIST, LVSIL_SMALL, ImageListSm);
                   ImageListNo := ImageList_Create(32,32,ILC_COLOR32,0,1);
                   ImageList_AddIcon(ImageListNo,LoadIcon(hInstance,MAKEINTRESOURCE(IDI_ICON2)));
                   SendDlgItemMessage(handle, IDC_LISTVIEW1, LVM_SETIMAGELIST, LVSIL_NORMAL, ImageListNo);
                   lvc.mask := LVCF_TEXT or LVCF_WIDTH;
                   lvc.pszText := 'Datei';
                   lvc.cx := 250;
                   SendMessage(GetDlgItem(handle, IDC_LISTVIEW1), LVM_INSERTCOLUMN, 0, Integer(@lvc));
                   lvc.pszText := 'Size';
                   lvc.cx := 180;
                   SendMessage(GetDlgItem(handle, IDC_LISTVIEW1), LVM_INSERTCOLUMN, 1, Integer(@lvc));
                   SetView(GetDlgItem(handle, IDC_LISTVIEW1), LVS_REPORT);
und

Delphi-Quellcode:
var
i: integer;
lvitem: TLVItem;
iItem: Integer;
///////////////////////
  i := filesize;
  lvitem.mask := LVIF_TEXT or LVIF_IMAGE;
  lvitem.iImage := 0;
  lvitem.pszText := 'bla';
  lvitem.cchTextMax := MAX_PATH;
  iItem := SendDlgItemMessage(dialoghandle, IDC_LISTVIEW1, LVM_INSERTITEM, 0, Integer(@lvitem));
  ListView_SetItemText(GetDlgItem(dialoghandle, IDC_LISTVIEW1), iItem, 1, pchar(inttostr(i div 1024)+'K'));
Noch ne Frage am Rande...

Ich habe folgendes:
Delphi-Quellcode:
var
pc: pchar;
///////////////////////////////////
                             getmem(pc, MAX_PATH);
                             lvitem.cchTextMax := MAX_PATH;
                             lvitem.pszText := pc;
                             ...
                             freemem(pc);
Ist das so korrekt? ODER soll ich getmem(pc, MAX_PATH + 1); reservieren (weil ja die variable pc ja null-terminiert ist und deshalb nen byte mehr braucht als in cchTextMax angegeben!)? und muss man für die Klassen TLVItem und TLVColumn jetzt Speicher reservieren oder nicht? Und ist es ratsam, zeromemory(@lvitem, SizeOf(lvitem)); zu benutzen? Das initialisiert ja sozusagen nur die klasseninstanz reserviert aber keinen Speicher, ODER? Jedenfalls läuft es fehlerfrei... Soll aber auch bei anderen Fehlerfrei laufen.

An dieser Stelle schon mal Danke an Luckie!!!!

Mir hat das WinAPI Tut hier durchaus etwas geholfen.

BTW: Die MSDN macht mich fertig, sau unübersichtlich und dann muss ich auch noch von c nach delphi umdenken ...

----------
EDIT:
Ok also ich habe mir jetzt auch mal angesehen, was ihr so gepostet hattet. Gehe ich richtig in der Annahme, dass GetMem hier 255 Bytes für die Zeichen reserviert und AUTOMATISCH noch ein extra Byte für das #0-Byte? Muss man sich also um das #0-Byte speichertechnisch keine Sorgen machen??? Jedenfalls versth ich gerade nicht, warum da 255 Bytes alloziert (heißt das so?) werden und dann die cchTextMax Variable auf 256 gesetzt wird... Oder bezieht sich cchTextMax auf die Länge in Bytes PLUS das #0-Byte???
Delphi-Quellcode:
    GetMem(Buffer, 255);
    ...
      lvi.cchTextMax := 256;
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz