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 Zugriff auf Listview über Form2 (https://www.delphipraxis.net/12617-zugriff-auf-listview-ueber-form2.html)

Chris1986 1. Dez 2003 00:08


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:
  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;
TTuerchen ist ein record-Typ. Ich probiere nämlich gerade einen Adventskalender zu programmieren 8)

MfG
Christian

Torsten156 1. Dez 2003 01:14

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

Chris1986 1. Dez 2003 06:40

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

Christian Seehase 1. Dez 2003 18:55

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.

Chris1986 1. Dez 2003 20:52

Re: Zugriff auf Listview über Form2
 
Hi
Christian. Form1 und die Listview sind aber schon sichtbar. Ich kann die Listview auch benutzen.

MfG
Christian

mr2 1. Dez 2003 21:40

Re: Zugriff auf Listview über Form2
 
Hallo,

Lass Dir in der Methode mal mit
Delphi-Quellcode:
  ShowMessage(Format('%x', [Pointer(Self)]));
den Self-Pointer ausgeben.
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 00:06 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