![]() |
ListView: LVM_GETITEMTEXT -> Runtime Error
Hi Leutz,
hab das Problem, dass ich beim Auslesen einer Zelle einer ListView im Report-Style einen Runtime Error erhalte:
Delphi-Quellcode:
Item.cchTextMax := SendMessage(hWndGradesListView,LVM_GETITEMTEXT,GradesListViewEdit_Item,Integer(@Item))+1;
SendMessage(hWndGradesListView,LVM_GETITEMTEXT,GradesListViewEdit_Item,Integer(@item)); Das Ganze im Zusammenhang mit einer Message Procedure (vom ListView gesubclassed)
Delphi-Quellcode:
Hab keine Ahnung warum :? ... hab auch schon das entsprechende Macro ListView_GetItemText probiert ... ebenfalls Runtime Error! :?
var
GradesListViewEdit_Item : Integer; ... function GradesListView_WndProc(hWnd: hWnd; uMsg: UINT; wP: WPARAM; lP: LPARAM):LRESULT; stdcall; var pt : TPoint; nItem,nSubItem : Integer; rc : Trect; FindRect : Boolean; Item : TLVItem; begin case uMsg of WM_LBUTTONDOWN: begin if not GradesListViewEditEnabled then begin //Bestimmt das SubItemRect ... GetCursorPos(pt); ScreenToClient(hWndGradesListView,pt); nItem := SendMessage(hWndGradesListView,LVM_GETSELECTIONMARK,0,0); if nItem > -1 then begin FindRect := FALSE; nSubItem := 0; while (not FindRect) and (nSubItem < 10) do begin rc.top := nSubItem+1; rc.left := LVIR_BOUNDS; SendMessage(hWndGradesListView,LVM_GETSUBITEMRECT,nItem,Integer(@rc)); if (rc.left < pt.x) and (rc.right > pt.x) and (rc.top < pt.y) and (rc.bottom > pt.y) then FindRect := TRUE; if not FindRect then Inc(nSubItem); end; if nSubItem = 10 then nSubItem := -1 else begin GradesListViewEditRect := rc; GradesListViewEdit_Item := nItem; GradesListViewEdit_SubItem := nSubItem; Item.iItem := nItem; Item.iSubItem := nSubItem+1; //Diese 2 Zeilen führen zum Runtime Error Item.cchTextMax := SendMessage(hWndGradesListView,LVM_GETITEMTEXT,GradesListViewEdit_Item,Integer(@Item))+1; SendMessage(hWndGradesListView,LVM_GETITEMTEXT,GradesListViewEdit_Item,Integer(@item)); //Nur wenn ich alle beide Zeilen auskommentiere, kommt kein Fehler mehr, aber dafür auch kein Text ;) GradesListViewEdit_Text := String(Item.pszText); end; end; end; end; end; Result := CallWindowProc(GradesListViewOldMessageProc,hWnd,uMsg,wP,lP); end; Danke im Vorraus für eventuelle Vorschläge! |
Re: ListView: LVM_GETITEMTEXT -> Runtime Error
Habs selbst schon herrausgefunden ... man könnte ja mal das LVItem initialisieren :???:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:43 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