![]() |
BITTE UM HILFE !!
Ich bin kurz vorm ausrasten deswegen wede ich mich an euch :wall:
ich habe folgendes prob mein code ...
Delphi-Quellcode:
beim starten kommt folgender fehler :
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Edeingabe: TEdit; EdAusgabe: TEdit; LabGray: TLabel; LabDez: TLabel; btnberechnen: TButton; procedure btnberechnenClick(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation type Tbinaer = 0..1; Tgray = record spur1:Tbinaer; spur2:Tbinaer; spur3:Tbinaer; spur4:Tbinaer; spur5:Tbinaer; spur6:Tbinaer; spur7:Tbinaer; spur8:Tbinaer; end; TGrayTabelle = array[0..255] of Tgray; procedure TForm1.FormCreate(Sender: TObject); var i,x:integer;grtab:Tgraytabelle; begin i := 0; //.......SPUR8.......\\ repeat grtab[i].spur8:= 0; inc(i); x:= 1; repeat grtab[i].spur8:= 1; inc(x); inc(i) until (x = 2)or (i=255); grtab[i].spur8:= 0 ; inc(i); until i= 255; //.......SPUR7.......\\ i:= 0; repeat x:= 1; repeat grtab[i].spur7:= 0; inc(x); inc(i) until (x = 2)or (i=255); x:= 1; repeat grtab[i].spur7:= 1; inc(x); inc(i) until (x = 4)or (i=255); x:= 1; repeat grtab[i].spur7:= 0; inc(x); inc(i) until (x = 2)or (i=255); until i = 255; //.......SPUR6.......\\ i:= 0; repeat x:= 1; repeat grtab[i].spur6 := 0; inc(x); inc(i) until (x = 4)or (i=255); x:= 1; repeat grtab[i].spur6:= 1; inc(x); inc(i) until (x = 8)or (i=255); x:= 1; repeat grtab[i].spur6:= 0; inc(x); inc(i) until (x = 4)or (i=255); until i = 255; //.......SPUR5.......\\ i:= 0; repeat x:= 1; repeat grtab[i].spur5:= 0; inc(x); inc(i) until (x = 8)or (i=255); x:= 1; repeat grtab[i].spur5:= 1; inc(x); inc(i) until (x = 16)or (i=255); x:= 1; repeat grtab[i].spur5:= 0; inc(x); inc(i) until (x = 8)or (i=255); until i = 255; //.......SPUR4.......\\ i:= 0; repeat x:= 1; repeat grtab[i].spur4:= 0; inc(x); inc(i) until (x = 16)or (i=255); x:= 1; repeat grtab[i].spur4:= 1; inc(x); inc(i) until (x = 32)or (i=255); x:= 1; repeat grtab[i].spur4:= 0; inc(x); inc(i) until (x = 16)or (i=255); until i = 255; //.......SPUR3.......\\ i:= 0; repeat x:= 1; repeat grtab[i].spur3:= 0; inc(x); inc(i) until (x = 32)or (i=255); x:= 1; repeat grtab[i].spur3:= 1; inc(x); inc(i) until (x = 64)or (i=255); x:= 1; repeat grtab[i].spur3:= 0; inc(x); inc(i) until (x = 32)or (i=255); until i = 255; //.......SPUR2.......\\ i:= 0; repeat x:= 1; repeat grtab[i].spur8:= 0; inc(x); inc(i) until (x = 64)or (i=255); x:= 1; repeat grtab[i].spur2:= 1; inc(x); inc(i) until (x = 128)or (i=255); x:= 1; repeat grtab[i].spur2:= 0; inc(x); inc(i) until (x = 64)or (i=255); until i = 255; //.......SPUR1.......\\ i:= 0; repeat x:= 1; repeat grtab[i].spur1:= 0; inc(x); inc(i) until (x = 128)or (i=255); x:= 1; repeat grtab[i].spur1:= 1; inc(x); inc(i) until (x = 256)or (i=255); x:= 1; repeat grtab[i].spur1:= 0; inc(x); inc(i) until (x = 128)or (i=255); until i = 255; end; Zitat:
Wenn ich alles ab SPUR6 ausklammer dann gehts woran liegt es also ? Habe ich etwas übersehen ? Bitte um Hilfe ! ! THX im vorraus [edit=Luckie] Mfg, Luckie[/edit] |
Re: BITTE UM HILFE !!
Erstmal: Wähle bitte einen aussagekräftigen Titel. Du kannst den Titel noch ändern, in dem du dein erstes Posting editierst. Hilfe braucht hier fast jeder. Und benutze beim nächsten Mal bitte die [ delphi]-Tags, dass macht dein Posting übersichtlicher.
|
Re: BITTE UM HILFE !!
Du kannst das Programm debuggen.
Wenn du das noch nie gemacht hast, kannst du in der Delphipraxis, bei Google oder in der Delphi-Hilfe nach "Debugger" und "Delphi Debugger" suchen. Dadurch kannst du genau herausfinden bei welchem Befehl der Fehler passiert. Wenn dir noch immer nicht klar ist was an diesem Befehl falsch ist, kannst du ja nochmal fragen. Tubos |
Re: BITTE UM HILFE !!
Also mit dem Debugger komme ich net so ganz klar aba er markiert mir die stelle
Code:
desewegen ist es auch so frustrierend da ich net weiß was er will -.-
grtab[i].spur6 := 1;
|
Re: BITTE UM HILFE !!
Es gibt für den Fehler an der Stelle eigentlich nur 2 mögliche Ursachen:
1. grtab[i] wurde zu dem zeitpunkt noch nicht erzeugt 2. spur6 wurde zu dem zeitpunkt noch nicht erzeugt Ich habe mir nicht angesehen, was das im einzelnen für Typen sind, aber schau mal nach! Möglicherweise läuft das i zu hoch o.Ä. |
Re: BITTE UM HILFE !!
Delphi-Quellcode:
die variable "i" hat möglicherweise in der ersten schleife den wert 255 angenommen. darauf wird die schleife ordnungsgemäß verlassen
/.......SPUR6.......\\
i:= 0; repeat x:= 1; repeat grtab[i].spur6 := 0; inc(x); inc(i) until (x = 4)or (i=255); x:= 1; repeat grtab[i].spur6:= 1; inc(x); inc(i) until (x = 8)or (i=255); in der tzen schleife hat i jetzt 255, "grtab[255].spur6 :=1;" wird auch noch richtig ausgeführt! jetzt wird i erhöht "inc(i)" und hat damit den wert 256! d.h. es wird nie "i=255" eintreten können! du solltest vielleicht mit while...do schleifen arbeiten oder jetzt speziell in diesem fall schreiben "until (x = 8) or (i >= 255)" stefan |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:45 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