Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Eigene Class, fehler: "might not been initialized" (https://www.delphipraxis.net/119921-eigene-class-fehler-might-not-been-initialized.html)

Sh4dd4r 3. Sep 2008 09:57


Eigene Class, fehler: "might not been initialized"
 
Ich programmiere noch nicht sehr lange mit Delphi, möchte jetzt aber mal ein halbwegs nützliches programm schreiben, soetwas wie einen gehirntrainer. dazu habe ich in einem *.txt dokument eine wörterliste mit einigen 1000 wörtern.

ich möchte nun 10/20/.../X zufällige Zeilen aus dieser Textdatei in ein Array speichern, zusätzlich soll dieses array aber noch abspeichern bis zur wievielten zeile es voll ist.

daher hab ich mal ne eigene class entworfen, die ein array beinhaltet und eine integer zahl abspeichern kann für die "füllhöhe" des arrays.

Delphi-Quellcode:
type
 wordlist = class
  private
   NumberOfWords: integer;
   word: array[1..100] of string;
end;
immer wenn ich aber eine variable vom typ dieser class verwende kommt das:

Zitat:

[Warning] Unit1.pas(68): Variable 'WList1' might not have been initialized
Ich muss die Variable initialisieren. ich habe nur keine ahnung wie das bei der geht. bei integer und string ist mir das klar, aber wenn ein array und eine integer drin ist, wie macht man das dann?

was ich nicht so gerne machen würde ist einfach ein normales array und dann abfragen wie voll es ist (also wann das erste leere fach kommt...), meine class soll noch etwas mehr können später...

ich hoffe es kann mir jemand helfen, bitte nicht mit zu vielen fachausdrücken erklären, ich bin noch nicht so arg gut mit delphi vertraut.

DeddyH 3. Sep 2008 09:59

Re: Eigene Class, fehler: "might not been initialized&a
 
Legst Du denn auch eine Instanz der Klasse an, bevor Du darauf zugreifst (also ein Aufruf der Art
Delphi-Quellcode:
Klasse := TKlasse.Create;
)?

Sh4dd4r 3. Sep 2008 11:41

Re: Eigene Class, fehler: "might not been initialized&a
 
oh mist... nätürlich... wo muss ich das machen und wo muss ich sie wieder freeen?

sirius 3. Sep 2008 12:01

Re: Eigene Class, fehler: "might not been initialized&a
 
Na, bevor du sie das erste mal benutzt und nachdem du sie das letzte mal benutzt.
Als erster Vorschlag (ohne den Code zu kennen) würde ich sagen im FormCreate und im FormDestroy


Dann würde ich dir noch einen Tip des dynamischen Arrays:
Delphi-Quellcode:
x: array of string
und weil das auch noch nicht so toll ist, eine List:
Delphi-Referenz durchsuchenTStringList
empfehlen.

Sh4dd4r 3. Sep 2008 14:29

Re: Eigene Class, fehler: "might not been initialized&a
 
hab die class jetzt in on show created, ich muss aber die variable noch irgendwo deklarieren und sie muss private sein. wo mach ich das am besten? im private teil ist zu früh, da ist die class noch nicht definiert
und wenn ichs in on show mache ist sie nicht private...

DeddyH 3. Sep 2008 14:33

Re: Eigene Class, fehler: "might not been initialized&a
 
OnShow hat doch mit private nichts zu tun.

Sh4dd4r 3. Sep 2008 14:34

Re: Eigene Class, fehler: "might not been initialized&a
 
ja, aber andere prozeduren wollen ja auf die variable zugreifen, ich muss sie aber vor on show deklarieren...

DeddyH 3. Sep 2008 14:45

Re: Eigene Class, fehler: "might not been initialized&a
 
Schreib die Variable in den private-Abschnitt, instanziiere sie OnCreate und gib sie OnClose wieder frei.

Sh4dd4r 3. Sep 2008 16:51

Re: Eigene Class, fehler: "might not been initialized&a
 
dann muss ich die klassendeklaration vor private schreiben.... wie mach ich das?

DeddyH 3. Sep 2008 17:09

Re: Eigene Class, fehler: "might not been initialized&a
 
Schreib die komplette Klassendeklaration vor die des Formulars.
Delphi-Quellcode:
type TMyclass = class
  ...
end;

TMyForm = class(TForm)
private
  MyClass: TMyClass;
  ...
end;


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