![]() |
Zugriff auf Listview über Form2
Hallo,
ich habe eine Form1, auf der eine Listview ist. Mit einer Function die als public deklariert ist lassen sich die Werte auslesen. Das funktioniert allerdings nur, wenn ich aus Form1 auf die Listview zugreife. Versuche ich die Function über einen Button auf Form2 aufzurufen, bekomme ich eine Fehlermeldung. Kann mir jemand helfen? Hier mal der Quelltext:
Delphi-Quellcode:
TTuerchen ist ein record-Typ. Ich probiere nämlich gerade einen Adventskalender zu programmieren 8)
public
{ Public-Deklarationen } function oeffne_Tuerchen(Datum: word): TTuerchen; {TTuerchen = record Bild, Bildtext; string; end;} //... implementation function TVerwaltung.oeffne_Tuerchen(Datum: word): TTuerchen; //gibt die Werte die in der Listview stehen zurück var lauf, Zeile: integer; begin Result.gefunden := false; for lauf := 0 to lstvVerwaltung.Items.Count-1 do //<= hier wird die Zugriffsverletzung ausgegeben begin if lstvVerwaltung.Items.Item[lauf].Caption = inttostr(Datum) then begin Zeile := lauf; Result.gefunden := true; break; end; end; if not Result.gefunden then exit; Result.Bild := lstvVerwaltung.Items.Item[Zeile].SubItems.Strings[0]; Result.Bildtext := lstvVerwaltung.Items.Item[Zeile].SubItems.Strings[1]; end; MfG Christian |
Re: Zugriff auf Listview über Form2
Hallo,
hast Du denn in der Unit der Form2 in der uses-Klausel auch die Form1 referenziert(angegeben)? Denn, wenn der Aufruf der function nicht weis, wo sich diese befindet, wie soll sie dann darauf zugreifen... Gruß Torsten156 |
Re: Zugriff auf Listview über Form2
Hi
Ja, die Unit der Form1 habe ich in Form2 eingebunden. Oder muss ich noch mehr machen? MfG Christian |
Re: Zugriff auf Listview über Form2
Moin Christian,
wenn Du an der genannten Stelle eine AV bekommst, dann wird der ListView zu dem Zeitpunkt noch nicht existieren. |
Re: Zugriff auf Listview über Form2
Hi
Christian. Form1 und die Listview sind aber schon sichtbar. Ich kann die Listview auch benutzen. MfG Christian |
Re: Zugriff auf Listview über Form2
Hallo,
Lass Dir in der Methode mal mit
Delphi-Quellcode:
den Self-Pointer ausgeben.
ShowMessage(Format('%x', [Pointer(Self)]));
Dann wirst Du sehen, dass das Formular nicht existiert bzw. zwei verschiedene Pointer verwendet werden. Einer für das (wie Du schreibst) angezeigte Formular und einer für das mit der Zugriffsverletzung. Falls das alles nicht hilft, müsstest Du mal etwas mehr Code posten. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:01 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