Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Array in Klasse dekalriert, Fehler beim zugriff (https://www.delphipraxis.net/45520-array-klasse-dekalriert-fehler-beim-zugriff.html)

Osse 7. Mai 2005 16:48


Array in Klasse dekalriert, Fehler beim zugriff
 
hallo,

hab da mal so ne Frage. Es geht um den Array Telegramm in TSuche. Mein Problem ist, dass ich nicht weiß wie ich mit dem umgehen soll, da er von der Klasse TSuchdaten ist. Immer wen ich versuche ihm ein Wert zuzuweisen (siehe procedure TNeueSuchForm.B_HinzufuegenClick(Sender: TObject) ganz unten im Quellcode), bekomme ich eine so heftige Exception dass sich mein Programm mal schnell verabscheidet. Irgendwie ist das nur ein Zeiger, ohne Wert. Wie muss ich den Array initalisieren?? :gruebel:

Hab mir folgendes gebastelt:

Delphi-Quellcode:
type
  TSuchdaten = class
    Daten : array[1..MAX_EDITFENSTER,0..1] of Integer;
    ID : Integer;
         PROCEDURE AlleDatenloeschen;
         CONSTRUCTOR Create;
  end;

  TSuche = class(TSuchdaten)
    Telegramm : array [1..MAX_SUCHCOUNT] OF TSuchdaten;
    suchcount : Integer;
    Grid : TStringGrid ;                                  
         function DatenDarstellen(Position : Integer) : string;
     PROCEDURE oncellclick (Sender: TObject) ;
     PROCEDURE drawgridcell(Sender: TObject; ACol, ARow: Longint; ARect: TRect; AState: TGridDrawState) ;
     CONSTRUCTOR Create(gr: TStringGrid) ;
  end;

.....

CONSTRUCTOR TSuchdaten.Create ;
BEGIN // "TSuchdaten.Create"
  ID := 0 ;
  AlleDatenloeschen;
END; // "TSuchdaten.Create"

CONSTRUCTOR TSuche.Create(gr: TStringGrid) ;
BEGIN // "TMsgList.Create"
  INHERITED Create ;   suchcount := 0;
  Grid := gr ;
  Grid.OnDrawCell := drawgridcell ;
  Grid.OnClick := oncellclick ;
END; // "TMsgList.Create"

procedure TNeueSuchForm.FormCreate(Sender: TObject);
begin
 Suche := TSuche.Create(SG_Suche1) ;
end;

procedure TNeueSuchForm.B_HinzufuegenClick(Sender: TObject);
begin
....
Suche.Telegramm[Suche.suchcount].ID := StrToInt(E_ID.Text);
end;
Danke

SirThornberry 7. Mai 2005 17:10

Re: Array in Klasse dekalriert, Fehler beim zugriff
 
du musst im Constructor von TSuche natürlich auch noch die instanzen von TSuchedaten (Telegramm) instanzieren (um im destructor wieder freigeben).
also
Delphi-Quellcode:
for i := 1 to MAX_SUCHCOUNT do
  Telegramm[i] := TSuchdaten.Create;

Osse 7. Mai 2005 17:25

Re: Array in Klasse dekalriert, Fehler beim zugriff
 
Tja, wo du recht hast, hast du recht.

Ich bin irgendwie viel zu :wall: .

Geht jetzt.

Danke, und ein schönes Wochenende


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