![]() |
Unverständlicher Fehler
Hi,
verstehe nicht warum das Programm nicht funktioniert. Soll eigentlich ein dynamisches Wort-Erkennunsprogramm als Automat werden.Habe sogar gehört dass das überhaupt nicht geht, will es aber mal versuchen. Die Laufzeit lässt sich auch starten, aber immer wenn ich auf einen Button klicke, kommt folgender Fehler:Debugger Exception Notification Project Project1.exe raised exception class EAcessViolation with message 'AcessViolation at adress 00403E4C in module 'project1.exe'. Read of adress 00000004'. Process stopped. Use Step or Run to continue. Quelltext des Programms(ist noch nicht fertig,z.b. Endzustand muss noch definiert werden):
Delphi-Quellcode:
mfg
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button3: TButton; Label3: TLabel; Edit1: TEdit; Label5: TLabel; Button4: TButton; Label1: TLabel; Edit2: TEdit; Button1: TButton; Label2: TLabel; procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Edit1KeyPress(Sender: TObject; var Key: Char); procedure Edit2KeyPress(Sender: TObject; var Key: Char); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; function f(zustand: integer; x:string):integer; function g(zustand: integer; x:string):string; var Form1: TForm1; zustand,folgezustand,len,len2: integer; eingabe: string; zeichen: array of string; implementation {$R *.dfm} function f(zustand:integer; x:string):integer; begin Case zustand of 0:if x=zeichen[1] then f:=1 else f:=0; 1:if x=zeichen[2] then f:=2 else f:=0; 2:if x=zeichen[3] then f:=3 else f:=0; 3:if x=zeichen[4] then f:=4 else f:=0; 4:if x=zeichen[5] then f:=5 else f:=0; 5:if x=zeichen[6] then f:=6 else f:=0; 6:if x=zeichen[7] then f:=6 else f:=0; end; end; function g(zustand:integer; x:string):string; begin Case zustand of 0:g:='Zustand: Startzustand 0'; 1:g:='Zustand: 1'; 2:g:='Zustand: 2'; 3:g:='Zustand: 3'; 4:g:='Zustand: 4'; 5:g:='Zustand: 5'; end; end; procedure TForm1.Button3Click(Sender: TObject); begin label1.caption:=''; label3.caption:='Zustand: Startzustand z0'; Edit1.text:=''; zustand:=0; end; procedure TForm1.Button4Click(Sender: TObject); var i:integer; begin len:=length(Edit1.Text); zustand:=0; eingabe:=Edit1.Text; for i:= 1 to len do begin eingabe:=Copy(Edit1.Text,i,1); folgezustand:=f(zustand,eingabe); zustand:=folgezustand; label3.caption:=g(zustand,eingabe); end; end; procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if (key < 'a') or (Key > 'z') then begin key:=Chr(27); ShowMessage('Bitte geben sie einen Buchstaben von a bis z oder ein @-Zeichen ein') end; end; procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char); begin if (key < 'a') or (Key > 'z') then begin key:=Chr(27); ShowMessage('Bitte geben sie einen Buchstaben von a bis z oder ein @-Zeichen ein') end; end; procedure TForm1.Button1Click(Sender: TObject); var j:integer; begin len2:=length(Edit2.Text); for j:= 1 to len2 do begin zeichen[j]:=Copy(Edit2.Text,j,1) end; end; end. |
Re: Unverständlicher Fehler
Hi
Wo, gibst Du die Grösse des Arrays zeichen an? So sollte es gehen:
Delphi-Quellcode:
var zeichen: Array of string;
procedure foo; begin setLength(zeichen,1); etc... end; grz zer00 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:05 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 by Thomas Breitkreuz