Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi problem mit eigener class (https://www.delphipraxis.net/140726-problem-mit-eigener-class.html)

gangs-taas 24. Sep 2009 19:01


problem mit eigener class
 
hey,
ich wollte mir eine eigene Klasse einrichten, damit ich leicher mit verschiedenen Variablen u.ä. arbeiten kann
aber ich bekomme wenn ich darauf zugreife einen lauf-zeit fehler mit der Meldung '---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt P_1.exe ist eine Exception der Klasse EAccessViolation mit der Meldung 'Zugriffsverletzung bei Adresse 004586DB in Modul 'P_1.exe'. Schreiben von Adresse 00000004' aufgetreten.
---------------------------
Anhalten Fortsetzen Hilfe
---------------------------
'

könnt ihr mir wenn ich euch meinen code zeige sagen, wie ich das machen muss, damit es funktioniert ?!
bitte :)

hier ist mein code

Delphi-Quellcode:
type
  TBuchstaben = class
    Buchstaben_Name : Char;
    Klick_stelle : integer;
    Anzahl_im_Text : integer;
    Priorität : integer;
  end;

  TForm1 = class(TForm)
    Eingabe: TGroupBox;
    Text: TMemo;
    Kontrollstruckturen: TGroupBox;
    HandyTastatur: TGroupBox;
    E1: TEdit;
    E2: TEdit;
    E3: TEdit;
    E4: TEdit;
    E5: TEdit;
    E6: TEdit;
    E7: TEdit;
    E8: TEdit;
    Kosten: TGroupBox;
    optimiere: TButton;
    Label1: TLabel;
    M_Kon_Stelle: TMemo;
    E_K_Alt: TEdit;
    Label2: TLabel;
    Label3: TLabel;
    E_K_Neu: TEdit;
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
    Gl_Buchstaben_array : Array[1..26] of TBuchstaben;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
i : integer;
const
Temp_Buchstaben : Array[1..26] of Char = 'abcdefghijklmnopqrstuvwxyz';
begin
  Label1.Caption := 'Anzahl der' + #13#10 + 'Buchstaben'+ #13#10 +'im Text';
  For i := 1 to 26 do
  begin
    Gl_Buchstaben_array[i].Buchstaben_Name := Temp_Buchstaben[i]; // hier ist der Fehler aber wieso ?!
  end;
end;

end.
danke schon einmal :)

jfheins 24. Sep 2009 19:05

Re: problem mit eigener class
 
Eine Klasse ist nur ein Typ

Um eine Klasse zu benutzen muss man (allermeistens) ein Objekt dieses Typs erstellen. Das macht man, indem man den Konstruktor aufruft.

Konkret hieße das:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
i : integer;
const
Temp_Buchstaben : Array[1..26] of Char = 'abcdefghijklmnopqrstuvwxyz';
begin
  Label1.Caption := 'Anzahl der' + #13#10 + 'Buchstaben'+ #13#10 +'im Text';
  For i := 1 to 26 do
  begin
    Gl_Buchstaben_array[i] := TBuchstabe.Create();
  end;
  For i := 1 to 26 do
  begin
    Gl_Buchstaben_array[i].Buchstaben_Name := Temp_Buchstaben[i]; // hier ist der Fehler aber wieso ?! 
  end;
end;
Ich habe dir zwar jetzt den Code gegeben, aber versuche bitte trotzdem zu verstehen was da jetzt gemacht wird ;)

mkinzler 24. Sep 2009 19:06

Re: problem mit eigener class
 
Du musst auch die Instanzen erzeugen:
Delphi-Quellcode:
  For i := 1 to 26 do
  begin
    Gl_Buchstaben_array[i] := TBuchstaben.Create;
    Gl_Buchstaben_array[i].Buchstaben_Name := Temp_Buchstaben[i]; // hier ist der Fehler aber wieso ?!
  end;

gangs-taas 24. Sep 2009 19:07

Re: problem mit eigener class
 
Zitat:

Zitat von jfheins
Eine Klasse ist nur ein Typ

Um eine Klasse zu benutzen muss man (allermeistens) ein Objekt dieses Typs erstellen. Das macht man, indem man den Konstruktor aufruft.

Konkret hieße das:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
i : integer;
const
Temp_Buchstaben : Array[1..26] of Char = 'abcdefghijklmnopqrstuvwxyz';
begin
  Label1.Caption := 'Anzahl der' + #13#10 + 'Buchstaben'+ #13#10 +'im Text';
  For i := 1 to 26 do
  begin
    Gl_Buchstaben_array[i] := TBuchstabe.Create();
  end;
  For i := 1 to 26 do
  begin
    Gl_Buchstaben_array[i].Buchstaben_Name := Temp_Buchstaben[i]; // hier ist der Fehler aber wieso ?! 
  end;
end;
Ich habe dir zwar jetzt den Code gegeben, aber versuche bitte trotzdem zu verstehen was da jetzt gemacht wird ;)


das versuch ich immer !
beschämt michdas du denkst ich würde das nicht machen !!

ja ist logisch ...
wusste ich nur nicht :)
danke

jfheins 24. Sep 2009 19:14

Re: problem mit eigener class
 
Zitat:

Zitat von gangs-taas

das versuch ich immer !
beschämt mich das du denkst ich würde das nicht machen !!

Naja, nach dem hier, dem da, der da und sowas hier hab' ich das lieber nochmal dzugeschrieben :stupid:

Zitat:

ja ist logisch ...
wusste ich nur nicht :)
danke
Kein Problem, dafür sind wir ja da *g*

gangs-taas 24. Sep 2009 19:35

Re: problem mit eigener class
 
Zitat:

Zitat von jfheins
Zitat:

Zitat von gangs-taas

das versuch ich immer !
beschämt mich das du denkst ich würde das nicht machen !!

Naja, nach dem hier, dem da, der da und sowas hier hab' ich das lieber nochmal dzugeschrieben :stupid:

Zitat:

ja ist logisch ...
wusste ich nur nicht :)
danke
Kein Problem, dafür sind wir ja da *g*


okayokay
sieht schon nicht gut aus für uns anfänger :)
naja ich versuche immer es zu verehn :)

danke :D

ps. finde ich kalsse das du sowas sagst wie :D
Zitat:

ja ist logisch ...
wusste ich nur nicht :)
danke
Kein Problem, dafür sind wir ja da *g*
hat bislang noch keiner gesagt wenn man sich bedankt hat ... :D :D


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