AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi ListView: LVM_GETITEMTEXT -> Runtime Error
Thema durchsuchen
Ansicht
Themen-Optionen

ListView: LVM_GETITEMTEXT -> Runtime Error

Ein Thema von cheatzs · begonnen am 3. Feb 2005 · letzter Beitrag vom 3. Feb 2005
Antwort Antwort
Benutzerbild von cheatzs
cheatzs

Registriert seit: 31. Aug 2003
Ort: Altenburg
81 Beiträge
 
#1

ListView: LVM_GETITEMTEXT -> Runtime Error

  Alt 3. Feb 2005, 20:14
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:
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;
Hab keine Ahnung warum ... hab auch schon das entsprechende Macro ListView_GetItemText probiert ... ebenfalls Runtime Error!

Danke im Vorraus für eventuelle Vorschläge!
Thomas Low
THX und viel Spaß beim Coden
Cheatzs
  Mit Zitat antworten Zitat
Benutzerbild von cheatzs
cheatzs

Registriert seit: 31. Aug 2003
Ort: Altenburg
81 Beiträge
 
#2

Re: ListView: LVM_GETITEMTEXT -> Runtime Error

  Alt 3. Feb 2005, 20:22
Habs selbst schon herrausgefunden ... man könnte ja mal das LVItem initialisieren
Thomas Low
THX und viel Spaß beim Coden
Cheatzs
  Mit Zitat antworten Zitat
Antwort Antwort


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 12:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz