Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi ListView.FindCaption löst AV aus (https://www.delphipraxis.net/67876-listview-findcaption-loest-av-aus.html)

Sascha L 21. Apr 2006 09:49


ListView.FindCaption löst AV aus
 
Hallo,

wenn ich folgenden Code verwende:

Delphi-Quellcode:
LVResults.FindCaption(0,Edit1.Text,false,true,false);
Bekomme ich eine AV. Das versteh ich nicht.

LVResults enthält Items und in Edit1 steht was drin.

ViewStyle ist auf vsReport.

Gruß
Sascha

mirage228 21. Apr 2006 09:56

Re: ListView.FindCaption löst AV aus
 
Hi,

Wo (also in welcher Zeile der VCL) geschiet denn die Exception, wenn Du mal mit der Option "Debug DCUs" kompilierst?

Ansonsten musst Du mal schauen, ob
Edit1 = nil oder ob LVResults = nil ist.

mfG
mirage228

Sascha L 21. Apr 2006 09:58

Re: ListView.FindCaption löst AV aus
 
Die AV kommt hier:

Delphi-Quellcode:
  function TListItem.GetIndex: Integer;
begin
  if Owner.Owner.OwnerData then // hier bleibt er stehen
    Result := FIndex else
    Result := Owner.IndexOf(Self);
end;


Wie gesagt in der ListView und im Edit-Feld steht defintiv etwas drin, schließlich seh ich das ja und arbeite mit den Daten auch an anderen Stellen.

Ich habe aber nirgendwo Code, der FindCaption beinflussen könnte. :(

Sascha L 21. Apr 2006 10:19

Re: ListView.FindCaption löst AV aus
 
ok hab den Fehler teilweise gefunden.

Ich musste Partial auf true setzten, da ich z.B. im Edit-Feld nur "T" schreibe, um dann "Test" zu finden.

Aber müsste er nicht, wenn er nichts findet die Funktion dennoch ohne Probleme ausführen? D.h. dass dann einfach nur das zurückgelieferte Item = nil ist?

edit:

hm, wenn ich nun trotz partial einen buchstaben eingebe, wo er nichts findet, kommt auch eine AV, das kann doch nicht angehen!

jim_raynor 21. Apr 2006 11:20

Re: ListView.FindCaption löst AV aus
 
Zeig doch mal den kompletten Code bei deiner Suche. Eventuell knallt er ja garnicht beim FindCaption sondern später, da FindCaption doch nil zurück gibt. Hast du dir das schonmal genauer im Debugger angeschaut?

Wishmaster 23. Apr 2006 05:23

Re: ListView.FindCaption löst AV aus
 
Hi

Also ich habe die Funktion getestet und es funzte wie es soll.

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var li: TListItem;
begin
  li := LV.FindCaption(0, Edit1.Text, false, True, False);

  if li <> nil then
  begin
    LV.Selected := li;
    li.MakeVisible(True);
    LV.SetFocus;
  end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:03 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