AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Fehlermeldung bei der Ausgabe eines Char array
Thema durchsuchen
Ansicht
Themen-Optionen

Fehlermeldung bei der Ausgabe eines Char array

Ein Thema von Chaosente · begonnen am 15. Mär 2007 · letzter Beitrag vom 15. Mär 2007
 
Chaosente

Registriert seit: 20. Aug 2006
80 Beiträge
 
#1

Fehlermeldung bei der Ausgabe eines Char array

  Alt 15. Mär 2007, 18:10
Bin grad dabei ein Hangman spiel zu Programmieren... hab dafür ne eigene klasse geschrieben. Wenn ich im FormCreate nun per for schleife mein char array ausgeben lasse, dann funktionierts perfekt ohne Fehlermeldung... aber wenn ich etwas in meinem array verändere und dann das selbe noch mal versuche kriege ich folgenden Fehler:

Zitat:
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt HangMan.exe ist eine Exception der Klasse EAccessViolation mit der Meldung 'Zugriffsverletzung bei Adresse 004527AF in Modul 'HangMan.exe'. Schreiben von Adresse FFFFFFFF' aufgetreten.
---------------------------
Anhalten Fortsetzen Hilfe
---------------------------
Hier noch mein Code der Klasse:
Delphi-Quellcode:
unit HangManClasses;

interface

uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs ;

type
  THangManWord = class
  private
    FWord: string;
    FCharWord: array of char;
    FWordLength: integer;
    function ClearWord: boolean;
    function GetCharWord(index: integer): char;
    procedure SetCharWord(index: integer; a: char);
  public
    property Word: string read FWord write FWord;
    property CharWord[index: integer]: char read GetCharWord write SetCharWord;
    property WordLength: integer read FWordLength write FWordLength;
    procedure NewWord(a: string);
    procedure TestLetter(a: Char);
  end;

implementation

function THangManWord.ClearWord: boolean;
begin
  try
    FWord:='';
    FWordLength:=0;
    result:=true;
  except
    result:=false;
  end;
end;

function THangManWord.GetCharWord(index: integer): char;
begin
  result:=FCharWord[index];
end;

procedure THangManWord.SetCharWord(index: integer; a: char);
begin
  FCharWord[index]:=a;
end;

procedure THangManWord.NewWord(a: string);
var i:integer;
begin
if ClearWord = true then
  begin
     Word:= a;
     WordLength:= Length(a);
     SetLength(FCharWord, WordLength);
     for i:=0 to WordLength do
      begin
        FCharWord[i]:='_';
      end;
  end;
end;

procedure THangManWord.TestLetter(a: Char);
var i:integer;
begin
  for i:=0 to WordLength do
    begin
      if Word[i] = a then
        begin
          SetCharWord(i,a);
        end;
    end;
end;

end.
Und hier mein Formular: (beim Button1OnClick passiert der fehler);
Delphi-Quellcode:
unit Main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, HangManClasses, StdCtrls;

type
  TFormMain = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    procedure Button1Click(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  FormMain: TFormMain;
  HangManWord: THangManWord;

implementation

{$R *.dfm}

procedure TFormMain.FormCreate(Sender: TObject);
var i:integer; output:string;
begin
HangManWord:=THangManWord.Create;
HangManWord.NewWord('heiko');
SetLength(output,hangmanword.WordLength);
for i:=0 to HangManWord.WordLength do
  begin
    output[i]:=HangManWord.CharWord[i];
  end;
edit1.Text:=output;
end;

procedure TFormMain.FormDestroy(Sender: TObject);
begin
HangManWord.Free;
end;

procedure TFormMain.Button1Click(Sender: TObject);
var a:char; output: string; i:integer;
begin
a:=edit2.text[1];
Hangmanword.TestLetter(a);
for i:=0 to HangManWord.WordLength do
  begin
    output[i]:=HangManWord.CharWord[i];
  end;
edit1.Text:=output;
end;

end.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:10 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